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