+12
-10
@@ -139,6 +139,8 @@ enum FrSkyDataState {
|
||||
#define A4_LAST_ID 0x091F
|
||||
#define AIR_SPEED_FIRST_ID 0x0A00
|
||||
#define AIR_SPEED_LAST_ID 0x0A0F
|
||||
#define FUEL_QTY_FIRST_ID 0x0A10
|
||||
#define FUEL_QTY_LAST_ID 0x0A1F
|
||||
#define RBOX_BATT1_FIRST_ID 0x0B00
|
||||
#define RBOX_BATT1_LAST_ID 0x0B0F
|
||||
#define RBOX_BATT2_FIRST_ID 0x0B10
|
||||
@@ -152,9 +154,9 @@ enum FrSkyDataState {
|
||||
#define ESC_POWER_FIRST_ID 0x0B50
|
||||
#define ESC_POWER_LAST_ID 0x0B5F
|
||||
#define ESC_RPM_CONS_FIRST_ID 0x0B60
|
||||
#define ESC_RPM_CONS_LAST_ID 0x0B6f
|
||||
#define ESC_RPM_CONS_LAST_ID 0x0B6F
|
||||
#define ESC_TEMPERATURE_FIRST_ID 0x0B70
|
||||
#define ESC_TEMPERATURE_LAST_ID 0x0B7f
|
||||
#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
|
||||
@@ -165,10 +167,10 @@ enum FrSkyDataState {
|
||||
#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
|
||||
#define S6R_LAST_ID 0x0c3F
|
||||
#define X8R_FIRST_ID 0x0C20
|
||||
#define X8R_LAST_ID 0x0C2F
|
||||
#define S6R_FIRST_ID 0x0C30
|
||||
#define S6R_LAST_ID 0x0C3F
|
||||
#define GASSUIT_TEMP1_FIRST_ID 0x0D00
|
||||
#define GASSUIT_TEMP1_LAST_ID 0x0D0F
|
||||
#define GASSUIT_TEMP2_FIRST_ID 0x0D10
|
||||
@@ -182,15 +184,17 @@ enum FrSkyDataState {
|
||||
#define GASSUIT_FLOW_FIRST_ID 0x0D50
|
||||
#define GASSUIT_FLOW_LAST_ID 0x0D5F
|
||||
#define GASSUIT_MAX_FLOW_FIRST_ID 0x0D60
|
||||
#define GASSUIT_MAX_FLOW_LAST_ID 0x0D6f
|
||||
#define GASSUIT_MAX_FLOW_LAST_ID 0x0D6F
|
||||
#define GASSUIT_AVG_FLOW_FIRST_ID 0x0D70
|
||||
#define GASSUIT_AVG_FLOW_LAST_ID 0x0D7f
|
||||
#define GASSUIT_AVG_FLOW_LAST_ID 0x0D7F
|
||||
#define SBEC_POWER_FIRST_ID 0x0E50
|
||||
#define SBEC_POWER_LAST_ID 0x0E5F
|
||||
#define DIY_FIRST_ID 0x5100
|
||||
#define DIY_LAST_ID 0x52FF
|
||||
#define DIY_STREAM_FIRST_ID 0x5000
|
||||
#define DIY_STREAM_LAST_ID 0x50FF
|
||||
#define SERVO_FIRST_ID 0x6800
|
||||
#define SERVO_LAST_ID 0x680F
|
||||
#define FACT_TEST_ID 0xF000
|
||||
#define VALID_FRAME_RATE_ID 0xF010
|
||||
#define RSSI_ID 0xF101
|
||||
@@ -202,8 +206,6 @@ enum FrSkyDataState {
|
||||
#define R9_PWR_ID 0xF107
|
||||
#define SP2UART_A_ID 0xFD00
|
||||
#define SP2UART_B_ID 0xFD01
|
||||
#define FUEL_QTY_FIRST_ID 0x0A10
|
||||
#define FUEL_QTY_LAST_ID 0x0A1F
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
// Virtual IDs, value can be changed to anything only used for display
|
||||
|
||||
@@ -94,7 +94,11 @@ const FrSkySportSensor sportSensors[] = {
|
||||
{ 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
|
||||
{ SERVO_FIRST_ID, SERVO_LAST_ID, 0, ZSTR_SERVO_CURRENT, UNIT_AMPS, 1 },
|
||||
{ SERVO_FIRST_ID, SERVO_LAST_ID, 1, ZSTR_SERVO_VOLTAGE, UNIT_VOLTS, 1 },
|
||||
{ SERVO_FIRST_ID, SERVO_LAST_ID, 2, ZSTR_SERVO_TEMPERATURE, UNIT_CELSIUS, 0 },
|
||||
{ SERVO_FIRST_ID, SERVO_LAST_ID, 3, ZSTR_SERVO_STATUS, UNIT_TEXT, 0 },
|
||||
{ 0, 0, 0, nullptr, UNIT_RAW, 0 } // sentinel
|
||||
};
|
||||
|
||||
const FrSkySportSensor * getFrSkySportSensor(uint16_t id, uint8_t subId=0)
|
||||
@@ -110,13 +114,13 @@ const FrSkySportSensor * getFrSkySportSensor(uint16_t id, uint8_t subId=0)
|
||||
bool checkSportPacket(const uint8_t * packet)
|
||||
{
|
||||
short crc = 0;
|
||||
for (int i=1; i<FRSKY_SPORT_PACKET_SIZE; ++i) {
|
||||
for (int i = 1; i < FRSKY_SPORT_PACKET_SIZE; ++i) {
|
||||
crc += packet[i]; // 0-1FE
|
||||
crc += crc >> 8; // 0-1FF
|
||||
crc &= 0x00ff; // 0-FF
|
||||
crc += crc >> 8u; // 0-1FF
|
||||
crc &= 0x00FFu; // 0-FF
|
||||
}
|
||||
// TRACE("crc: 0x%02x", crc);
|
||||
return (crc == 0x00ff);
|
||||
return crc == 0x00FF;
|
||||
}
|
||||
|
||||
#define SPORT_DATA_U8(packet) (packet[4])
|
||||
@@ -137,15 +141,15 @@ void sportProcessTelemetryPacket(uint16_t id, uint8_t subId, uint8_t instance, u
|
||||
precision = sensor->prec;
|
||||
}
|
||||
if (unit == UNIT_CELLS) {
|
||||
uint8_t cellsCount = (data & 0xF0) >> 4;
|
||||
uint8_t cellIndex = (data & 0x0F);
|
||||
uint8_t cellsCount = (data & 0xF0u) >> 4u;
|
||||
uint8_t cellIndex = (data & 0x0Fu);
|
||||
if (cellIndex >= MAX_CELLS)
|
||||
return;
|
||||
uint32_t mask = (cellsCount << 24) + (cellIndex << 16);
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_SPORT, id, subId, instance, mask + (((data & 0x000FFF00) >> 8) / 5), unit, precision);
|
||||
if (cellIndex+1 < cellsCount) {
|
||||
mask += (1 << 16);
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_SPORT, id, subId, instance, mask + (((data & 0xFFF00000) >> 20) / 5), unit, precision);
|
||||
uint32_t mask = (cellsCount << 24u) + (cellIndex << 16u);
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_SPORT, id, subId, instance, mask + (((data & 0x000FFF00u) >> 8u) / 5), unit, precision);
|
||||
if (cellIndex + 1 < cellsCount) {
|
||||
mask += (1 << 16u);
|
||||
setTelemetryValue(PROTOCOL_TELEMETRY_FRSKY_SPORT, id, subId, instance, mask + (((data & 0xFFF00000u) >> 20u) / 5), unit, precision);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -219,7 +223,7 @@ void sportProcessTelemetryPacketWithoutCrc(uint8_t origin, const uint8_t * packe
|
||||
}
|
||||
#if defined(MULTIMODULE)
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_MULTIMODULE) {
|
||||
sportProcessTelemetryPacket(TX_RSSI_ID, 0, instance, packet[5] >> 1, UNIT_DB);
|
||||
sportProcessTelemetryPacket(TX_RSSI_ID, 0, instance, packet[5] >> 1u, UNIT_DB);
|
||||
sportProcessTelemetryPacket(TX_LQI_ID, 0, instance, packet[7], UNIT_RAW);
|
||||
}
|
||||
#endif
|
||||
@@ -263,40 +267,40 @@ void sportProcessTelemetryPacketWithoutCrc(uint8_t origin, const uint8_t * packe
|
||||
|
||||
if (dataId >= GPS_LONG_LATI_FIRST_ID && dataId <= GPS_LONG_LATI_LAST_ID) {
|
||||
int32_t value = (data & 0x3fffffff);
|
||||
if (data & (1 << 30))
|
||||
if (data & (1 << 30u))
|
||||
value = -value;
|
||||
value = (value * 5) / 3; // min/10000 => deg/1000000
|
||||
if (data & (1 << 31))
|
||||
if (data & (1 << 31u))
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, value, UNIT_GPS_LONGITUDE);
|
||||
else
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, value, UNIT_GPS_LATITUDE);
|
||||
}
|
||||
else if (dataId >= RBOX_BATT1_FIRST_ID && dataId <= RBOX_BATT2_LAST_ID) {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xffff);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, data >> 16);
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xFFFFu);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, data >> 16u);
|
||||
}
|
||||
else if (dataId >= RBOX_CNSP_FIRST_ID && dataId <= RBOX_CNSP_LAST_ID) {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xffff);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, data >> 16);
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xFFFFu);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, data >> 16u);
|
||||
}
|
||||
else if (dataId >= RBOX_STATE_FIRST_ID && dataId <= RBOX_STATE_LAST_ID) {
|
||||
bool static isRB10 = false;
|
||||
uint16_t newServosState;
|
||||
|
||||
if (servosState == 0 && (data & 0xff00) == 0xff00) {
|
||||
if (servosState == 0 && (data & 0xFF00u) == 0xFF00u) {
|
||||
isRB10 = true;
|
||||
}
|
||||
if (isRB10) {
|
||||
newServosState = data & 0x00ff; // 8ch only RB10
|
||||
newServosState = data & 0x00FFu; // 8ch only RB10
|
||||
}
|
||||
else {
|
||||
newServosState = data & 0xffff;
|
||||
newServosState = data & 0xFFFFu;
|
||||
}
|
||||
if (newServosState != 0 && servosState == 0) {
|
||||
audioEvent(AU_SERVO_KO);
|
||||
}
|
||||
uint16_t newRboxState = data >> 16;
|
||||
if ((newRboxState & 0x07) && (rboxState & 0x07) == 0) {
|
||||
uint16_t newRboxState = data >> 16u;
|
||||
if ((newRboxState & 0x07u) && (rboxState & 0x07u) == 0) {
|
||||
audioEvent(AU_RX_OVERLOAD);
|
||||
}
|
||||
servosState = newServosState;
|
||||
@@ -305,19 +309,19 @@ void sportProcessTelemetryPacketWithoutCrc(uint8_t origin, const uint8_t * packe
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, rboxState);
|
||||
}
|
||||
else if (dataId >= ESC_POWER_FIRST_ID && dataId <= ESC_POWER_LAST_ID) {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xffff);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, data >> 16);
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xFFFFu);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, data >> 16u);
|
||||
}
|
||||
else if (dataId >= ESC_RPM_CONS_FIRST_ID && dataId <= ESC_RPM_CONS_LAST_ID) {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, 100 * (data & 0xffff));
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, data >> 16);
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, 100 * (data & 0xFFFFu));
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, data >> 16u);
|
||||
}
|
||||
else if (dataId >= ESC_TEMPERATURE_FIRST_ID && dataId <= ESC_TEMPERATURE_LAST_ID) {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0x00ff);
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0x00FFu);
|
||||
}
|
||||
else if (dataId >= SBEC_POWER_FIRST_ID && dataId <= SBEC_POWER_LAST_ID) {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, (data & 0xffff) / 10);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, (data >> 16) / 10);
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, (data & 0xFFFFu) / 10);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, (data >> 16u) / 10);
|
||||
}
|
||||
else if (dataId >= DIY_STREAM_FIRST_ID && dataId <= DIY_STREAM_LAST_ID) {
|
||||
#if defined(LUA)
|
||||
@@ -334,8 +338,19 @@ 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);
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xFFFFu);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, (data >> 16u) & 0xFFFFu);
|
||||
}
|
||||
else if (dataId >= SERVO_FIRST_ID && dataId <= SERVO_LAST_ID) {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data & 0xFFu);
|
||||
sportProcessTelemetryPacket(dataId, 1, instance, (data >> 8u) & 0xFFu);
|
||||
sportProcessTelemetryPacket(dataId, 2, instance, (data >> 16u) & 0xFFu);
|
||||
uint8_t newServosState = data >> 24u;
|
||||
setTelemetryText(PROTOCOL_TELEMETRY_FRSKY_SPORT, dataId, 3, instance, newServosState ? "STALL" : "OK");
|
||||
if (newServosState != 0 && servosState == 0) {
|
||||
audioEvent(AU_SERVO_KO);
|
||||
servosState = newServosState;
|
||||
}
|
||||
}
|
||||
else {
|
||||
sportProcessTelemetryPacket(dataId, 0, instance, data);
|
||||
|
||||
@@ -97,6 +97,7 @@ PACK(struct CellValue
|
||||
});
|
||||
|
||||
int setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t subId, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec);
|
||||
int setTelemetryText(TelemetryProtocol protocol, uint16_t id, uint8_t subId, uint8_t instance, const char * text);
|
||||
void delTelemetryIndex(uint8_t index);
|
||||
int availableTelemetryIndex();
|
||||
int lastUsedTelemetryIndex();
|
||||
|
||||
@@ -78,21 +78,27 @@ uint32_t getDistFromEarthAxis(int32_t latitude)
|
||||
return 139*(((uint32_t)10000000 - ((angle2*(uint32_t)123370)/81) + (angle4/25))/12500);
|
||||
}
|
||||
|
||||
void TelemetryItem::setValue(const TelemetrySensor & sensor, const char * val, uint32_t, uint32_t)
|
||||
{
|
||||
strncpy(text, val, sizeof(text));
|
||||
setFresh();
|
||||
}
|
||||
|
||||
void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32_t unit, uint32_t prec)
|
||||
{
|
||||
int32_t newVal = val;
|
||||
|
||||
if(prec == 255) {
|
||||
if (prec == 255) {
|
||||
prec = sensor.prec;
|
||||
}
|
||||
|
||||
if (unit == UNIT_CELLS) {
|
||||
uint32_t data = uint32_t(newVal);
|
||||
uint8_t cellsCount = (data >> 24);
|
||||
uint8_t cellIndex = ((data >> 16) & 0x0F);
|
||||
auto data = uint32_t(newVal);
|
||||
uint8_t cellsCount = (data >> 24u);
|
||||
uint8_t cellIndex = ((data >> 16u) & 0x0Fu);
|
||||
if (cellIndex >= MAX_CELLS)
|
||||
return;
|
||||
uint16_t cellValue = (data & 0xFFFF);
|
||||
uint16_t cellValue = (data & 0xFFFFu);
|
||||
if (cellsCount == 0) {
|
||||
cellsCount = (cellIndex >= cells.count ? cellIndex + 1 : cells.count);
|
||||
if (cellsCount != cells.count) {
|
||||
@@ -178,18 +184,18 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32
|
||||
}
|
||||
else if (unit == UNIT_DATETIME_DAY_MONTH) {
|
||||
auto data = uint32_t(newVal);
|
||||
datetime.month = data >> 8;
|
||||
datetime.day = data & 0xFF;
|
||||
datetime.month = data >> 8u;
|
||||
datetime.day = data & 0xFFu;
|
||||
return;
|
||||
}
|
||||
else if (unit == UNIT_DATETIME_HOUR_MIN) {
|
||||
auto data = uint32_t(newVal);
|
||||
datetime.hour = (data & 0xFF);
|
||||
datetime.min = data >> 8;
|
||||
datetime.hour = (data & 0xFFu);
|
||||
datetime.min = data >> 8u;
|
||||
return;
|
||||
}
|
||||
else if (unit == UNIT_DATETIME_SEC) {
|
||||
datetime.sec = newVal & 0xFF;
|
||||
datetime.sec = newVal & 0xFFu;
|
||||
newVal = 0;
|
||||
}
|
||||
else if (unit == UNIT_RPMS) {
|
||||
@@ -198,8 +204,6 @@ void TelemetryItem::setValue(const TelemetrySensor & sensor, int32_t val, uint32
|
||||
}
|
||||
}
|
||||
else if (unit == UNIT_TEXT) {
|
||||
*((uint32_t*)&text[prec]) = newVal;
|
||||
setFresh();
|
||||
return;
|
||||
}
|
||||
else {
|
||||
@@ -495,7 +499,8 @@ int lastUsedTelemetryIndex()
|
||||
return -1;
|
||||
}
|
||||
|
||||
int setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t subId, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec)
|
||||
template <class T>
|
||||
int setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t subId, uint8_t instance, T value, uint32_t unit = 0, uint32_t prec = 0)
|
||||
{
|
||||
bool sensorFound = false;
|
||||
|
||||
@@ -518,41 +523,50 @@ int setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t subId, ui
|
||||
case PROTOCOL_TELEMETRY_FRSKY_SPORT:
|
||||
frskySportSetDefault(index, id, subId, instance);
|
||||
break;
|
||||
|
||||
case PROTOCOL_TELEMETRY_FRSKY_D:
|
||||
frskyDSetDefault(index, id);
|
||||
break;
|
||||
|
||||
#if defined(CROSSFIRE)
|
||||
case PROTOCOL_TELEMETRY_CROSSFIRE:
|
||||
crossfireSetDefault(index, id, instance);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(GHOST)
|
||||
case PROTOCOL_TELEMETRY_GHOST:
|
||||
ghostSetDefault(index, id, instance);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE) || defined(AFHDS3)
|
||||
case PROTOCOL_TELEMETRY_FLYSKY_IBUS:
|
||||
flySkySetDefault(index,id, subId, instance);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
case PROTOCOL_TELEMETRY_SPEKTRUM:
|
||||
spektrumSetDefault(index, id, subId, instance);
|
||||
break;
|
||||
|
||||
case PROTOCOL_TELEMETRY_HITEC:
|
||||
hitecSetDefault(index, id, subId, instance);
|
||||
break;
|
||||
|
||||
case PROTOCOL_TELEMETRY_HOTT:
|
||||
hottSetDefault(index, id, subId, instance);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(LUA)
|
||||
case PROTOCOL_TELEMETRY_LUA:
|
||||
// Sensor will be initialized by calling function
|
||||
// This drops the first value
|
||||
return index;
|
||||
#endif
|
||||
|
||||
default:
|
||||
return index;
|
||||
}
|
||||
@@ -563,7 +577,16 @@ int setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t subId, ui
|
||||
POPUP_WARNING(STR_TELEMETRYFULL);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
int setTelemetryValue(TelemetryProtocol protocol, uint16_t id, uint8_t subId, uint8_t instance, int32_t value, uint32_t unit, uint32_t prec)
|
||||
{
|
||||
return setTelemetryValue<int32_t>(protocol, id, subId, instance, value, unit, prec);
|
||||
}
|
||||
|
||||
int setTelemetryText(TelemetryProtocol protocol, uint16_t id, uint8_t subId, uint8_t instance, const char * text)
|
||||
{
|
||||
return setTelemetryValue<const char *>(protocol, id, subId, instance, text);
|
||||
}
|
||||
|
||||
void TelemetrySensor::init(const char * label, uint8_t unit, uint8_t prec)
|
||||
|
||||
@@ -91,6 +91,8 @@ class TelemetryItem
|
||||
void eval(const TelemetrySensor & sensor);
|
||||
void per10ms(const TelemetrySensor & sensor);
|
||||
|
||||
void setValue(const TelemetrySensor & sensor, const char * newVal, uint32_t unit=UNIT_TEXT, uint32_t prec=0);
|
||||
|
||||
void setValue(const TelemetrySensor & sensor, int32_t newVal, uint32_t unit, uint32_t prec=0);
|
||||
|
||||
inline bool isAvailable()
|
||||
|
||||
@@ -1355,4 +1355,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1362,4 +1362,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1359,4 +1359,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1358,4 +1358,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1366,4 +1366,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1383,4 +1383,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1376,4 +1376,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
@@ -1368,4 +1368,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1375,4 +1375,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1364,4 +1364,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
@@ -1375,4 +1375,8 @@
|
||||
#define ZSTR_VTX_FREQ "VFrq"
|
||||
#define ZSTR_VTX_PWR "VPwr"
|
||||
#define ZSTR_VTX_CHAN "VChn"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_VTX_BAND "VBan"
|
||||
#define ZSTR_SERVO_CURRENT "SrvA"
|
||||
#define ZSTR_SERVO_VOLTAGE "SrvV"
|
||||
#define ZSTR_SERVO_TEMPERATURE "SrvT"
|
||||
#define ZSTR_SERVO_STATUS "SrvS"
|
||||
|
||||
Reference in New Issue
Block a user