Add TXRSSI and TXLQI sensors to FrSky D8/D16/LBT when using MULTI (#7128)
Add TXRSSI and TXLQI sensors to FrSky D8/D16/LBT when using MULTI
This commit is contained in:
committed by
Bertrand Songis
parent
7597195229
commit
b50c977dc9
@@ -71,6 +71,13 @@ void frskyDProcessPacket(const uint8_t *packet)
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_D, D_A1_ID, 0, 0, packet[1], UNIT_VOLTS, 0);
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_D, D_A2_ID, 0, 0, packet[2], UNIT_VOLTS, 0);
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_D, D_RSSI_ID, 0, 0, packet[3], UNIT_RAW, 0);
|
||||
#if defined(MULTIMODULE)
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE) {
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_D, TX_RSSI_ID, 0, 0, packet[4]>>1, UNIT_DB, 0);
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_D, RX_LQI_ID, 0, 0, packet[5] , UNIT_RAW, 0);
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_D, TX_LQI_ID , 0, 0, packet[6] , UNIT_RAW, 0);
|
||||
}
|
||||
#endif
|
||||
telemetryData.rssi.set(packet[3]);
|
||||
telemetryStreaming = TELEMETRY_TIMEOUT10ms; // reset counter only if valid packets are being detected
|
||||
break;
|
||||
@@ -263,42 +270,59 @@ void processHubPacket(uint8_t id, int16_t value)
|
||||
|
||||
void frskyDSetDefault(int index, uint16_t id)
|
||||
{
|
||||
TelemetrySensor & telemetrySensor = g_model.telemetrySensors[index];
|
||||
TelemetrySensor &telemetrySensor = g_model.telemetrySensors[index];
|
||||
|
||||
telemetrySensor.id = id;
|
||||
telemetrySensor.instance = 0;
|
||||
|
||||
const FrSkyDSensor * sensor = getFrSkyDSensor(id);
|
||||
if (sensor) {
|
||||
TelemetryUnit unit = sensor->unit;
|
||||
uint8_t prec = min<uint8_t>(2, sensor->prec);
|
||||
telemetrySensor.init(sensor->name, unit, prec);
|
||||
if (id == D_RSSI_ID) {
|
||||
telemetrySensor.filter = 1;
|
||||
telemetrySensor.logs = true;
|
||||
}
|
||||
else if (id >= D_A1_ID && id <= D_A2_ID) {
|
||||
telemetrySensor.custom.ratio = 132;
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
else if (id == CURRENT_ID) {
|
||||
telemetrySensor.onlyPositive = 1;
|
||||
}
|
||||
else if (id == BARO_ALT_AP_ID) {
|
||||
telemetrySensor.autoOffset = 1;
|
||||
}
|
||||
if (unit == UNIT_RPMS) {
|
||||
telemetrySensor.custom.ratio = 1;
|
||||
telemetrySensor.custom.offset = 1;
|
||||
}
|
||||
else if (unit == UNIT_METERS) {
|
||||
if (IS_IMPERIAL_ENABLE()) {
|
||||
telemetrySensor.unit = UNIT_FEET;
|
||||
#if defined(MULTIMODULE)
|
||||
if (id == TX_RSSI_ID) {
|
||||
telemetrySensor.init(ZSTR_TX_RSSI, UNIT_DB, 0);
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
else if (id == TX_LQI_ID) {
|
||||
telemetrySensor.init(ZSTR_TX_QUALITY, UNIT_RAW, 0);
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
else if (id == RX_LQI_ID) {
|
||||
telemetrySensor.init(ZSTR_RX_QUALITY, UNIT_RAW, 0);
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
const FrSkyDSensor * sensor = getFrSkyDSensor(id);
|
||||
if (sensor) {
|
||||
TelemetryUnit unit = sensor->unit;
|
||||
uint8_t prec = min<uint8_t>(2, sensor->prec);
|
||||
telemetrySensor.init(sensor->name, unit, prec);
|
||||
if (id == D_RSSI_ID) {
|
||||
telemetrySensor.filter = 1;
|
||||
telemetrySensor.logs = true;
|
||||
}
|
||||
else if (id >= D_A1_ID && id <= D_A2_ID) {
|
||||
telemetrySensor.custom.ratio = 132;
|
||||
telemetrySensor.filter = 1;
|
||||
}
|
||||
else if (id == CURRENT_ID) {
|
||||
telemetrySensor.onlyPositive = 1;
|
||||
}
|
||||
else if (id == BARO_ALT_AP_ID) {
|
||||
telemetrySensor.autoOffset = 1;
|
||||
}
|
||||
if (unit == UNIT_RPMS) {
|
||||
telemetrySensor.custom.ratio = 1;
|
||||
telemetrySensor.custom.offset = 1;
|
||||
}
|
||||
else if (unit == UNIT_METERS) {
|
||||
if (IS_IMPERIAL_ENABLE()) {
|
||||
telemetrySensor.unit = UNIT_FEET;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
telemetrySensor.init(id);
|
||||
else {
|
||||
telemetrySensor.init(id);
|
||||
}
|
||||
}
|
||||
|
||||
storageDirty(EE_MODEL);
|
||||
|
||||
Reference in New Issue
Block a user