Skip to content
K6BSD edited this page Jan 1, 2015 · 2 revisions

The protocol is very simple, at the most basic, it transmits the duration between keying events in milliseconds, and the new state. Durations longer than 10 seconds are forced to zero, and other messages have a zero duration.

There are three fields in every four-byte message.

uint8_t count

The first byte is a number which increases by one after every send message. In the first message to a host, this is set to zero, and is increased for every message (not just keying events) that is sent. This allows the remote to detect (but not recover from) lost messages.

uint8_t action

One of five values.

  1. Transition to off. After the specified duration, the key transitions to off.
  2. Transition to on. After the specified duration, the key transitions to on.
  3. Key is off. Sent in response to a query or to reset the remote 10-second watchdog, indicates that the key is currently off.
  4. Key is on. Sent in response to a query or to reset the remote 10-second watchdog, indicates that the key is currently on.
  5. Query. Requests the remote to reply with the current key state. The reason is for the remote to have a 10-second watchdog timer when the key is on, and to send a query at this time so that the tone isn't stuck playing.

uint16_t duration

The duration between the last transition and the transition in this message in network byte order. For non-transition messages, this should be set to zero.

Clone this wiki locally