mirror of
https://github.com/opentx/opentx.git
synced 2025-07-25 09:15:38 +03:00
[Crossfire] New frame ATTITUDE added
This commit is contained in:
parent
068fa45a06
commit
5767be27b6
18 changed files with 129 additions and 24 deletions
|
@ -359,6 +359,7 @@ enum TelemetryUnit {
|
|||
UNIT_RPMS,
|
||||
UNIT_G,
|
||||
UNIT_DEGREE,
|
||||
UNIT_RADIANS,
|
||||
UNIT_MILLILITERS,
|
||||
UNIT_FLOZ,
|
||||
UNIT_HOURS,
|
||||
|
@ -370,6 +371,7 @@ enum TelemetryUnit {
|
|||
UNIT_DATETIME,
|
||||
UNIT_GPS,
|
||||
UNIT_BITFIELD,
|
||||
UNIT_TEXT,
|
||||
// Internal units (not stored in sensor unit)
|
||||
UNIT_GPS_LONGITUDE,
|
||||
UNIT_GPS_LATITUDE,
|
||||
|
|
|
@ -48,30 +48,38 @@ enum CrossfireSensorIndexes {
|
|||
GPS_HEADING_INDEX,
|
||||
GPS_ALTITUDE_INDEX,
|
||||
GPS_SATELLITES_INDEX,
|
||||
UNKNOW_INDEX,
|
||||
ATTITUDE_PITCH_INDEX,
|
||||
ATTITUDE_ROLL_INDEX,
|
||||
ATTITUDE_YAW_INDEX,
|
||||
FLIGHT_MODE_INDEX,
|
||||
UNKNOWN_INDEX,
|
||||
};
|
||||
|
||||
const CrossfireSensor crossfireSensors[] = {
|
||||
{LINK_ID, 0, ZSTR_RX_RSSI1, UNIT_DB, 0},
|
||||
{LINK_ID, 1, ZSTR_RX_RSSI2, UNIT_DB, 0},
|
||||
{LINK_ID, 2, ZSTR_RX_QUALITY, UNIT_PERCENT, 0},
|
||||
{LINK_ID, 3, ZSTR_RX_SNR, UNIT_DB, 0},
|
||||
{LINK_ID, 4, ZSTR_ANTENNA, UNIT_RAW, 0},
|
||||
{LINK_ID, 5, ZSTR_RF_MODE, UNIT_RAW, 0},
|
||||
{LINK_ID, 6, ZSTR_TX_POWER, UNIT_MILLIWATTS, 0},
|
||||
{LINK_ID, 7, ZSTR_TX_RSSI, UNIT_DB, 0},
|
||||
{LINK_ID, 8, ZSTR_TX_QUALITY, UNIT_PERCENT, 0},
|
||||
{LINK_ID, 9, ZSTR_TX_SNR, UNIT_DB, 0},
|
||||
{BATTERY_ID, 0, ZSTR_BATT, UNIT_VOLTS, 1},
|
||||
{BATTERY_ID, 1, ZSTR_CURR, UNIT_AMPS, 1},
|
||||
{BATTERY_ID, 2, ZSTR_CAPACITY, UNIT_MAH, 0},
|
||||
{GPS_ID, 0, ZSTR_GPS, UNIT_GPS_LATITUDE, 0},
|
||||
{GPS_ID, 0, ZSTR_GPS, UNIT_GPS_LONGITUDE, 0},
|
||||
{GPS_ID, 2, ZSTR_GSPD, UNIT_KMH, 1},
|
||||
{GPS_ID, 3, ZSTR_HDG, UNIT_DEGREE, 3},
|
||||
{GPS_ID, 4, ZSTR_ALT, UNIT_METERS, 0},
|
||||
{GPS_ID, 5, ZSTR_SATELLITES, UNIT_RAW, 0},
|
||||
{0, 0, "UNKNOWN", UNIT_RAW, 0},
|
||||
{LINK_ID, 0, ZSTR_RX_RSSI1, UNIT_DB, 0},
|
||||
{LINK_ID, 1, ZSTR_RX_RSSI2, UNIT_DB, 0},
|
||||
{LINK_ID, 2, ZSTR_RX_QUALITY, UNIT_PERCENT, 0},
|
||||
{LINK_ID, 3, ZSTR_RX_SNR, UNIT_DB, 0},
|
||||
{LINK_ID, 4, ZSTR_ANTENNA, UNIT_RAW, 0},
|
||||
{LINK_ID, 5, ZSTR_RF_MODE, UNIT_RAW, 0},
|
||||
{LINK_ID, 6, ZSTR_TX_POWER, UNIT_MILLIWATTS, 0},
|
||||
{LINK_ID, 7, ZSTR_TX_RSSI, UNIT_DB, 0},
|
||||
{LINK_ID, 8, ZSTR_TX_QUALITY, UNIT_PERCENT, 0},
|
||||
{LINK_ID, 9, ZSTR_TX_SNR, UNIT_DB, 0},
|
||||
{BATTERY_ID, 0, ZSTR_BATT, UNIT_VOLTS, 1},
|
||||
{BATTERY_ID, 1, ZSTR_CURR, UNIT_AMPS, 1},
|
||||
{BATTERY_ID, 2, ZSTR_CAPACITY, UNIT_MAH, 0},
|
||||
{GPS_ID, 0, ZSTR_GPS, UNIT_GPS_LATITUDE, 0},
|
||||
{GPS_ID, 0, ZSTR_GPS, UNIT_GPS_LONGITUDE, 0},
|
||||
{GPS_ID, 2, ZSTR_GSPD, UNIT_KMH, 1},
|
||||
{GPS_ID, 3, ZSTR_HDG, UNIT_DEGREE, 3},
|
||||
{GPS_ID, 4, ZSTR_ALT, UNIT_METERS, 0},
|
||||
{GPS_ID, 5, ZSTR_SATELLITES, UNIT_RAW, 0},
|
||||
{ATTITUDE_ID, 0, ZSTR_PITCH, UNIT_RADIANS, 3},
|
||||
{ATTITUDE_ID, 1, ZSTR_ROLL, UNIT_RADIANS, 3},
|
||||
{ATTITUDE_ID, 2, ZSTR_YAW, UNIT_RADIANS, 3},
|
||||
{FLIGHT_MODE_ID, 2, ZSTR_FLIGHT_MODE, UNIT_TEXT, 0},
|
||||
{0, 0, "UNKNOWN", UNIT_RAW, 0},
|
||||
};
|
||||
|
||||
const CrossfireSensor & getCrossfireSensor(uint8_t id, uint8_t subId)
|
||||
|
@ -82,8 +90,12 @@ const CrossfireSensor & getCrossfireSensor(uint8_t id, uint8_t subId)
|
|||
return crossfireSensors[BATT_VOLTAGE_INDEX+subId];
|
||||
else if (id == GPS_ID)
|
||||
return crossfireSensors[GPS_LATITUDE_INDEX+subId];
|
||||
else if (id == ATTITUDE_ID)
|
||||
return crossfireSensors[ATTITUDE_PITCH_INDEX+subId];
|
||||
else if (id == FLIGHT_MODE_ID)
|
||||
return crossfireSensors[FLIGHT_MODE_INDEX];
|
||||
else
|
||||
return crossfireSensors[UNKNOW_INDEX];
|
||||
return crossfireSensors[UNKNOWN_INDEX];
|
||||
}
|
||||
|
||||
void processCrossfireTelemetryValue(uint8_t index, uint32_t value)
|
||||
|
@ -140,6 +152,7 @@ void processCrossfireTelemetryFrame()
|
|||
if (getCrossfireTelemetryValue<1>(17, value))
|
||||
processCrossfireTelemetryValue(GPS_SATELLITES_INDEX, value);
|
||||
break;
|
||||
|
||||
case LINK_ID:
|
||||
telemetryStreaming = TELEMETRY_TIMEOUT10ms;
|
||||
for (int i=0; i<10; i++) {
|
||||
|
@ -151,6 +164,7 @@ void processCrossfireTelemetryFrame()
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case BATTERY_ID:
|
||||
if (getCrossfireTelemetryValue<2>(3, value))
|
||||
processCrossfireTelemetryValue(BATT_VOLTAGE_INDEX, value);
|
||||
|
@ -159,6 +173,20 @@ void processCrossfireTelemetryFrame()
|
|||
if (getCrossfireTelemetryValue<3>(7, value))
|
||||
processCrossfireTelemetryValue(BATT_CAPACITY_INDEX, value);
|
||||
break;
|
||||
|
||||
case ATTITUDE_ID:
|
||||
if (getCrossfireTelemetryValue<2>(3, value))
|
||||
processCrossfireTelemetryValue(ATTITUDE_PITCH_INDEX, value/10);
|
||||
if (getCrossfireTelemetryValue<2>(5, value))
|
||||
processCrossfireTelemetryValue(ATTITUDE_ROLL_INDEX, value/10);
|
||||
if (getCrossfireTelemetryValue<2>(7, value))
|
||||
processCrossfireTelemetryValue(ATTITUDE_YAW_INDEX, value/10);
|
||||
break;
|
||||
|
||||
case FLIGHT_MODE_ID:
|
||||
// TODO
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
#define BATTERY_ID 0x08
|
||||
#define LINK_ID 0x14
|
||||
#define CHANNELS_ID 0x16
|
||||
#define ATTITUDE_ID 0x1E
|
||||
#define FLIGHT_MODE_ID 0x21
|
||||
|
||||
void processCrossfireTelemetryData(uint8_t data);
|
||||
void crossfireSetDefault(int index, uint8_t id, uint8_t subId);
|
||||
|
|
|
@ -1256,3 +1256,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1259,3 +1259,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1272,3 +1272,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1218,3 +1218,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1218,3 +1218,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1245,3 +1245,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "PV"
|
||||
|
|
|
@ -1254,3 +1254,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1269,3 +1269,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1256,3 +1256,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1215,3 +1215,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -1271,3 +1271,7 @@
|
|||
#define ZSTR_TX_RSSI "TRSS"
|
||||
#define ZSTR_TX_QUALITY "TQly"
|
||||
#define ZSTR_TX_SNR "TSNR"
|
||||
#define ZSTR_PITCH "Ptch"
|
||||
#define ZSTR_ROLL "Roll"
|
||||
#define ZSTR_YAW "Yaw"
|
||||
#define ZSTR_FLIGHT_MODE "FM"
|
||||
|
|
|
@ -33,10 +33,12 @@ for i, s in enumerate(["volt", "volty", u"voltů", "voltu",
|
|||
"procento", "procenta", "procent", "procenta",
|
||||
u"miliampérhodina", u"miliampérhodiny", u"miliampérhodin", u"miliampérhodiny",
|
||||
"vat", "vaty", u"vatů", "vatu",
|
||||
"milivat", "milivaty", u"milivatů", "milivatu",
|
||||
"decibel", "decibely", u"decibelů", "decibelu",
|
||||
u"otáčka za minutu", u"otáčky za minutu", u"otáček za minutu", u"otáčky za minutu",
|
||||
u"gé", u"gé", u"gé", u"gé"
|
||||
u"stupeň", u"stupně", u"stupňů", u"stupně",
|
||||
u"", u"", u"", u"",
|
||||
u"mililitr", u"mililitry", u"mililitrů", "mililitru",
|
||||
u"dutá unce", u"duté unce", u"dutých uncí", u"duté unce",
|
||||
"hodina", "hodiny", "hodin", "hodiny",
|
||||
|
|
|
@ -17,7 +17,7 @@ for i, s in enumerate(["", "Volt", "Ampere", "MilliAmpere", "Knoten",
|
|||
"Meter pro sekunde", "Fuesse pro sekunde",
|
||||
"kilometer pro stunde", "Meilen pro Stunde", "Meter",
|
||||
"Fuesse", "Grad", "Grad Fahrenheit", "Prozent",
|
||||
"Milliampere pro stunde", "Watt", "db", "R P M", "g",
|
||||
"Milliampere pro stunde", "Watt", "Milli Watt", "db", "R P M", "g", "degree", "radians",
|
||||
"Milliliter", "Unze", "Uhr", "Minuten", "Secunden"]):
|
||||
systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 110 + i)))
|
||||
for s, f, a in [(u"Sender ist inaktiv,bitte Ueberpruefen Sie", "inactiv", 486),
|
||||
|
|
|
@ -34,6 +34,7 @@ for i, s in enumerate(["volt", "volts",
|
|||
"r p m", "r p m",
|
||||
"g", "g",
|
||||
"degree", "degrees",
|
||||
"radian", "radians",
|
||||
"milliliter", "milliliters",
|
||||
"fluid ounce", "fluid ounces",
|
||||
"hour", "hours",
|
||||
|
|
|
@ -15,7 +15,33 @@ for i, s in enumerate(["une", "onze", "vingt et une", "trente et une", "quarante
|
|||
systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 110 + i)))
|
||||
for i, s in enumerate(["virgule", "et", "moins", "minuit", "midi"]):
|
||||
systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 119 + i)))
|
||||
for i, s in enumerate([u"volts", u"ampères", u"milli ampères", u"knots", u"mètres seconde", u"pieds par seconde", u"kilomètre heure", u"miles par heure", u"mètres", u"pieds", u"degrés", u"degrés fahrenheit", u"pourcents", u"milli ampères / heure", u"watt", u"milli watt", u"db", u"tours minute", u"g", u"degrés", u"millilitres", u"onces", u"heure", u"minute", u"seconde"]):
|
||||
for i, s in enumerate([u"volts",
|
||||
u"ampères",
|
||||
u"milli ampères",
|
||||
u"knots",
|
||||
u"mètres seconde",
|
||||
u"pieds par seconde",
|
||||
u"kilomètre heure",
|
||||
u"miles par heure",
|
||||
u"mètres",
|
||||
u"pieds",
|
||||
u"degrés",
|
||||
u"degrés fahrenheit",
|
||||
u"pourcents",
|
||||
u"milli ampères / heure",
|
||||
u"watt",
|
||||
u"milli watt",
|
||||
u"db",
|
||||
u"tours minute",
|
||||
u"g",
|
||||
u"degrés",
|
||||
u"radians",
|
||||
u"millilitres",
|
||||
u"onces",
|
||||
u"heure",
|
||||
u"minute",
|
||||
u"seconde"
|
||||
]):
|
||||
systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 125 + i)))
|
||||
for i, s in enumerate(["virgule 0", "virgule 1", "virgule 2", "virgule 3", "virgule 4", "virgule 5", "virgule 6", "virgule 7", "virgule 8", "virgule 9"]):
|
||||
systemSounds.append((s, filename(PROMPT_SYSTEM_BASE + 180 + i)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue