22
33#define CRSF_CRC_POLY 0xd5
44#define CRSF_SYNC_BYTE 0xc8
5-
6- #define CRSF_FRAMETYPE_GPS 0x02
7- #define CRSF_FRAMETYPE_LINK_STATISTICS 0x14
8- #define CRSF_FRAMETYPE_BATTERY_SENSOR 0x08
5+ #define CRSF_FRAME_NOT_COUNTED_BYTES 2
96
107#define CRSF_CHANNEL_VALUE_1000 191
118#define CRSF_CHANNEL_VALUE_MID 992
@@ -23,6 +20,57 @@ typedef struct crsf_header_s
2320 uint8_t type ; // from crsf_frame_type_e
2421} PACKED crsf_header_t ;
2522
23+ typedef enum : uint8_t
24+ {
25+ CRSF_FRAMETYPE_GPS = 0x02 ,
26+ CRSF_FRAMETYPE_VARIO = 0x07 ,
27+ CRSF_FRAMETYPE_BATTERY_SENSOR = 0x08 ,
28+ CRSF_FRAMETYPE_BARO_ALTITUDE = 0x09 ,
29+ CRSF_FRAMETYPE_LINK_STATISTICS = 0x14 ,
30+ CRSF_FRAMETYPE_OPENTX_SYNC = 0x10 ,
31+ CRSF_FRAMETYPE_RADIO_ID = 0x3A ,
32+ CRSF_FRAMETYPE_RC_CHANNELS_PACKED = 0x16 ,
33+ CRSF_FRAMETYPE_ATTITUDE = 0x1E ,
34+ CRSF_FRAMETYPE_FLIGHT_MODE = 0x21 ,
35+ // Extended Header Frames, range: 0x28 to 0x96
36+ CRSF_FRAMETYPE_DEVICE_PING = 0x28 ,
37+ CRSF_FRAMETYPE_DEVICE_INFO = 0x29 ,
38+ CRSF_FRAMETYPE_PARAMETER_SETTINGS_ENTRY = 0x2B ,
39+ CRSF_FRAMETYPE_PARAMETER_READ = 0x2C ,
40+ CRSF_FRAMETYPE_PARAMETER_WRITE = 0x2D ,
41+
42+ //CRSF_FRAMETYPE_ELRS_STATUS = 0x2E, ELRS good/bad packet count and status flags
43+
44+ CRSF_FRAMETYPE_COMMAND = 0x32 ,
45+ // KISS frames
46+ CRSF_FRAMETYPE_KISS_REQ = 0x78 ,
47+ CRSF_FRAMETYPE_KISS_RESP = 0x79 ,
48+ // MSP commands
49+ CRSF_FRAMETYPE_MSP_REQ = 0x7A , // response request using msp sequence as command
50+ CRSF_FRAMETYPE_MSP_RESP = 0x7B , // reply with 58 byte chunked binary
51+ CRSF_FRAMETYPE_MSP_WRITE = 0x7C , // write with 8 byte chunked binary (OpenTX outbound telemetry buffer limit)
52+ // Ardupilot frames
53+ CRSF_FRAMETYPE_ARDUPILOT_RESP = 0x80 ,
54+ } crsf_frame_type_e ;
55+
56+ typedef enum : uint8_t
57+ {
58+ CRSF_ADDRESS_BROADCAST = 0x00 ,
59+ CRSF_ADDRESS_USB = 0x10 ,
60+ CRSF_ADDRESS_TBS_CORE_PNP_PRO = 0x80 ,
61+ CRSF_ADDRESS_RESERVED1 = 0x8A ,
62+ CRSF_ADDRESS_CURRENT_SENSOR = 0xC0 ,
63+ CRSF_ADDRESS_GPS = 0xC2 ,
64+ CRSF_ADDRESS_TBS_BLACKBOX = 0xC4 ,
65+ CRSF_ADDRESS_FLIGHT_CONTROLLER = 0xC8 ,
66+ CRSF_ADDRESS_RESERVED2 = 0xCA ,
67+ CRSF_ADDRESS_RACE_TAG = 0xCC ,
68+ CRSF_ADDRESS_RADIO_TRANSMITTER = 0xEA ,
69+ CRSF_ADDRESS_CRSF_RECEIVER = 0xEC ,
70+ CRSF_ADDRESS_CRSF_TRANSMITTER = 0xEE ,
71+ CRSF_ADDRESS_ELRS_LUA = 0xEF
72+ } crsf_addr_e ;
73+
2674#define CRSF_MK_FRAME_T (payload ) struct payload##_frame_s { crsf_header_t h; payload p; uint8_t crc; } PACKED
2775
2876typedef struct crsf_sensor_gps_s {
0 commit comments