mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 16:25:16 +03:00
[SPORT] Alarm added when a servo is in overload or a sensor is disconnected
This commit is contained in:
parent
75e613331b
commit
0341b9ffce
26 changed files with 226 additions and 306 deletions
|
@ -155,15 +155,16 @@ const char * const audioFilenames[] = {
|
|||
"trainko",
|
||||
"trainok",
|
||||
"sensorko",
|
||||
"servoko",
|
||||
#if defined(PCBSKY9X)
|
||||
"highmah",
|
||||
"hightemp",
|
||||
#endif
|
||||
"error",
|
||||
"keyup",
|
||||
"keydown",
|
||||
"menus",
|
||||
"trim",
|
||||
"keyup", // TODO remove this one
|
||||
"keydown", // TODO remove this one
|
||||
"menus", // TODO remove this one
|
||||
"trim", // TODO remove this one
|
||||
"warning1",
|
||||
"warning2",
|
||||
"warning3",
|
||||
|
@ -235,8 +236,8 @@ void referenceSystemAudioFiles()
|
|||
|
||||
uint64_t availableAudioFiles = 0;
|
||||
|
||||
assert(sizeof(audioFilenames)==AU_FRSKY_FIRST*sizeof(char *));
|
||||
assert(sizeof(sdAvailableSystemAudioFiles)*8 >= AU_FRSKY_FIRST);
|
||||
assert(sizeof(audioFilenames)==AU_SPECIAL_SOUND_FIRST*sizeof(char *));
|
||||
assert(sizeof(sdAvailableSystemAudioFiles)*8 >= AU_SPECIAL_SOUND_FIRST);
|
||||
|
||||
char * filename = getSystemAudioPath(path);
|
||||
*(filename-1) = '\0';
|
||||
|
@ -252,7 +253,7 @@ void referenceSystemAudioFiles()
|
|||
// Eliminates directories / non wav files
|
||||
if (len < 5 || strcasecmp(fn+len-4, SOUNDS_EXT) || (fno.fattrib & AM_DIR)) continue;
|
||||
|
||||
for (int i=0; i<AU_FRSKY_FIRST; i++) {
|
||||
for (int i=0; i<AU_SPECIAL_SOUND_FIRST; i++) {
|
||||
getSystemAudioFile(path, i);
|
||||
if (!strcasecmp(filename, fn)) {
|
||||
availableAudioFiles |= MASK_SYSTEM_AUDIO_FILE(i);
|
||||
|
@ -991,27 +992,26 @@ void audioEvent(unsigned int index, unsigned int freq)
|
|||
}
|
||||
#endif
|
||||
|
||||
if (index <= AU_ERROR || (index >= AU_WARNING1 && index < AU_FRSKY_FIRST)) {
|
||||
if (index <= AU_ERROR || (index >= AU_WARNING1 && index < AU_SPECIAL_SOUND_FIRST)) {
|
||||
if (g_eeGeneral.alarmsFlash) {
|
||||
flashCounter = FLASH_DURATION;
|
||||
}
|
||||
}
|
||||
|
||||
if (g_eeGeneral.beepMode>0 || (g_eeGeneral.beepMode==0 && index>=AU_TRIM_MOVE) || (g_eeGeneral.beepMode>=-1 && index<=AU_ERROR)) {
|
||||
if (g_eeGeneral.beepMode > 0 || (g_eeGeneral.beepMode == 0 && index >= AU_TRIM_MOVE) ||
|
||||
(g_eeGeneral.beepMode >= -1 && index <= AU_ERROR)) {
|
||||
#if defined(SDCARD)
|
||||
char filename[AUDIO_FILENAME_MAXLEN + 1];
|
||||
if (index < AU_FRSKY_FIRST && isAudioFileReferenced(index, filename)) {
|
||||
if (index < AU_SPECIAL_SOUND_FIRST && isAudioFileReferenced(index, filename)) {
|
||||
audioQueue.playFile(filename);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (index < AU_FRSKY_FIRST || audioQueue.empty()) {
|
||||
if (index < AU_SPECIAL_SOUND_FIRST) {
|
||||
switch (index) {
|
||||
// inactivity timer alert
|
||||
case AU_INACTIVITY:
|
||||
audioQueue.playTone(2250, 80, 20, PLAY_REPEAT(2));
|
||||
break;
|
||||
// low battery in tx
|
||||
case AU_TX_BATTERY_LOW:
|
||||
#if defined(PCBSKY9X)
|
||||
case AU_TX_MAH_HIGH:
|
||||
|
@ -1020,50 +1020,39 @@ void audioEvent(unsigned int index, unsigned int freq)
|
|||
audioQueue.playTone(1950, 160, 20, PLAY_REPEAT(2), 1);
|
||||
audioQueue.playTone(2550, 160, 20, PLAY_REPEAT(2), -1);
|
||||
break;
|
||||
#if defined(VOICE)
|
||||
case AU_THROTTLE_ALERT:
|
||||
case AU_SWITCH_ALERT:
|
||||
#endif
|
||||
case AU_ERROR:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ, 200, 20, PLAY_NOW);
|
||||
break;
|
||||
// keypad up (seems to be used when going left/right through system menu options. 0-100 scales etc)
|
||||
case AU_KEYPAD_UP:
|
||||
audioQueue.playTone(BEEP_KEY_UP_FREQ, 80, 20, PLAY_NOW);
|
||||
break;
|
||||
// keypad down (seems to be used when going left/right through system menu options. 0-100 scales etc)
|
||||
case AU_KEYPAD_DOWN:
|
||||
audioQueue.playTone(BEEP_KEY_DOWN_FREQ, 80, 20, PLAY_NOW);
|
||||
break;
|
||||
// menu display (also used by a few generic beeps)
|
||||
case AU_MENUS:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ, 80, 20, PLAY_NOW);
|
||||
break;
|
||||
// trim move
|
||||
case AU_TRIM_MOVE:
|
||||
audioQueue.playTone(freq, 40, 20, PLAY_NOW);
|
||||
break;
|
||||
// trim center
|
||||
case AU_TRIM_MIDDLE:
|
||||
audioQueue.playTone(freq, 80, 20, PLAY_NOW);
|
||||
break;
|
||||
// trim center
|
||||
case AU_TRIM_END:
|
||||
audioQueue.playTone(freq, 80, 20, PLAY_NOW);
|
||||
break;
|
||||
// warning one
|
||||
case AU_WARNING1:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ, 80, 20, PLAY_NOW);
|
||||
break;
|
||||
// warning two
|
||||
case AU_WARNING2:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ, 160, 20, PLAY_NOW);
|
||||
break;
|
||||
// warning three
|
||||
case AU_WARNING3:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ, 200, 20, PLAY_NOW);
|
||||
break;
|
||||
// pot/stick center
|
||||
// TODO remove all these ones
|
||||
case AU_STICK1_MIDDLE:
|
||||
case AU_STICK2_MIDDLE:
|
||||
case AU_STICK3_MIDDLE:
|
||||
|
@ -1078,31 +1067,24 @@ void audioEvent(unsigned int index, unsigned int freq)
|
|||
#endif
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 1500, 80, 20, PLAY_NOW);
|
||||
break;
|
||||
// mix warning 1
|
||||
case AU_MIX_WARNING_1:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 1440, 48, 32);
|
||||
break;
|
||||
// mix warning 2
|
||||
case AU_MIX_WARNING_2:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 1560, 48, 32, PLAY_REPEAT(1));
|
||||
break;
|
||||
// mix warning 3
|
||||
case AU_MIX_WARNING_3:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 1680, 48, 32, PLAY_REPEAT(2));
|
||||
break;
|
||||
// timer == 0
|
||||
case AU_TIMER_00:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 150, 300, 20, PLAY_NOW);
|
||||
break;
|
||||
// timer <= 10 seconds left
|
||||
case AU_TIMER_LT10:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 150, 120, 20, PLAY_NOW);
|
||||
break;
|
||||
// timer 20 seconds left
|
||||
case AU_TIMER_20:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 150, 120, 20, PLAY_REPEAT(1) | PLAY_NOW);
|
||||
break;
|
||||
// timer 30 seconds left
|
||||
case AU_TIMER_30:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 150, 120, 20, PLAY_REPEAT(2) | PLAY_NOW);
|
||||
break;
|
||||
|
@ -1127,66 +1109,66 @@ void audioEvent(unsigned int index, unsigned int freq)
|
|||
case AU_SWR_RED:
|
||||
audioQueue.playTone(450, 160, 40, PLAY_REPEAT(2), 1);
|
||||
break;
|
||||
case AU_FRSKY_BEEP1:
|
||||
case AU_SPECIAL_SOUND_BEEP1:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ, 60, 20);
|
||||
break;
|
||||
case AU_FRSKY_BEEP2:
|
||||
case AU_SPECIAL_SOUND_BEEP2:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ, 120, 20);
|
||||
break;
|
||||
case AU_FRSKY_BEEP3:
|
||||
case AU_SPECIAL_SOUND_BEEP3:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ, 200, 20);
|
||||
break;
|
||||
case AU_FRSKY_WARN1:
|
||||
case AU_SPECIAL_SOUND_WARN1:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 600, 120, 40, PLAY_REPEAT(2));
|
||||
break;
|
||||
case AU_FRSKY_WARN2:
|
||||
case AU_SPECIAL_SOUND_WARN2:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 900, 120, 40, PLAY_REPEAT(2));
|
||||
break;
|
||||
case AU_FRSKY_CHEEP:
|
||||
case AU_SPECIAL_SOUND_CHEEP:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 900, 80, 20, PLAY_REPEAT(2), 2);
|
||||
break;
|
||||
case AU_FRSKY_RING:
|
||||
case AU_SPECIAL_SOUND_RING:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 750, 40, 20, PLAY_REPEAT(10));
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 750, 40, 80, PLAY_REPEAT(1));
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 750, 40, 20, PLAY_REPEAT(10));
|
||||
break;
|
||||
case AU_FRSKY_SCIFI:
|
||||
case AU_SPECIAL_SOUND_SCIFI:
|
||||
audioQueue.playTone(2550, 80, 20, PLAY_REPEAT(2), -1);
|
||||
audioQueue.playTone(1950, 80, 20, PLAY_REPEAT(2), 1);
|
||||
audioQueue.playTone(2250, 80, 20, 0);
|
||||
break;
|
||||
case AU_FRSKY_ROBOT:
|
||||
case AU_SPECIAL_SOUND_ROBOT:
|
||||
audioQueue.playTone(2250, 40, 20, PLAY_REPEAT(1));
|
||||
audioQueue.playTone(1650, 120, 20, PLAY_REPEAT(1));
|
||||
audioQueue.playTone(2550, 120, 20, PLAY_REPEAT(1));
|
||||
break;
|
||||
case AU_FRSKY_CHIRP:
|
||||
case AU_SPECIAL_SOUND_CHIRP:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 1200, 40, 20, PLAY_REPEAT(2));
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 1620, 40, 20, PLAY_REPEAT(3));
|
||||
break;
|
||||
case AU_FRSKY_TADA:
|
||||
case AU_SPECIAL_SOUND_TADA:
|
||||
audioQueue.playTone(1650, 80, 40);
|
||||
audioQueue.playTone(2850, 80, 40);
|
||||
audioQueue.playTone(3450, 64, 36, PLAY_REPEAT(2));
|
||||
break;
|
||||
case AU_FRSKY_CRICKET:
|
||||
case AU_SPECIAL_SOUND_CRICKET:
|
||||
audioQueue.playTone(2550, 40, 80, PLAY_REPEAT(3));
|
||||
audioQueue.playTone(2550, 40, 160, PLAY_REPEAT(1));
|
||||
audioQueue.playTone(2550, 40, 80, PLAY_REPEAT(3));
|
||||
break;
|
||||
case AU_FRSKY_SIREN:
|
||||
case AU_SPECIAL_SOUND_SIREN:
|
||||
audioQueue.playTone(450, 160, 40, PLAY_REPEAT(2), 2);
|
||||
break;
|
||||
case AU_FRSKY_ALARMC:
|
||||
case AU_SPECIAL_SOUND_ALARMC:
|
||||
audioQueue.playTone(1650, 32, 68, PLAY_REPEAT(2));
|
||||
audioQueue.playTone(2250, 64, 156, PLAY_REPEAT(1));
|
||||
audioQueue.playTone(1650, 64, 76, PLAY_REPEAT(2));
|
||||
audioQueue.playTone(2250, 32, 168, PLAY_REPEAT(1));
|
||||
break;
|
||||
case AU_FRSKY_RATATA:
|
||||
case AU_SPECIAL_SOUND_RATATA:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 1500, 40, 80, PLAY_REPEAT(10));
|
||||
break;
|
||||
case AU_FRSKY_TICK:
|
||||
case AU_SPECIAL_SOUND_TICK:
|
||||
audioQueue.playTone(BEEP_DEFAULT_FREQ + 1500, 40, 400, PLAY_REPEAT(2));
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -344,8 +344,6 @@ void audioStart();
|
|||
#define AUDIO_RSSI_ORANGE() audioEvent(AU_RSSI_ORANGE)
|
||||
#define AUDIO_RSSI_RED() audioEvent(AU_RSSI_RED)
|
||||
#define AUDIO_SWR_RED() audioEvent(AU_SWR_RED)
|
||||
#define AUDIO_RXBATT_ORANGE() audioEvent(AU_RXBATT_ORANGE)
|
||||
#define AUDIO_RXBATT_RED() audioEvent(AU_RXBATT_RED)
|
||||
#define AUDIO_TELEMETRY_LOST() audioEvent(AU_TELEMETRY_LOST)
|
||||
#define AUDIO_TELEMETRY_BACK() audioEvent(AU_TELEMETRY_BACK)
|
||||
#define AUDIO_TRAINER_LOST() audioEvent(AU_TRAINER_LOST)
|
||||
|
|
|
@ -150,14 +150,14 @@ void audioQueue::event(uint8_t e, uint8_t f)
|
|||
haptic.event(e); //do this before audio to help sync timings
|
||||
#endif
|
||||
|
||||
if (e <= AU_ERROR || (e >= AU_WARNING1 && e < AU_FRSKY_FIRST)) {
|
||||
if (e <= AU_ERROR || (e >= AU_WARNING1 && e < AU_SPECIAL_SOUND_FIRST)) {
|
||||
if (g_eeGeneral.alarmsFlash) {
|
||||
flashCounter = FLASH_DURATION;
|
||||
}
|
||||
}
|
||||
|
||||
if (g_eeGeneral.beepMode>0 || (g_eeGeneral.beepMode==0 && e>=AU_TRIM_MOVE) || (g_eeGeneral.beepMode>=-1 && e<=AU_ERROR)) {
|
||||
if (e < AU_FRSKY_FIRST || empty()) {
|
||||
if (e < AU_SPECIAL_SOUND_FIRST || empty()) {
|
||||
// TODO when VOICE enable some cases here are not needed!
|
||||
switch (e) {
|
||||
#if !defined(VOICE)
|
||||
|
@ -174,36 +174,36 @@ void audioQueue::event(uint8_t e, uint8_t f)
|
|||
case AU_TRIM_MIDDLE:
|
||||
play(f, 10, 2, PLAY_NOW);
|
||||
break;
|
||||
case AU_FRSKY_RING:
|
||||
case AU_SPECIAL_SOUND_RING:
|
||||
play(BEEP_DEFAULT_FREQ+25, 5, 2, PLAY_REPEAT(10));
|
||||
play(BEEP_DEFAULT_FREQ+25, 5, 10, PLAY_REPEAT(1));
|
||||
play(BEEP_DEFAULT_FREQ+25, 5, 2, PLAY_REPEAT(10));
|
||||
break;
|
||||
case AU_FRSKY_SCIFI:
|
||||
case AU_SPECIAL_SOUND_SCIFI:
|
||||
play(80, 10, 3, PLAY_REPEAT(2)|PLAY_INCREMENT(-1));
|
||||
play(60, 10, 3, PLAY_REPEAT(2)|PLAY_INCREMENT(1));
|
||||
play(70, 10, 1);
|
||||
break;
|
||||
case AU_FRSKY_ROBOT:
|
||||
case AU_SPECIAL_SOUND_ROBOT:
|
||||
play(70, 5, 1, PLAY_REPEAT(1));
|
||||
play(50, 15, 2, PLAY_REPEAT(1));
|
||||
play(80, 15, 2, PLAY_REPEAT(1));
|
||||
break;
|
||||
case AU_FRSKY_CHIRP:
|
||||
case AU_SPECIAL_SOUND_CHIRP:
|
||||
play(BEEP_DEFAULT_FREQ+40, 5, 1, PLAY_REPEAT(2));
|
||||
play(BEEP_DEFAULT_FREQ+54, 5, 1, PLAY_REPEAT(3));
|
||||
break;
|
||||
case AU_FRSKY_TADA:
|
||||
case AU_SPECIAL_SOUND_TADA:
|
||||
play(50, 5, 5);
|
||||
play(90, 5, 5);
|
||||
play(110, 3, 4, PLAY_REPEAT(2));
|
||||
break;
|
||||
case AU_FRSKY_CRICKET:
|
||||
case AU_SPECIAL_SOUND_CRICKET:
|
||||
play(80, 5, 10, PLAY_REPEAT(3));
|
||||
play(80, 5, 20, PLAY_REPEAT(1));
|
||||
play(80, 5, 10, PLAY_REPEAT(3));
|
||||
break;
|
||||
case AU_FRSKY_ALARMC:
|
||||
case AU_SPECIAL_SOUND_ALARMC:
|
||||
play(50, 4, 10, PLAY_REPEAT(2));
|
||||
play(70, 8, 20, PLAY_REPEAT(1));
|
||||
play(50, 8, 10, PLAY_REPEAT(2));
|
||||
|
|
|
@ -472,14 +472,16 @@ void evalFunctions()
|
|||
if (isRepeatDelayElapsed(functions, functionsContext, i)) {
|
||||
if (!IS_PLAYING(PLAY_INDEX)) {
|
||||
if (CFN_FUNC(cfn) == FUNC_PLAY_SOUND) {
|
||||
AUDIO_PLAY(AU_FRSKY_FIRST+CFN_PARAM(cfn));
|
||||
if (audioQueue.empty()) {
|
||||
AUDIO_PLAY(AU_SPECIAL_SOUND_FIRST + CFN_PARAM(cfn));
|
||||
}
|
||||
}
|
||||
else if (CFN_FUNC(cfn) == FUNC_PLAY_VALUE) {
|
||||
PLAY_VALUE(CFN_PARAM(cfn), PLAY_INDEX);
|
||||
}
|
||||
#if defined(HAPTIC)
|
||||
else if (CFN_FUNC(cfn) == FUNC_HAPTIC) {
|
||||
haptic.event(AU_FRSKY_LAST+CFN_PARAM(cfn));
|
||||
haptic.event(AU_SPECIAL_SOUND_LAST+CFN_PARAM(cfn));
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
|
@ -515,7 +517,7 @@ void evalFunctions()
|
|||
functionsContext.lastFunctionTime[i] = tmr10ms;
|
||||
uint8_t param = CFN_PARAM(cfn);
|
||||
if (CFN_FUNC(cfn) == FUNC_PLAY_SOUND) {
|
||||
AUDIO_PLAY(AU_FRSKY_FIRST+param);
|
||||
AUDIO_PLAY(AU_SPECIAL_SOUND_FIRST+param);
|
||||
}
|
||||
else if (CFN_FUNC(cfn) == FUNC_PLAY_VALUE) {
|
||||
PLAY_VALUE(param, PLAY_INDEX);
|
||||
|
@ -541,7 +543,7 @@ void evalFunctions()
|
|||
uint8_t repeatParam = CFN_PLAY_REPEAT(cfn);
|
||||
if (!functionsContext.lastFunctionTime[i] || (repeatParam && (signed)(tmr10ms-functionsContext.lastFunctionTime[i])>=1000*repeatParam)) {
|
||||
functionsContext.lastFunctionTime[i] = tmr10ms;
|
||||
AUDIO_PLAY(AU_FRSKY_FIRST+CFN_PARAM(cfn));
|
||||
AUDIO_PLAY(AU_SPECIAL_SOUND_FIRST+CFN_PARAM(cfn));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -560,7 +562,7 @@ void evalFunctions()
|
|||
uint8_t repeatParam = CFN_PLAY_REPEAT(cfn);
|
||||
if (!functionsContext.lastFunctionTime[i] || (repeatParam && (signed)(tmr10ms-functionsContext.lastFunctionTime[i])>=1000*repeatParam)) {
|
||||
functionsContext.lastFunctionTime[i] = tmr10ms;
|
||||
haptic.event(AU_FRSKY_LAST+CFN_PARAM(cfn));
|
||||
haptic.event(AU_SPECIAL_SOUND_LAST+CFN_PARAM(cfn));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -202,7 +202,7 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu
|
|||
#endif
|
||||
#if defined(AUDIO)
|
||||
else if (func == FUNC_PLAY_SOUND) {
|
||||
val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1;
|
||||
val_max = AU_SPECIAL_SOUND_LAST-AU_SPECIAL_SOUND_FIRST-1;
|
||||
lcdDrawTextAtIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr);
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -215,7 +215,7 @@ bool menuCustomFunctions(evt_t event, CustomFunctionData * functions, CustomFunc
|
|||
putsTimer(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT);
|
||||
}
|
||||
else if (func == FUNC_PLAY_SOUND) {
|
||||
val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1;
|
||||
val_max = AU_SPECIAL_SOUND_LAST-AU_SPECIAL_SOUND_FIRST-1;
|
||||
lcdDrawTextAtIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr);
|
||||
}
|
||||
#if defined(HAPTIC)
|
||||
|
|
|
@ -271,7 +271,7 @@ void menuCustomFunctions(uint8_t event, CustomFunctionData * functions, CustomFu
|
|||
putsTimer(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, val_displayed, attr|LEFT, attr);
|
||||
}
|
||||
else if (func == FUNC_PLAY_SOUND) {
|
||||
val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1;
|
||||
val_max = AU_SPECIAL_SOUND_LAST-AU_SPECIAL_SOUND_FIRST-1;
|
||||
lcdDrawTextAtIndex(MODEL_CUSTOM_FUNC_3RD_COLUMN, y, STR_FUNCSOUNDS, val_displayed, attr);
|
||||
}
|
||||
#if defined(HAPTIC)
|
||||
|
|
|
@ -101,11 +101,11 @@ void hapticQueue::event(uint8_t e)
|
|||
play(5, 0, PLAY_NOW);
|
||||
else if (e <= AU_TIMER_LT10)
|
||||
play(15, 3, PLAY_NOW);
|
||||
else if (e < AU_FRSKY_FIRST)
|
||||
else if (e < AU_SPECIAL_SOUND_FIRST)
|
||||
play(15, 3, (e-AU_TIMER_20+1)|PLAY_NOW);
|
||||
else if (e >= AU_FRSKY_LAST && empty()) {
|
||||
else if (e >= AU_SPECIAL_SOUND_LAST && empty()) {
|
||||
play(30, 10, 0);
|
||||
play(10, 50-10*(e-AU_FRSKY_LAST), (e-AU_FRSKY_LAST));
|
||||
play(10, 50-10*(e-AU_SPECIAL_SOUND_LAST), (e-AU_SPECIAL_SOUND_LAST));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -67,7 +67,6 @@ class hapticQueue
|
|||
uint8_t queueHapticRepeat[HAPTIC_QUEUE_LENGTH];
|
||||
};
|
||||
|
||||
//wrapper function - dirty but results in a space saving!!!
|
||||
extern hapticQueue haptic;
|
||||
|
||||
#define IS_HAPTIC_BUSY() haptic.busy()
|
||||
|
|
|
@ -1933,7 +1933,7 @@ void doMixerCalculations()
|
|||
if (moduleFlag[i] != MODULE_NORMAL_MODE) {
|
||||
if (++countRangecheck >= 250) {
|
||||
countRangecheck = 0;
|
||||
AUDIO_PLAY(AU_FRSKY_CHEEP);
|
||||
AUDIO_PLAY(AU_SPECIAL_SOUND_CHEEP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1384,6 +1384,7 @@ enum AUDIO_SOUNDS {
|
|||
AU_TRAINER_LOST,
|
||||
AU_TRAINER_BACK,
|
||||
AU_SENSOR_LOST,
|
||||
AU_SERVO_KO,
|
||||
#endif
|
||||
#if defined(PCBSKY9X)
|
||||
AU_TX_MAH_HIGH,
|
||||
|
@ -1429,24 +1430,24 @@ enum AUDIO_SOUNDS {
|
|||
AU_TIMER_20,
|
||||
AU_TIMER_30,
|
||||
|
||||
AU_FRSKY_FIRST,
|
||||
AU_FRSKY_BEEP1 = AU_FRSKY_FIRST,
|
||||
AU_FRSKY_BEEP2,
|
||||
AU_FRSKY_BEEP3,
|
||||
AU_FRSKY_WARN1,
|
||||
AU_FRSKY_WARN2,
|
||||
AU_FRSKY_CHEEP,
|
||||
AU_FRSKY_RATATA,
|
||||
AU_FRSKY_TICK,
|
||||
AU_FRSKY_SIREN,
|
||||
AU_FRSKY_RING,
|
||||
AU_FRSKY_SCIFI,
|
||||
AU_FRSKY_ROBOT,
|
||||
AU_FRSKY_CHIRP,
|
||||
AU_FRSKY_TADA,
|
||||
AU_FRSKY_CRICKET,
|
||||
AU_FRSKY_ALARMC,
|
||||
AU_FRSKY_LAST,
|
||||
AU_SPECIAL_SOUND_FIRST,
|
||||
AU_SPECIAL_SOUND_BEEP1 = AU_SPECIAL_SOUND_FIRST,
|
||||
AU_SPECIAL_SOUND_BEEP2,
|
||||
AU_SPECIAL_SOUND_BEEP3,
|
||||
AU_SPECIAL_SOUND_WARN1,
|
||||
AU_SPECIAL_SOUND_WARN2,
|
||||
AU_SPECIAL_SOUND_CHEEP,
|
||||
AU_SPECIAL_SOUND_RATATA,
|
||||
AU_SPECIAL_SOUND_TICK,
|
||||
AU_SPECIAL_SOUND_SIREN,
|
||||
AU_SPECIAL_SOUND_RING,
|
||||
AU_SPECIAL_SOUND_SCIFI,
|
||||
AU_SPECIAL_SOUND_ROBOT,
|
||||
AU_SPECIAL_SOUND_CHIRP,
|
||||
AU_SPECIAL_SOUND_TADA,
|
||||
AU_SPECIAL_SOUND_CRICKET,
|
||||
AU_SPECIAL_SOUND_ALARMC,
|
||||
AU_SPECIAL_SOUND_LAST,
|
||||
|
||||
AU_NONE=0xff
|
||||
};
|
||||
|
|
|
@ -316,7 +316,7 @@ void telemetryWakeup()
|
|||
}
|
||||
#endif
|
||||
|
||||
#if !defined(CPUARM) && !defined(PCBFLAMENCO)
|
||||
#if !defined(CPUARM)
|
||||
if (IS_FRSKY_D_PROTOCOL()) {
|
||||
// Attempt to transmit any waiting Fr-Sky alarm set packets every 50ms (subject to packet buffer availability)
|
||||
static uint8_t frskyTxDelay = 5;
|
||||
|
@ -358,10 +358,12 @@ void telemetryWakeup()
|
|||
SCHEDULE_NEXT_ALARMS_CHECK(1/*second*/);
|
||||
|
||||
uint8_t now = TelemetryItem::now();
|
||||
bool sensor_lost = false;
|
||||
for (int i=0; i<MAX_SENSORS; i++) {
|
||||
if (isTelemetryFieldAvailable(i)) {
|
||||
uint8_t lastReceived = telemetryItems[i].lastReceived;
|
||||
if (lastReceived < TELEMETRY_VALUE_TIMER_CYCLE && uint8_t(now - lastReceived) > TELEMETRY_VALUE_OLD_THRESHOLD) {
|
||||
sensor_lost = true;
|
||||
telemetryItems[i].lastReceived = TELEMETRY_VALUE_OLD;
|
||||
TelemetrySensor * sensor = & g_model.telemetrySensors[i];
|
||||
if (sensor->unit == UNIT_DATETIME) {
|
||||
|
@ -371,6 +373,9 @@ void telemetryWakeup()
|
|||
}
|
||||
}
|
||||
}
|
||||
if (sensor_lost && TELEMETRY_STREAMING()) {
|
||||
audioEvent(AU_SENSOR_LOST);
|
||||
}
|
||||
|
||||
#if defined(PCBTARANIS)
|
||||
if ((g_model.moduleData[INTERNAL_MODULE].rfProtocol != RF_PROTO_OFF || g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_XJT) && FRSKY_BAD_ANTENNA()) {
|
||||
|
|
|
@ -131,14 +131,14 @@
|
|||
#define A4_LAST_ID 0x091f
|
||||
#define AIR_SPEED_FIRST_ID 0x0a00
|
||||
#define AIR_SPEED_LAST_ID 0x0a0f
|
||||
#define POWERBOX_BATT1_FIRST_ID 0x0b00
|
||||
#define POWERBOX_BATT1_LAST_ID 0x0b0f
|
||||
#define POWERBOX_BATT2_FIRST_ID 0x0b10
|
||||
#define POWERBOX_BATT2_LAST_ID 0x0b1f
|
||||
#define POWERBOX_STATE_FIRST_ID 0x0b20
|
||||
#define POWERBOX_STATE_LAST_ID 0x0b2f
|
||||
#define POWERBOX_CNSP_FIRST_ID 0x0b30
|
||||
#define POWERBOX_CNSP_LAST_ID 0x0b3f
|
||||
#define RBOX_BATT1_FIRST_ID 0x0b00
|
||||
#define RBOX_BATT1_LAST_ID 0x0b0f
|
||||
#define RBOX_BATT2_FIRST_ID 0x0b10
|
||||
#define RBOX_BATT2_LAST_ID 0x0b1f
|
||||
#define RBOX_STATE_FIRST_ID 0x0b20
|
||||
#define RBOX_STATE_LAST_ID 0x0b2f
|
||||
#define RBOX_CNSP_FIRST_ID 0x0b30
|
||||
#define RBOX_CNSP_LAST_ID 0x0b3f
|
||||
#define DIY_FIRST_ID 0x5000
|
||||
#define DIY_LAST_ID 0x50ff
|
||||
#define RSSI_ID 0xf101
|
||||
|
@ -503,7 +503,7 @@ typedef enum {
|
|||
|
||||
// FrSky D Protocol
|
||||
void processHubPacket(uint8_t id, int16_t value);
|
||||
void frskyDSendNextAlarm(void);
|
||||
void frskyDSendNextAlarm();
|
||||
void frskyDProcessPacket(uint8_t *packet);
|
||||
|
||||
// FrSky S.PORT Protocol
|
||||
|
@ -511,7 +511,7 @@ void processSportPacket(uint8_t *packet);
|
|||
#if defined(PCBTARANIS)
|
||||
void sportFirmwareUpdate(ModuleIndex module, const char *filename);
|
||||
#endif
|
||||
void telemetryWakeup(void);
|
||||
void telemetryWakeup();
|
||||
void telemetryReset();
|
||||
|
||||
#if defined(CPUARM)
|
||||
|
@ -521,7 +521,7 @@ void telemetryInit(uint8_t protocol);
|
|||
void telemetryInit(void);
|
||||
#endif
|
||||
|
||||
void telemetryInterrupt10ms(void);
|
||||
void telemetryInterrupt10ms();
|
||||
|
||||
#if defined(CPUARM)
|
||||
typedef uint16_t frskyCellVoltage_t;
|
||||
|
@ -532,7 +532,7 @@ void telemetryInterrupt10ms(void);
|
|||
#if defined(CPUARM) || defined(FRSKY_HUB)
|
||||
void frskySetCellsCount(uint8_t cellscount);
|
||||
void frskySetCellVoltage(uint8_t battnumber, frskyCellVoltage_t cellVolts);
|
||||
void frskyUpdateCells(void);
|
||||
void frskyUpdateCells();
|
||||
#endif
|
||||
|
||||
void processSerialData(uint8_t data);
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "../opentx.h"
|
||||
#include "opentx.h"
|
||||
|
||||
#define PRIM_REQ_POWERUP (0)
|
||||
#define PRIM_REQ_VERSION (1)
|
||||
|
@ -68,20 +68,14 @@ const FrSkySportSensor sportSensors[] = {
|
|||
{ GPS_LONG_LATI_FIRST_ID, GPS_LONG_LATI_LAST_ID, 0, ZSTR_GPS, UNIT_GPS, 0 },
|
||||
{ FUEL_QTY_FIRST_ID, FUEL_QTY_LAST_ID, 0, ZSTR_FUEL, UNIT_MILLILITERS, 2 },
|
||||
{ GPS_COURS_FIRST_ID, GPS_COURS_LAST_ID, 0, ZSTR_HDG, UNIT_DEGREE, 2 },
|
||||
{ POWERBOX_BATT1_FIRST_ID, POWERBOX_BATT1_LAST_ID, 0, ZSTR_BATT1_VOLTAGE, UNIT_VOLTS, 3 },
|
||||
{ POWERBOX_BATT2_FIRST_ID, POWERBOX_BATT2_LAST_ID, 0, ZSTR_BATT2_VOLTAGE, UNIT_VOLTS, 3 },
|
||||
{ POWERBOX_BATT1_FIRST_ID, POWERBOX_BATT1_LAST_ID, 1, ZSTR_BATT1_CURRENT, UNIT_AMPS, 2 },
|
||||
{ POWERBOX_BATT2_FIRST_ID, POWERBOX_BATT2_LAST_ID, 1, ZSTR_BATT2_CURRENT, UNIT_AMPS, 2 },
|
||||
{ POWERBOX_CNSP_FIRST_ID, POWERBOX_CNSP_LAST_ID, 0, ZSTR_BATT1_CONSUMPTION, UNIT_MAH, 0 },
|
||||
{ POWERBOX_CNSP_FIRST_ID, POWERBOX_CNSP_LAST_ID, 1, ZSTR_BATT2_CONSUMPTION, UNIT_MAH, 0 },
|
||||
{ POWERBOX_STATE_FIRST_ID, POWERBOX_STATE_LAST_ID, 0, ZSTR_RX1_FAILSAFE, UNIT_RAW, 0 },
|
||||
{ POWERBOX_STATE_FIRST_ID, POWERBOX_STATE_LAST_ID, 1, ZSTR_RX1_LOSTFRAME, UNIT_RAW, 0 },
|
||||
{ POWERBOX_STATE_FIRST_ID, POWERBOX_STATE_LAST_ID, 2, ZSTR_RX2_FAILSAFE, UNIT_RAW, 0 },
|
||||
{ POWERBOX_STATE_FIRST_ID, POWERBOX_STATE_LAST_ID, 3, ZSTR_RX2_LOSTFRAME, UNIT_RAW, 0 },
|
||||
{ POWERBOX_STATE_FIRST_ID, POWERBOX_STATE_LAST_ID, 4, ZSTR_RX1_CONN_LOST, UNIT_RAW, 0 },
|
||||
{ POWERBOX_STATE_FIRST_ID, POWERBOX_STATE_LAST_ID, 5, ZSTR_RX2_CONN_LOST, UNIT_RAW, 0 },
|
||||
{ POWERBOX_STATE_FIRST_ID, POWERBOX_STATE_LAST_ID, 6, ZSTR_RX1_NO_SIGNAL, UNIT_RAW, 0 },
|
||||
{ POWERBOX_STATE_FIRST_ID, POWERBOX_STATE_LAST_ID, 7, ZSTR_RX2_NO_SIGNAL, UNIT_RAW, 0 },
|
||||
{ RBOX_BATT1_FIRST_ID, RBOX_BATT1_LAST_ID, 0, ZSTR_BATT1_VOLTAGE, UNIT_VOLTS, 3 },
|
||||
{ RBOX_BATT2_FIRST_ID, RBOX_BATT2_LAST_ID, 0, ZSTR_BATT2_VOLTAGE, UNIT_VOLTS, 3 },
|
||||
{ RBOX_BATT1_FIRST_ID, RBOX_BATT1_LAST_ID, 1, ZSTR_BATT1_CURRENT, UNIT_AMPS, 2 },
|
||||
{ RBOX_BATT2_FIRST_ID, RBOX_BATT2_LAST_ID, 1, ZSTR_BATT2_CURRENT, UNIT_AMPS, 2 },
|
||||
{ RBOX_CNSP_FIRST_ID, RBOX_CNSP_LAST_ID, 0, ZSTR_BATT1_CONSUMPTION, UNIT_MAH, 0 },
|
||||
{ RBOX_CNSP_FIRST_ID, RBOX_CNSP_LAST_ID, 1, ZSTR_BATT2_CONSUMPTION, UNIT_MAH, 0 },
|
||||
{ RBOX_STATE_FIRST_ID, RBOX_STATE_LAST_ID, 0, ZSTR_CHANS_STATE, UNIT_RAW, 0 },
|
||||
{ RBOX_STATE_FIRST_ID, RBOX_STATE_LAST_ID, 1, ZSTR_RB_STATE, UNIT_RAW, 0 },
|
||||
{ 0, 0, 0, NULL, UNIT_RAW, 0 } // sentinel
|
||||
};
|
||||
|
||||
|
@ -129,6 +123,8 @@ enum SportUpdateState {
|
|||
uint8_t sportUpdateState = SPORT_IDLE;
|
||||
uint32_t sportUpdateAddr = 0;
|
||||
bool intPwr, extPwr;
|
||||
uint16_t servosState;
|
||||
uint16_t rboxState;
|
||||
|
||||
void processSportUpdatePacket(uint8_t *packet)
|
||||
{
|
||||
|
@ -218,6 +214,9 @@ void processSportPacket(uint8_t * packet)
|
|||
if (id == RSSI_ID) {
|
||||
frskyStreaming = FRSKY_TIMEOUT10ms; // reset counter only if valid frsky packets are being detected
|
||||
data = SPORT_DATA_U8(packet);
|
||||
if (data == 0)
|
||||
frskyData.rssi.reset();
|
||||
else
|
||||
frskyData.rssi.set(data);
|
||||
}
|
||||
#if defined(PCBTARANIS) && defined(REVPLUS)
|
||||
|
@ -251,23 +250,23 @@ void processSportPacket(uint8_t * packet)
|
|||
if (id == ADC1_ID || id == ADC2_ID || id == BATT_ID || id == SWR_ID) {
|
||||
data = SPORT_DATA_U8(packet);
|
||||
}
|
||||
if (id >= POWERBOX_BATT1_FIRST_ID && id <= POWERBOX_BATT2_LAST_ID) {
|
||||
if (id >= RBOX_BATT1_FIRST_ID && id <= RBOX_BATT2_LAST_ID) {
|
||||
processSportPacket(id, 0, instance, data & 0xffff);
|
||||
processSportPacket(id, 1, instance, data >> 16);
|
||||
}
|
||||
else if (id >= POWERBOX_CNSP_FIRST_ID && id <= POWERBOX_CNSP_LAST_ID) {
|
||||
else if (id >= RBOX_CNSP_FIRST_ID && id <= RBOX_CNSP_LAST_ID) {
|
||||
processSportPacket(id, 0, instance, data & 0xffff);
|
||||
processSportPacket(id, 1, instance, data >> 16);
|
||||
}
|
||||
else if (id >= POWERBOX_STATE_FIRST_ID && id <= POWERBOX_STATE_LAST_ID) {
|
||||
processSportPacket(id, 0, instance, bool(data & 0x0080000));
|
||||
processSportPacket(id, 1, instance, bool(data & 0x0100000));
|
||||
processSportPacket(id, 2, instance, bool(data & 0x0200000));
|
||||
processSportPacket(id, 3, instance, bool(data & 0x0400000));
|
||||
processSportPacket(id, 4, instance, bool(data & 0x0800000));
|
||||
processSportPacket(id, 5, instance, bool(data & 0x1000000));
|
||||
processSportPacket(id, 6, instance, bool(data & 0x2000000));
|
||||
processSportPacket(id, 7, instance, bool(data & 0x4000000));
|
||||
else if (id >= RBOX_STATE_FIRST_ID && id <= RBOX_STATE_LAST_ID) {
|
||||
uint16_t newServosState = data & 0xffff;
|
||||
if (servosState == 0 && newServosState != 0) {
|
||||
audioEvent(AU_SERVO_KO);
|
||||
}
|
||||
servosState = newServosState;
|
||||
rboxState = data >> 16;
|
||||
processSportPacket(id, 0, instance, servosState);
|
||||
processSportPacket(id, 1, instance, rboxState);
|
||||
}
|
||||
else if (id >= DIY_FIRST_ID && id <= DIY_LAST_ID) {
|
||||
#if defined(LUA)
|
||||
|
|
|
@ -1152,11 +1152,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1155,11 +1155,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1181,11 +1181,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1107,11 +1107,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1107,11 +1107,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1142,11 +1142,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1154,11 +1154,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1174,11 +1174,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1155,11 +1155,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1101,11 +1101,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
|
@ -1178,11 +1178,5 @@
|
|||
#define ZSTR_BATT2_CURRENT "RB2A"
|
||||
#define ZSTR_BATT1_CONSUMPTION "RB1C"
|
||||
#define ZSTR_BATT2_CONSUMPTION "RB2C"
|
||||
#define ZSTR_RX1_FAILSAFE "Rx1F"
|
||||
#define ZSTR_RX1_LOSTFRAME "Rx1L"
|
||||
#define ZSTR_RX1_CONN_LOST "Rx1C"
|
||||
#define ZSTR_RX1_NO_SIGNAL "Rx1S"
|
||||
#define ZSTR_RX2_FAILSAFE "Rx2F"
|
||||
#define ZSTR_RX2_LOSTFRAME "Rx2L"
|
||||
#define ZSTR_RX2_CONN_LOST "Rx2C"
|
||||
#define ZSTR_RX2_NO_SIGNAL "Rx2S"
|
||||
#define ZSTR_RB_STATE "RBS"
|
||||
#define ZSTR_CHANS_STATE "RBCS"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue