1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-24 16:55:20 +03:00

Nicholas/telemetry for rb30 40 (#7454)

Added telemetry for RB3040
This commit is contained in:
Nicholas-Luoyi 2020-03-24 14:50:09 +08:00 committed by GitHub
parent 1f4ae1ddb9
commit 5be7fa3339
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 156 additions and 10 deletions

View file

@ -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);
}

View file

@ -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

View file

@ -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);
}

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"

View file

@ -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"