mirror of
https://github.com/opentx/opentx.git
synced 2025-07-24 16:55:20 +03:00
parent
1f4ae1ddb9
commit
5be7fa3339
14 changed files with 156 additions and 10 deletions
|
@ -370,11 +370,11 @@ void drawSensorCustomValue(coord_t x, coord_t y, uint8_t sensor, int32_t value,
|
|||
lcdDrawText(x, y, "OK", flags);
|
||||
}
|
||||
else {
|
||||
for (uint8_t i=0; i<16; i++) {
|
||||
if (value & (1 << i)) {
|
||||
for (uint8_t i = 0; i < 16; i++) {
|
||||
if (value & (1u << i)) {
|
||||
char s[] = "CH__ KO";
|
||||
strAppendUnsigned(&s[2], i+1, 2);
|
||||
lcdDrawText(x, flags & DBLSIZE ? y+1 : y, s, flags & ~DBLSIZE);
|
||||
strAppendUnsigned(&s[2], i + 1, 2);
|
||||
lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, s, flags & ~DBLSIZE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -382,7 +382,7 @@ void drawSensorCustomValue(coord_t x, coord_t y, uint8_t sensor, int32_t value,
|
|||
}
|
||||
else {
|
||||
if (value == 0) {
|
||||
lcdDrawText(x, flags & DBLSIZE ? y+1 : y, "Rx OK", flags & ~DBLSIZE);
|
||||
lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, "Rx OK", flags & ~DBLSIZE);
|
||||
}
|
||||
else {
|
||||
static const char * const RXS_STATUS[] = {
|
||||
|
@ -398,23 +398,47 @@ void drawSensorCustomValue(coord_t x, coord_t y, uint8_t sensor, int32_t value,
|
|||
"Rx1 NS",
|
||||
"Rx2 NS",
|
||||
};
|
||||
for (uint8_t i=0; i<DIM(RXS_STATUS); i++) {
|
||||
if (value & (1<<i)) {
|
||||
lcdDrawText(x, flags & DBLSIZE ? y+1 : y, RXS_STATUS[i], flags & ~DBLSIZE);
|
||||
for (uint8_t i = 0; i < DIM(RXS_STATUS); i++) {
|
||||
if (value & (1u << i)) {
|
||||
lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, RXS_STATUS[i], flags & ~DBLSIZE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (telemetrySensor.id >= RB3040_OUTPUT_FIRST_ID && telemetrySensor.id <= RB3040_OUTPUT_LAST_ID) {
|
||||
if (telemetrySensor.subId == 0) {
|
||||
if (value == 0) {
|
||||
lcdDrawText(x, y, "OK", flags);
|
||||
}
|
||||
else {
|
||||
for (uint8_t i = 0; i < 9; i++) {
|
||||
if (value & (1u << i)) {
|
||||
if (i < 8) {
|
||||
char s[] = "CH__ KO";
|
||||
strAppendUnsigned(&s[2], i + 17, 2);
|
||||
lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, s, flags & ~DBLSIZE);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
char s[] = "S.P Ovl";
|
||||
lcdDrawText(x, flags & DBLSIZE ? y + 1 : y, s, flags & ~DBLSIZE);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (telemetrySensor.unit == UNIT_TEXT) {
|
||||
lcdDrawSizedText(x, flags & DBLSIZE ? y+1 : y, telemetryItem.text, sizeof(telemetryItem.text), flags & ~DBLSIZE);
|
||||
lcdDrawSizedText(x, flags & DBLSIZE ? y + 1 : y, telemetryItem.text, sizeof(telemetryItem.text), flags & ~DBLSIZE);
|
||||
}
|
||||
else {
|
||||
if (telemetrySensor.prec > 0) {
|
||||
flags |= (telemetrySensor.prec==1 ? PREC1 : PREC2);
|
||||
flags |= (telemetrySensor.prec == 1 ? PREC1 : PREC2);
|
||||
}
|
||||
drawValueWithUnit(x, y, value, telemetrySensor.unit == UNIT_CELLS ? UNIT_VOLTS : telemetrySensor.unit, flags);
|
||||
}
|
||||
|
|
|
@ -150,6 +150,16 @@ enum FrSkyDataState {
|
|||
#define ESC_RPM_CONS_LAST_ID 0x0B6f
|
||||
#define ESC_TEMPERATURE_FIRST_ID 0x0B70
|
||||
#define ESC_TEMPERATURE_LAST_ID 0x0B7f
|
||||
#define RB3040_OUTPUT_FIRST_ID 0x0B80
|
||||
#define RB3040_OUTPUT_LAST_ID 0x0B8F
|
||||
#define RB3040_CH1_2_FIRST_ID 0x0B90
|
||||
#define RB3040_CH1_2_LAST_ID 0x0B9F
|
||||
#define RB3040_CH3_4_FIRST_ID 0x0BA0
|
||||
#define RB3040_CH3_4_LAST_ID 0x0BAF
|
||||
#define RB3040_CH5_6_FIRST_ID 0x0BB0
|
||||
#define RB3040_CH5_6_LAST_ID 0x0BBF
|
||||
#define RB3040_CH7_8_FIRST_ID 0x0BC0
|
||||
#define RB3040_CH7_8_LAST_ID 0x0BCF
|
||||
#define X8R_FIRST_ID 0x0c20
|
||||
#define X8R_LAST_ID 0x0c2F
|
||||
#define S6R_FIRST_ID 0x0c30
|
||||
|
|
|
@ -84,6 +84,15 @@ const FrSkySportSensor sportSensors[] = {
|
|||
{ GASSUIT_AVG_FLOW_FIRST_ID, GASSUIT_AVG_FLOW_LAST_ID, 0, ZSTR_GASSUIT_AVG_FLOW, UNIT_MILLILITERS_PER_MINUTE, 0 },
|
||||
{ SBEC_POWER_FIRST_ID, SBEC_POWER_LAST_ID, 0, ZSTR_SBEC_VOLTAGE, UNIT_VOLTS, 2 },
|
||||
{ SBEC_POWER_FIRST_ID, SBEC_POWER_LAST_ID, 1, ZSTR_SBEC_CURRENT, UNIT_AMPS, 2 },
|
||||
{ RB3040_OUTPUT_FIRST_ID, RB3040_OUTPUT_LAST_ID, 0, ZSTR_RB3040_EXTRA_STATE, UNIT_BITFIELD, 0 },
|
||||
{ RB3040_CH1_2_FIRST_ID, RB3040_CH1_2_LAST_ID, 0, ZSTR_RB3040_CHANNEL1, UNIT_AMPS, 2 },
|
||||
{ RB3040_CH1_2_FIRST_ID, RB3040_CH1_2_LAST_ID, 1, ZSTR_RB3040_CHANNEL2, UNIT_AMPS, 2 },
|
||||
{ RB3040_CH3_4_FIRST_ID, RB3040_CH3_4_LAST_ID, 0, ZSTR_RB3040_CHANNEL3, UNIT_AMPS, 2 },
|
||||
{ RB3040_CH3_4_FIRST_ID, RB3040_CH3_4_LAST_ID, 1, ZSTR_RB3040_CHANNEL4, UNIT_AMPS, 2 },
|
||||
{ RB3040_CH5_6_FIRST_ID, RB3040_CH5_6_LAST_ID, 0, ZSTR_RB3040_CHANNEL5, UNIT_AMPS, 2 },
|
||||
{ RB3040_CH5_6_FIRST_ID, RB3040_CH5_6_LAST_ID, 1, ZSTR_RB3040_CHANNEL6, UNIT_AMPS, 2 },
|
||||
{ RB3040_CH7_8_FIRST_ID, RB3040_CH7_8_LAST_ID, 0, ZSTR_RB3040_CHANNEL7, UNIT_AMPS, 2 },
|
||||
{ RB3040_CH7_8_FIRST_ID, RB3040_CH7_8_LAST_ID, 1, ZSTR_RB3040_CHANNEL8, UNIT_AMPS, 2 },
|
||||
{ 0, 0, 0, NULL, UNIT_RAW, 0 } // sentinel
|
||||
};
|
||||
|
||||
|
@ -308,6 +317,10 @@ void sportProcessTelemetryPacketWithoutCrc(uint8_t origin, const uint8_t * packe
|
|||
}
|
||||
#endif
|
||||
}
|
||||
else if (dataId >= RB3040_CH1_2_FIRST_ID && dataId <= RB3040_CH7_8_LAST_ID) {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xffff);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, (data >> 16u) & 0xffff);
|
||||
}
|
||||
else {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data);
|
||||
}
|
||||
|
|
|
@ -1267,3 +1267,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1273,3 +1273,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1271,3 +1271,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1289,3 +1289,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1279,3 +1279,12 @@
|
|||
#define ZSTR_GASSUIT_MAX_FLOW "GMFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1295,3 +1295,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1289,3 +1289,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1281,3 +1281,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1288,3 +1288,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1277,3 +1277,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
|
@ -1288,3 +1288,12 @@
|
|||
#define ZSTR_GASSUIT_AVG_FLOW "GAFl"
|
||||
#define ZSTR_SBEC_VOLTAGE "BecV"
|
||||
#define ZSTR_SBEC_CURRENT "BecA"
|
||||
#define ZSTR_RB3040_EXTRA_STATE "RBES"
|
||||
#define ZSTR_RB3040_CHANNEL1 "CH1A"
|
||||
#define ZSTR_RB3040_CHANNEL2 "CH2A"
|
||||
#define ZSTR_RB3040_CHANNEL3 "CH3A"
|
||||
#define ZSTR_RB3040_CHANNEL4 "CH4A"
|
||||
#define ZSTR_RB3040_CHANNEL5 "CH5A"
|
||||
#define ZSTR_RB3040_CHANNEL6 "CH6A"
|
||||
#define ZSTR_RB3040_CHANNEL7 "CH7A"
|
||||
#define ZSTR_RB3040_CHANNEL8 "CH8A"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue