Declare settings under it's own namespace, where previous version used
function prefix. Allow to have configurable timeout and buffer size for
rx; default series, repeats and delay values for tx.
Values are reloaded with the appropriate configure() function from the
namespace, unless they apply to the IR{send,recv} object itself.
Also, no need to define 'default' fields for either of the Payload
structures. After parsing is done, pass all of string views to the
function defined in the .cpp that will prepare the resulting value.
- provide a queue for the outgoing messages, don't depend on the MQTT
callback implementation details and always postpone the actual transfer.
- generate user input parsers using re2c, adds special PlatformIO build handlers
- add terminal command to show GPIO info and send a simple payload
- rework button<->action presets into value<->terminal command presets and custom ones
through the use of `irCmd<VALUE>` settings, where the VALUE is taken from the simple payload
(yet, it does not understand repeated codes, but that's something to add later *or* use rpnlib)
- add tx message integration for the relay module via `irRelayOn#` and `irRelayOff#`
- rework simple payload to include 'repeats' value for the 'IRsend::send()'
also adds internal 'series', 'delay' and includes full 64bit 'value'
(as uppercase HEX, instead of decimal)
- rework raw payload to use 'series' instead of 'repeats', and provide a
clear distinction between the usec time and the options of the message
by moving the required options to the front and separating them using ':'
(just like the simple variant)
- make RX and TX pin a runtime setting, make RX and TX support a build flag
- small test framework to check whether internal string encode<->decode works
Also updates the hexEncode & hexDecode implementations to use
'iterators' instead of just pointer + index.