Firmware
Classes | Macros | Enumerations | Functions
st24.h File Reference

RC protocol definition for Yuneec ST24 transmitter. More...

#include <stdint.h>

Go to the source code of this file.

Classes

struct  ReceiverFcPacket
 
struct  ChannelData12
 RC Channel data (12 channels). More...
 
struct  ChannelData24
 RC Channel data (12 channels). More...
 
struct  TelemetryData
 Telemetry packet. More...
 

Macros

#define ST24_DATA_LEN_MAX   64
 
#define ST24_STX1   0x55
 
#define ST24_STX2   0x55
 

Enumerations

enum  ST24_PACKET_TYPE { ST24_PACKET_TYPE_CHANNELDATA12 = 0, ST24_PACKET_TYPE_CHANNELDATA24, ST24_PACKET_TYPE_TRANSMITTERGPSDATA }
 
enum  ST24_DECODE_STATE {
  ST24_DECODE_STATE_UNSYNCED = 0, ST24_DECODE_STATE_GOT_STX1, ST24_DECODE_STATE_GOT_STX2, ST24_DECODE_STATE_GOT_LEN,
  ST24_DECODE_STATE_GOT_TYPE, ST24_DECODE_STATE_GOT_DATA
}
 

Functions

uint8_t st24_common_crc8 (uint8_t *ptr, uint8_t len)
 CRC8 implementation for ST24 protocol. More...
 
__EXPORT int st24_decode (uint8_t byte, uint8_t *rssi, uint8_t *lost_count, uint16_t *channel_count, uint16_t *channels, uint16_t max_chan_count)
 Decoder for ST24 protocol. More...
 

Detailed Description

RC protocol definition for Yuneec ST24 transmitter.

Author
Lorenz Meier lm@in.nosp@m.f.et.nosp@m.hz.ch

Function Documentation

§ st24_common_crc8()

uint8_t st24_common_crc8 ( uint8_t *  ptr,
uint8_t  len 
)

CRC8 implementation for ST24 protocol.

Parameters
prtPointer to the data to CRC
lennumber of bytes to accumulate in the checksum
Returns
the checksum of these bytes over len

§ st24_decode()

__EXPORT int st24_decode ( uint8_t  byte,
uint8_t *  rssi,
uint8_t *  lost_count,
uint16_t *  channel_count,
uint16_t *  channels,
uint16_t  max_chan_count 
)

Decoder for ST24 protocol.

Parameters
bytecurrent char to read
rssipointer to a byte where the RSSI value is written back to
lost_countpointer to a byte where the receive count of packets since last wireless frame is written back to ( > 0 if RC is lost)
channelspointer to a datastructure of size max_chan_count where channel values (12 bit) are written back to
max_chan_countmaximum channels to decode - if more channels are decoded, the last n are skipped and success (0) is returned
Returns
0 for success (a decoded packet), 1 for no packet yet (accumulating), 2 for unknown packet, 3 for out of sync, 4 for checksum error