/**
* @page TellStick TellStick protocol
*
* \section Introduction
*
* Telldus TellStick protocol looks like:
* [prefix[prefix parameters]][command][parameter 1]..[parameter n]['+']
*
* Each value in [ and ] is representing one byte.
*
* Command is one ascii character. Not all commands have parameters which
* makes it optional. Prefix is always optional.
* Note: Due to memory limitations, the parameters is limited in length to 79
* bytes.
*
* An example command to turn on a ArcTech codeswitch A1 may look like:
* S$k$k$k$k$k$k$k$k$k$k$k$k$k$k$k$k$k$k$kk$$kk$$kk$$}+
*
* TellStick returns to a known command like this:
* ['+'][command][parameters][13][10]
*
* [13] and [10] are the ascii characters 10 and 13.
*
* An example to query a TellStick on its firmware version:
* Command:
* V+
* Response:
* +V2
* The TellStick in the example has the firmware version 2.
*
* \section Commands
*
* \subsection sec_send S - Send command
* This command tells TellStick to send a command. The parameters to this
* command is the data-packet to send.
*
* Each of the characters in the parameters makes the antenna alternate
* high/low/high etc. The time before the alternation is 10 us timer the ASCII
* value. For example, $ has the ascii-value 36 and k has 107. The command:
* ['S']['$']['k']['$']['k']['$']['+'] makes the following wavepattern on the antenna:
*
* _____ _____ _____ * | | | | | | * | | | | | | * | |_______________| |_______________| | * * |<===>|<=============>|<===>|<=============>|<===>| * 360us 1070us 360us 1070us 360us ** * * \subsection sec_send_extended T - Send command, extended * * The extended command was developed to overcome the limitations och the * length of the data to 79 bytes. * The idea is to have four fixed times on the pulses so the information about * what to send only needs 2 bits instead of 8 in the command S * * The parameters to the command is: