124
124
125
125
AFHDS3_FRM_TEMP = 0x57 , // virtual
126
126
AFHDS3_FRM_EXT_V = 0x58 , // virtual
127
- AFHDS2A_ID_PRES = 0x41 , // Pressure
128
127
129
128
AFHDS2A_ID_TX_V = 0x7F , // TX Voltage
130
129
@@ -185,13 +184,13 @@ const FlySkySensor flySkySensors[] = {
185
184
{ AFHDS2A_ID_ODO1, STR_SENSOR_ODO1, UNIT_METERS, 2 }, // 2 bytes Odometer1 -- some magic with 330 needed
186
185
{ AFHDS2A_ID_ODO2, STR_SENSOR_ODO2, UNIT_METERS, 2 }, // 2 bytes Odometer2 -- some magic with 330 needed
187
186
{ AFHDS2A_ID_SPE, STR_SENSOR_ASPD, UNIT_KMH, 2 }, // 2 bytes Speed km/h -- some magic with 330 needed
188
- { AFHDS2A_ID_GPS_LAT, STR_SENSOR_GPS, UNIT_RAW, 7 }, // 4 bytes signed WGS84 in degrees * 1E7
189
- { AFHDS2A_ID_GPS_LON, STR_SENSOR_GPS, UNIT_RAW, 7 }, // 4 bytes signed WGS84 in degrees * 1E7
187
+ { AFHDS2A_ID_GPS_LAT, STR_SENSOR_GPS, UNIT_RAW, 0 }, // 4 bytes signed WGS84 in degrees * 1E7
188
+ { AFHDS2A_ID_GPS_LON, STR_SENSOR_GPS, UNIT_RAW, 0 }, // 4 bytes signed WGS84 in degrees * 1E7
190
189
{ AFHDS2A_ID_GPS_ALT, STR_SENSOR_GPSALT, UNIT_METERS, 2 }, // 4 bytes signed GPS alt m*100
191
190
{ AFHDS2A_ID_ALT, STR_SENSOR_ALT, UNIT_METERS, 2 }, // 4 bytes signed Alt m*100
192
- { AFHDS2A_ID_RX_SIG_AFHDS3, STR_RX_QUALITY , UNIT_RAW, 0 }, // RX error rate
193
- { AFHDS2A_ID_RX_SNR_AFHDS3, STR_RX_SNR, UNIT_DB, 1 }, // RX SNR
194
- { AFHDS2A_ID_TX_RSSI, STR_SENSOR_TX_RSSI, UNIT_RAW , 0 }, // Pseudo sensor for TRSSI
191
+ { AFHDS2A_ID_RX_SIG_AFHDS3, STR_SENSOR_RX_QUALITY , UNIT_PERCENT, 0 }, // RX error rate
192
+ { AFHDS2A_ID_RX_SNR_AFHDS3, STR_SENSOR_RX_SNR, UNIT_DB, 1 }, // RX SNR
193
+ { AFHDS2A_ID_TX_RSSI, STR_SENSOR_TX_RSSI, UNIT_DBM , 0 }, // Pseudo sensor for TRSSI
195
194
196
195
{ 0x00 , NULL , UNIT_RAW, 0 }, // sentinel
197
196
};
@@ -306,7 +305,7 @@ void processFlySkySensor(const uint8_t * packet, uint8_t type)
306
305
if (type == 0xAA )
307
306
value = (packet[3 ] << 8 ) | packet[2 ];
308
307
else
309
- value = (packet[5 ] << 24 ) | (packet[4 ] << 16 ) | (packet[3 ] << 8 ) | packet[2 ];
308
+ value = (packet[6 ] << 24 ) | (packet[5 ] << 16 ) | (packet[4 ] << 8 ) | packet[3 ];
310
309
311
310
id = id ? id : SENSOR_TYPE_RX_VOL; // Remapped
312
311
@@ -322,7 +321,7 @@ void processFlySkySensor(const uint8_t * packet, uint8_t type)
322
321
telemetryData.rssi .set (value);
323
322
if (value>0 ) telemetryStreaming = TELEMETRY_TIMEOUT10ms;
324
323
}
325
- else if (id == AFHDS2A_ID_PRES && value) {
324
+ else if (id == SENSOR_TYPE_PRES && value) {
326
325
// Extract temperature to a new sensor
327
326
setTelemetryValue (PROTOCOL_TELEMETRY_FLYSKY_IBUS, id | 0x100 , 0 , instance, ((value >> 19 ) - 400 ), UNIT_CELSIUS, 1 );
328
327
// Extract alt to a new sensor
@@ -389,8 +388,8 @@ void processFlySkyPacket(const uint8_t * packet)
389
388
setFlyskyTelemetryValue (AFHDS2A_ID_TX_RSSI, 0 , packet[0 ], UNIT_RAW, 0 );
390
389
391
390
const uint8_t * buffer = packet + 1 ;
392
- int sesnor = 0 ;
393
- while (sesnor ++ < 7 ) {
391
+ int sensor = 0 ;
392
+ while (sensor ++ < 7 ) {
394
393
if (*buffer == SENSOR_TYPE_END) break ;
395
394
processFlySkySensor (buffer, 0xAA );
396
395
buffer += 4 ;
0 commit comments