fix(AFHDS3): Sync UI with Flysky AFHDS3 module stored settings (#3501)
* Refresh UI module settings when AHFDS3 config is updated. * Fix scroll order for module options when 'FlySky' module type selected. Fix simulator crash issues related to FlySky module. * Fixed UI refresh problems in UI widget ordering fix. * Refresh config when receiver is connected. * Disable change of bind time options when receiver is connected. * Rename methods to better distinguish between buffer fill or actual send. * Clean and tidy up AFHDS3 state flow. * Implemented settings sync upon setting changes. * Added RF power settings for IRM301/FRM303. * Added RF power sensors for FRM303. * Fixed config not saved and only FRM303 supports RF power settings. * Fixed RF power command error. * Fixed a crash for IRM301. * Always check if port exists and return nullptr for driver. * fix: Make Companion preserve settings *as is* --------- Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com> Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
co-authored by
Phil Mitchell
Peter Feerick
parent
bdb78ba2ef
commit
cb533f4493
@@ -58,6 +58,8 @@ enum
|
||||
SENSOR_TYPE_RF_MODULE = 0x56, // Ext flysky rf module sensor(voltage and temperature)
|
||||
SENSOR_TYPE_RF_MODULE_TEMP = 0x1056, // virtual
|
||||
SENSOR_TYPE_RF_MODULE_VOL = 0x2056, // virtual
|
||||
SENSOR_TYPE_RF_MODULE_POWER = 0x3056, // virtual
|
||||
// SENSOR_TYPE_RF_MODULE_RAW = 0x4056, // virtual
|
||||
|
||||
SENSOR_TYPE_TX_V = 0x7F, // TX Voltage
|
||||
|
||||
@@ -156,6 +158,8 @@ const FlySkySensor flySkySensors[] = {
|
||||
{ SENSOR_TYPE_ALT, STR_SENSOR_ALT, UNIT_METERS, 2 },
|
||||
{ SENSOR_TYPE_RF_MODULE_TEMP, STR_SENSOR_TEMP2, UNIT_CELSIUS, 0 }, // 1 bytes temperature
|
||||
{ SENSOR_TYPE_RF_MODULE_VOL, STR_SENSOR_TXV, UNIT_VOLTS, 2 }, // 2 bytes voltage
|
||||
{ SENSOR_TYPE_RF_MODULE_POWER, STR_SENSOR_TX_POWER, UNIT_DBM, 0 }, // 2 bytes DBM
|
||||
// { SENSOR_TYPE_RF_MODULE_RAW, STR_SENSOR_TX_POWER, UNIT_RAW, 0 }, // 2 bytes DBM
|
||||
{ SENSOR_TYPE_TX_V, STR_SENSOR_TXV, UNIT_VOLTS, 2 }, // TX Voltage
|
||||
{ SENSOR_TYPE_RX_SNR, STR_SENSOR_RX_SNR, UNIT_DB, 0 }, // RX SNR
|
||||
{ SENSOR_TYPE_RX_NOISE, STR_SENSOR_RX_NOISE, UNIT_DBM, 0 }, // RX Noise
|
||||
@@ -232,8 +236,13 @@ void processFlySkyAFHDS3Sensor(const uint8_t * packet, uint8_t len )
|
||||
{
|
||||
uint8_t data1[] = { (uint8_t)(SENSOR_TYPE_RF_MODULE_TEMP>>8), (uint8_t)SENSOR_TYPE_RF_MODULE_TEMP, id, packet[3] };
|
||||
uint8_t data2[] = { (uint8_t)(SENSOR_TYPE_RF_MODULE_VOL>>8), (uint8_t)SENSOR_TYPE_RF_MODULE_VOL, id, packet[4], packet[5] };
|
||||
uint8_t data3[] = { (uint8_t)(SENSOR_TYPE_RF_MODULE_POWER>>8), (uint8_t)SENSOR_TYPE_RF_MODULE_POWER, id, packet[8], packet[9] };
|
||||
// uint8_t data4[] = { (uint8_t)(SENSOR_TYPE_RF_MODULE_RAW>>8), (uint8_t)SENSOR_TYPE_RF_MODULE_RAW, id, packet[6] & 0x07};
|
||||
|
||||
processFlySkyAFHDS3Sensor(data1, 1 );
|
||||
processFlySkyAFHDS3Sensor(data2, 2 );
|
||||
processFlySkyAFHDS3Sensor(data3, 2 );
|
||||
// processFlySkyAFHDS3Sensor(data4, 1 );
|
||||
return;
|
||||
}
|
||||
else
|
||||
@@ -243,7 +252,7 @@ void processFlySkyAFHDS3Sensor(const uint8_t * packet, uint8_t len )
|
||||
if (SENSOR_TYPE_RX_NOISE == type || SENSOR_TYPE_RX_RSSI == type)
|
||||
{
|
||||
value = -value;
|
||||
}
|
||||
}
|
||||
|
||||
if ( (SENSOR_TYPE_EXT_VOL == type) )
|
||||
{
|
||||
@@ -252,7 +261,7 @@ void processFlySkyAFHDS3Sensor(const uint8_t * packet, uint8_t len )
|
||||
type = SENSOR_TYPE_BVD;
|
||||
}
|
||||
}
|
||||
else if(SENSOR_TYPE_RX_RSSI == type || SENSOR_TYPE_RX_NOISE == type || SENSOR_TYPE_RX_SNR == type)
|
||||
else if(SENSOR_TYPE_RX_RSSI == type || SENSOR_TYPE_RX_NOISE == type || SENSOR_TYPE_RX_SNR == type || SENSOR_TYPE_RF_MODULE_POWER == type)
|
||||
{
|
||||
if( value>=0 )
|
||||
value = (value+2)/4;
|
||||
@@ -278,7 +287,7 @@ void processFlySkyAFHDS3Sensor(const uint8_t * packet, uint8_t len )
|
||||
|
||||
if(SENSOR_TYPE_TEMPERATURE == type)
|
||||
{
|
||||
value -= 400;// Temperature sensors have 40 degree offset
|
||||
value -= 400; // Temperature sensors have 40 degree offset
|
||||
}
|
||||
|
||||
for (const FlySkySensor * sensor = flySkySensors; sensor->type; sensor++)
|
||||
|
||||
Reference in New Issue
Block a user