[all] Issue 4 fixed (Mixer menu)
[sky9x / Taranis] Issue 1 fixed (PlayFile/Play were called from an interrupt). To be tested and re-tested [all] FrSky alarms are not any more sent from the 10ms interrupt, but from the main loop. To be tested as well
This commit is contained in:
+8
-8
@@ -794,23 +794,23 @@ void audioEvent(uint8_t e, uint8_t f)
|
|||||||
break;
|
break;
|
||||||
// mix warning 1
|
// mix warning 1
|
||||||
case AU_MIX_WARNING_1:
|
case AU_MIX_WARNING_1:
|
||||||
audioQueue.play(BEEP_DEFAULT_FREQ+100, 12, 0, PLAY_NOW);
|
audioQueue.play(BEEP_DEFAULT_FREQ+96, 12, 0);
|
||||||
break;
|
break;
|
||||||
// mix warning 2
|
// mix warning 2
|
||||||
case AU_MIX_WARNING_2:
|
case AU_MIX_WARNING_2:
|
||||||
audioQueue.play(BEEP_DEFAULT_FREQ+104, 12, 0, PLAY_NOW);
|
audioQueue.play(BEEP_DEFAULT_FREQ+104, 12, 8, PLAY_REPEAT(1));
|
||||||
break;
|
break;
|
||||||
// mix warning 3
|
// mix warning 3
|
||||||
case AU_MIX_WARNING_3:
|
case AU_MIX_WARNING_3:
|
||||||
audioQueue.play(BEEP_DEFAULT_FREQ+108, 12, 0, PLAY_NOW);
|
audioQueue.play(BEEP_DEFAULT_FREQ+112, 12, 8, PLAY_REPEAT(2));
|
||||||
break;
|
break;
|
||||||
// time 30 seconds left
|
// time 30 seconds left
|
||||||
case AU_TIMER_30:
|
case AU_TIMER_30:
|
||||||
audioQueue.play(BEEP_DEFAULT_FREQ, 30, 6, 2|PLAY_NOW);
|
audioQueue.play(BEEP_DEFAULT_FREQ, 30, 6, PLAY_REPEAT(2)|PLAY_NOW);
|
||||||
break;
|
break;
|
||||||
// time 20 seconds left
|
// time 20 seconds left
|
||||||
case AU_TIMER_20:
|
case AU_TIMER_20:
|
||||||
audioQueue.play(BEEP_DEFAULT_FREQ, 30, 6, 1|PLAY_NOW);
|
audioQueue.play(BEEP_DEFAULT_FREQ, 30, 6, PLAY_REPEAT(1)|PLAY_NOW);
|
||||||
break;
|
break;
|
||||||
// time 10 seconds left
|
// time 10 seconds left
|
||||||
case AU_TIMER_10:
|
case AU_TIMER_10:
|
||||||
@@ -821,15 +821,15 @@ void audioEvent(uint8_t e, uint8_t f)
|
|||||||
audioQueue.play(BEEP_DEFAULT_FREQ+10, 30, 6, PLAY_NOW);
|
audioQueue.play(BEEP_DEFAULT_FREQ+10, 30, 6, PLAY_NOW);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_BEEP1:
|
case AU_FRSKY_BEEP1:
|
||||||
audioQueue.play(BEEP_DEFAULT_FREQ, 15, 2, 0);
|
audioQueue.play(BEEP_DEFAULT_FREQ, 15, 2);
|
||||||
audioQueue.pause(200);
|
audioQueue.pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_BEEP2:
|
case AU_FRSKY_BEEP2:
|
||||||
audioQueue.play(BEEP_DEFAULT_FREQ, 30, 2, 0);
|
audioQueue.play(BEEP_DEFAULT_FREQ, 30, 2);
|
||||||
audioQueue.pause(200);
|
audioQueue.pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_BEEP3:
|
case AU_FRSKY_BEEP3:
|
||||||
audioQueue.play(BEEP_DEFAULT_FREQ, 50, 2, 0);
|
audioQueue.play(BEEP_DEFAULT_FREQ, 50, 2);
|
||||||
audioQueue.pause(200);
|
audioQueue.pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_WARN1:
|
case AU_FRSKY_WARN1:
|
||||||
|
|||||||
+1
-3
@@ -175,9 +175,7 @@ void audioStart();
|
|||||||
#define AUDIO_TIMER_10() audioEvent(AU_TIMER_10)
|
#define AUDIO_TIMER_10() audioEvent(AU_TIMER_10)
|
||||||
#define AUDIO_TIMER_LT3(x) audioEvent(AU_TIMER_LT3)
|
#define AUDIO_TIMER_LT3(x) audioEvent(AU_TIMER_LT3)
|
||||||
#define AUDIO_INACTIVITY() audioEvent(AU_INACTIVITY)
|
#define AUDIO_INACTIVITY() audioEvent(AU_INACTIVITY)
|
||||||
#define AUDIO_MIX_WARNING_1() audioEvent(AU_MIX_WARNING_1)
|
#define AUDIO_MIX_WARNING(x) audioEvent(AU_MIX_WARNING_1+x-1)
|
||||||
#define AUDIO_MIX_WARNING_2() audioEvent(AU_MIX_WARNING_2)
|
|
||||||
#define AUDIO_MIX_WARNING_3() audioEvent(AU_MIX_WARNING_3)
|
|
||||||
#define AUDIO_POT_STICK_MIDDLE() audioEvent(AU_POT_STICK_MIDDLE)
|
#define AUDIO_POT_STICK_MIDDLE() audioEvent(AU_POT_STICK_MIDDLE)
|
||||||
#define AUDIO_VARIO_UP() audioEvent(AU_KEYPAD_UP)
|
#define AUDIO_VARIO_UP() audioEvent(AU_KEYPAD_UP)
|
||||||
#define AUDIO_VARIO_DOWN() audioEvent(AU_KEYPAD_DOWN)
|
#define AUDIO_VARIO_DOWN() audioEvent(AU_KEYPAD_DOWN)
|
||||||
|
|||||||
+43
-41
@@ -124,8 +124,7 @@ void audioQueue::pause(uint8_t tLen)
|
|||||||
play(0, tLen, 5); // a pause
|
play(0, tLen, 5); // a pause
|
||||||
}
|
}
|
||||||
|
|
||||||
void audioQueue::play(uint8_t tFreq, uint8_t tLen, uint8_t tPause,
|
void audioQueue::play(uint8_t tFreq, uint8_t tLen, uint8_t tPause, uint8_t tFlags)
|
||||||
uint8_t tFlags, int8_t tFreqIncr)
|
|
||||||
{
|
{
|
||||||
if (tFlags & PLAY_BACKGROUND) {
|
if (tFlags & PLAY_BACKGROUND) {
|
||||||
tone2Freq = tFreq;
|
tone2Freq = tFreq;
|
||||||
@@ -133,6 +132,9 @@ void audioQueue::play(uint8_t tFreq, uint8_t tLen, uint8_t tPause,
|
|||||||
tone2Pause = tPause;
|
tone2Pause = tPause;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
int8_t tFreqIncr = (tFlags >> 6);
|
||||||
|
if (tFreqIncr == 3) tFreqIncr = -1;
|
||||||
|
|
||||||
if (tFreq > 0) { //we dont add pitch if zero as this is a pause only event
|
if (tFreq > 0) { //we dont add pitch if zero as this is a pause only event
|
||||||
tFreq += g_eeGeneral.speakerPitch + BEEP_OFFSET; // add pitch compensator
|
tFreq += g_eeGeneral.speakerPitch + BEEP_OFFSET; // add pitch compensator
|
||||||
}
|
}
|
||||||
@@ -165,7 +167,7 @@ void audioQueue::play(uint8_t tFreq, uint8_t tLen, uint8_t tPause,
|
|||||||
|
|
||||||
void audioQueue::event(uint8_t e, uint8_t f)
|
void audioQueue::event(uint8_t e, uint8_t f)
|
||||||
{
|
{
|
||||||
#ifdef HAPTIC
|
#if defined(HAPTIC)
|
||||||
haptic.event(e); //do this before audio to help sync timings
|
haptic.event(e); //do this before audio to help sync timings
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -179,13 +181,13 @@ void audioQueue::event(uint8_t e, uint8_t f)
|
|||||||
switch (e) {
|
switch (e) {
|
||||||
// inactivity timer alert
|
// inactivity timer alert
|
||||||
case AU_INACTIVITY:
|
case AU_INACTIVITY:
|
||||||
play(70, 10, 2, 2|PLAY_NOW);
|
play(70, 10, 2, PLAY_REPEAT(2)|PLAY_NOW);
|
||||||
break;
|
break;
|
||||||
// low battery in tx
|
// low battery in tx
|
||||||
case AU_TX_BATTERY_LOW:
|
case AU_TX_BATTERY_LOW:
|
||||||
if (empty()) {
|
if (empty()) {
|
||||||
play(60, 20, 3, 2, 1);
|
play(60, 20, 3, PLAY_REPEAT(2)|PLAY_INCREMENT(1));
|
||||||
play(80, 20, 3, 2, -1);
|
play(80, 20, 3, PLAY_REPEAT(2)|PLAY_INCREMENT(-1));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
// error
|
// error
|
||||||
@@ -230,23 +232,23 @@ void audioQueue::event(uint8_t e, uint8_t f)
|
|||||||
break;
|
break;
|
||||||
// mix warning 1
|
// mix warning 1
|
||||||
case AU_MIX_WARNING_1:
|
case AU_MIX_WARNING_1:
|
||||||
play(BEEP_DEFAULT_FREQ + 50, 6, 0, PLAY_NOW);
|
play(BEEP_DEFAULT_FREQ + 50, 6, 0);
|
||||||
break;
|
break;
|
||||||
// mix warning 2
|
// mix warning 2
|
||||||
case AU_MIX_WARNING_2:
|
case AU_MIX_WARNING_2:
|
||||||
play(BEEP_DEFAULT_FREQ + 52, 6, 0, PLAY_NOW);
|
play(BEEP_DEFAULT_FREQ + 52, 6, 3, PLAY_REPEAT(1));
|
||||||
break;
|
break;
|
||||||
// mix warning 3
|
// mix warning 3
|
||||||
case AU_MIX_WARNING_3:
|
case AU_MIX_WARNING_3:
|
||||||
play(BEEP_DEFAULT_FREQ + 54, 6, 0, PLAY_NOW);
|
play(BEEP_DEFAULT_FREQ + 54, 6, 3, PLAY_REPEAT(2));
|
||||||
break;
|
break;
|
||||||
// time 30 seconds left
|
// time 30 seconds left
|
||||||
case AU_TIMER_30:
|
case AU_TIMER_30:
|
||||||
play(BEEP_DEFAULT_FREQ + 50, 15, 3, 2|PLAY_NOW);
|
play(BEEP_DEFAULT_FREQ + 50, 15, 3, PLAY_REPEAT(2)|PLAY_NOW);
|
||||||
break;
|
break;
|
||||||
// time 20 seconds left
|
// time 20 seconds left
|
||||||
case AU_TIMER_20:
|
case AU_TIMER_20:
|
||||||
play(BEEP_DEFAULT_FREQ + 50, 15, 3, 1|PLAY_NOW);
|
play(BEEP_DEFAULT_FREQ + 50, 15, 3, PLAY_REPEAT(1)|PLAY_NOW);
|
||||||
break;
|
break;
|
||||||
// time 10 seconds left
|
// time 10 seconds left
|
||||||
case AU_TIMER_10:
|
case AU_TIMER_10:
|
||||||
@@ -255,81 +257,81 @@ void audioQueue::event(uint8_t e, uint8_t f)
|
|||||||
play(BEEP_DEFAULT_FREQ + 50, 15, 3, PLAY_NOW);
|
play(BEEP_DEFAULT_FREQ + 50, 15, 3, PLAY_NOW);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_BEEP1:
|
case AU_FRSKY_BEEP1:
|
||||||
play(BEEP_DEFAULT_FREQ,10,1,0);
|
play(BEEP_DEFAULT_FREQ, 10, 1);
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_BEEP2:
|
case AU_FRSKY_BEEP2:
|
||||||
play(BEEP_DEFAULT_FREQ,20,1,0);
|
play(BEEP_DEFAULT_FREQ, 20, 1);
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_BEEP3:
|
case AU_FRSKY_BEEP3:
|
||||||
play(BEEP_DEFAULT_FREQ,30,1,0);
|
play(BEEP_DEFAULT_FREQ, 30, 1);
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_WARN1:
|
case AU_FRSKY_WARN1:
|
||||||
play(BEEP_DEFAULT_FREQ+20,15,5,2);
|
play(BEEP_DEFAULT_FREQ+20, 15, 5, PLAY_REPEAT(2));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_WARN2:
|
case AU_FRSKY_WARN2:
|
||||||
play(BEEP_DEFAULT_FREQ+30,15,5,2);
|
play(BEEP_DEFAULT_FREQ+30, 15, 5, PLAY_REPEAT(2));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_CHEEP:
|
case AU_FRSKY_CHEEP:
|
||||||
play(BEEP_DEFAULT_FREQ+30,10,2,2,2);
|
play(BEEP_DEFAULT_FREQ+30, 10, 2, PLAY_REPEAT(2)|PLAY_INCREMENT(2));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_RING:
|
case AU_FRSKY_RING:
|
||||||
play(BEEP_DEFAULT_FREQ+25,5,2,10);
|
play(BEEP_DEFAULT_FREQ+25, 5, 2, PLAY_REPEAT(10));
|
||||||
play(BEEP_DEFAULT_FREQ+25,5,10,1);
|
play(BEEP_DEFAULT_FREQ+25, 5, 10, PLAY_REPEAT(1));
|
||||||
play(BEEP_DEFAULT_FREQ+25,5,2,10);
|
play(BEEP_DEFAULT_FREQ+25, 5, 2, PLAY_REPEAT(10));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_SCIFI:
|
case AU_FRSKY_SCIFI:
|
||||||
play(80,10,3,2,-1);
|
play(80, 10, 3, PLAY_REPEAT(2)|PLAY_INCREMENT(-1));
|
||||||
play(60,10,3,2,1);
|
play(60, 10, 3, PLAY_REPEAT(2)|PLAY_INCREMENT(1));
|
||||||
play(70,10,1,0);
|
play(70, 10, 1);
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_ROBOT:
|
case AU_FRSKY_ROBOT:
|
||||||
play(70,5,1,1);
|
play(70, 5, 1, PLAY_REPEAT(1));
|
||||||
play(50,15,2,1);
|
play(50, 15, 2, PLAY_REPEAT(1));
|
||||||
play(80,15,2,1);
|
play(80, 15, 2, PLAY_REPEAT(1));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_CHIRP:
|
case AU_FRSKY_CHIRP:
|
||||||
play(BEEP_DEFAULT_FREQ+40,5,1,2);
|
play(BEEP_DEFAULT_FREQ+40, 5, 1, PLAY_REPEAT(2));
|
||||||
play(BEEP_DEFAULT_FREQ+54,5,1,3);
|
play(BEEP_DEFAULT_FREQ+54, 5, 1, PLAY_REPEAT(3));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_TADA:
|
case AU_FRSKY_TADA:
|
||||||
play(50,5,5);
|
play(50, 5, 5);
|
||||||
play(90,5,5);
|
play(90, 5, 5);
|
||||||
play(110,3,4,2);
|
play(110, 3, 4, PLAY_REPEAT(2));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_CRICKET:
|
case AU_FRSKY_CRICKET:
|
||||||
play(80,5,10,3);
|
play(80, 5, 10, PLAY_REPEAT(3));
|
||||||
play(80,5,20,1);
|
play(80, 5, 20, PLAY_REPEAT(1));
|
||||||
play(80,5,10,3);
|
play(80, 5, 10, PLAY_REPEAT(3));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_SIREN:
|
case AU_FRSKY_SIREN:
|
||||||
play(10,20,5,2,1);
|
play(10, 20, 5, PLAY_REPEAT(2)|PLAY_INCREMENT(1));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_ALARMC:
|
case AU_FRSKY_ALARMC:
|
||||||
play(50,4,10,2);
|
play(50, 4, 10, PLAY_REPEAT(2));
|
||||||
play(70,8,20,1);
|
play(70, 8, 20, PLAY_REPEAT(1));
|
||||||
play(50,8,10,2);
|
play(50, 8, 10, PLAY_REPEAT(2));
|
||||||
play(70,4,20,1);
|
play(70, 4, 20, PLAY_REPEAT(1));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_RATATA:
|
case AU_FRSKY_RATATA:
|
||||||
play(BEEP_DEFAULT_FREQ+50,5,10,10);
|
play(BEEP_DEFAULT_FREQ+50, 5, 10, PLAY_REPEAT(10));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
case AU_FRSKY_TICK:
|
case AU_FRSKY_TICK:
|
||||||
play(BEEP_DEFAULT_FREQ+50,5,50,2);
|
play(BEEP_DEFAULT_FREQ+50, 5, 50, PLAY_REPEAT(2));
|
||||||
pause(200);
|
pause(200);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
+12
-14
@@ -55,7 +55,7 @@ class audioQueue
|
|||||||
|
|
||||||
audioQueue();
|
audioQueue();
|
||||||
|
|
||||||
void play(uint8_t tFreq, uint8_t tLen, uint8_t tPause, uint8_t tFlags=0, int8_t tFreqIncr=0);
|
void play(uint8_t tFreq, uint8_t tLen, uint8_t tPause, uint8_t tFlags=0);
|
||||||
void pause(uint8_t tLen);
|
void pause(uint8_t tLen);
|
||||||
|
|
||||||
inline bool busy() { return (toneTimeLeft > 0); }
|
inline bool busy() { return (toneTimeLeft > 0); }
|
||||||
@@ -142,21 +142,19 @@ void audioDefevent(uint8_t e);
|
|||||||
#define AUDIO_TIMER_LT3(x) audioDefevent(AU_TIMER_LT3)
|
#define AUDIO_TIMER_LT3(x) audioDefevent(AU_TIMER_LT3)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define AUDIO_MIX_WARNING_1() audioDefevent(AU_MIX_WARNING_1)
|
#define AUDIO_MIX_WARNING(x) audioDefevent(AU_MIX_WARNING_1+x-1)
|
||||||
#define AUDIO_MIX_WARNING_2() audioDefevent(AU_MIX_WARNING_2)
|
|
||||||
#define AUDIO_MIX_WARNING_3() audioDefevent(AU_MIX_WARNING_3)
|
|
||||||
#define AUDIO_POT_STICK_MIDDLE() audioDefevent(AU_POT_STICK_MIDDLE)
|
#define AUDIO_POT_STICK_MIDDLE() audioDefevent(AU_POT_STICK_MIDDLE)
|
||||||
#define AUDIO_VARIO_UP() audioDefevent(AU_KEYPAD_UP)
|
#define AUDIO_VARIO_UP() audioDefevent(AU_KEYPAD_UP)
|
||||||
#define AUDIO_VARIO_DOWN() audioDefevent(AU_KEYPAD_DOWN)
|
#define AUDIO_VARIO_DOWN() audioDefevent(AU_KEYPAD_DOWN)
|
||||||
#define AUDIO_TRIM_MIDDLE(f) audio.event(AU_TRIM_MIDDLE, f)
|
#define AUDIO_TRIM_MIDDLE(f) audio.event(AU_TRIM_MIDDLE, f)
|
||||||
#define AUDIO_TRIM_END(f) AUDIO_TRIM_MIDDLE(f)
|
#define AUDIO_TRIM_END(f) AUDIO_TRIM_MIDDLE(f)
|
||||||
#define AUDIO_TRIM(event, f) audio.event(AU_TRIM_MOVE, f)
|
#define AUDIO_TRIM(event, f) audio.event(AU_TRIM_MOVE, f)
|
||||||
#define AUDIO_PLAY(p) audio.event(p)
|
#define AUDIO_PLAY(p) audio.event(p)
|
||||||
#define AUDIO_VARIO(f, t) audio.play(f, t, 0, PLAY_BACKGROUND)
|
#define AUDIO_VARIO(f, t) audio.play(f, t, 0, PLAY_BACKGROUND)
|
||||||
|
|
||||||
#define AUDIO_DRIVER() audio.driver()
|
#define AUDIO_DRIVER() audio.driver()
|
||||||
#define AUDIO_HEARTBEAT() audio.heartbeat()
|
#define AUDIO_HEARTBEAT() audio.heartbeat()
|
||||||
#define IS_AUDIO_BUSY() audio.busy()
|
#define IS_AUDIO_BUSY() audio.busy()
|
||||||
#define AUDIO_RESET()
|
#define AUDIO_RESET()
|
||||||
|
|
||||||
#define PLAY_PHASE_OFF(phase)
|
#define PLAY_PHASE_OFF(phase)
|
||||||
|
|||||||
+1
-3
@@ -76,9 +76,7 @@ extern void beep(uint8_t val);
|
|||||||
#define AUDIO_TIMER_10() beep(2)
|
#define AUDIO_TIMER_10() beep(2)
|
||||||
#define AUDIO_TIMER_LT3(x) beep(2)
|
#define AUDIO_TIMER_LT3(x) beep(2)
|
||||||
#define AUDIO_INACTIVITY() beep(3)
|
#define AUDIO_INACTIVITY() beep(3)
|
||||||
#define AUDIO_MIX_WARNING_1() beep(1)
|
#define AUDIO_MIX_WARNING(x) beep(1)
|
||||||
#define AUDIO_MIX_WARNING_2() beep(1)
|
|
||||||
#define AUDIO_MIX_WARNING_3() beep(1)
|
|
||||||
#define AUDIO_POT_STICK_MIDDLE() beep(2)
|
#define AUDIO_POT_STICK_MIDDLE() beep(2)
|
||||||
#define AUDIO_VARIO_UP() _beep(1)
|
#define AUDIO_VARIO_UP() _beep(1)
|
||||||
#define AUDIO_VARIO_DOWN() _beep(1)
|
#define AUDIO_VARIO_DOWN() _beep(1)
|
||||||
|
|||||||
+1
-1
@@ -121,7 +121,7 @@ void getGpsDistance()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(FRSKY) && defined(VARIO)
|
#if defined(FRSKY) && defined(VARIO)
|
||||||
void varioPoll10ms()
|
void varioWakeup()
|
||||||
{
|
{
|
||||||
static uint16_t s_varioTmr = 0;
|
static uint16_t s_varioTmr = 0;
|
||||||
if (isFunctionActive(FUNC_VARIO)) {
|
if (isFunctionActive(FUNC_VARIO)) {
|
||||||
|
|||||||
+63
-8
@@ -89,7 +89,7 @@ const MenuFuncP_PROGMEM menuTabModel[] PROGMEM = {
|
|||||||
menuModelMixAll,
|
menuModelMixAll,
|
||||||
menuModelLimits,
|
menuModelLimits,
|
||||||
IF_CURVES(menuModelCurvesAll)
|
IF_CURVES(menuModelCurvesAll)
|
||||||
#if LCD_W >= 212
|
#if LCD_W >= 212 && defined(GVARS) && defined(FLIGHT_PHASES)
|
||||||
IF_GVARS(menuModelGVars)
|
IF_GVARS(menuModelGVars)
|
||||||
#endif
|
#endif
|
||||||
menuModelCustomSwitches,
|
menuModelCustomSwitches,
|
||||||
@@ -402,16 +402,16 @@ void menuModelSelect(uint8_t event)
|
|||||||
_event = 0;
|
_event = 0;
|
||||||
if (g_eeGeneral.currModel != sub) {
|
if (g_eeGeneral.currModel != sub) {
|
||||||
if (eeModelExists(sub)) {
|
if (eeModelExists(sub)) {
|
||||||
s_menu[s_menu_count++] = STR_SELECT_MODEL;
|
MENU_ADD_ITEM(STR_SELECT_MODEL);
|
||||||
MENU_ADD_SD_ITEM(STR_BACKUP_MODEL);
|
MENU_ADD_SD_ITEM(STR_BACKUP_MODEL);
|
||||||
MENU_ADD_NAVIGATION_ITEM(STR_COPY_MODEL);
|
MENU_ADD_NAVIGATION_ITEM(STR_COPY_MODEL);
|
||||||
MENU_ADD_NAVIGATION_ITEM(STR_MOVE_MODEL);
|
MENU_ADD_NAVIGATION_ITEM(STR_MOVE_MODEL);
|
||||||
s_menu[s_menu_count++] = STR_DELETE_MODEL;
|
MENU_ADD_ITEM(STR_DELETE_MODEL);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if defined(SDCARD)
|
#if defined(SDCARD)
|
||||||
s_menu[s_menu_count++] = STR_CREATE_MODEL;
|
MENU_ADD_ITEM(STR_CREATE_MODEL);
|
||||||
MENU_ADD_SD_ITEM(STR_RESTORE_MODEL);
|
MENU_ADD_ITEM(STR_RESTORE_MODEL);
|
||||||
#else
|
#else
|
||||||
// TODO duplicated *3 code
|
// TODO duplicated *3 code
|
||||||
displayPopup(STR_LOADINGMODEL);
|
displayPopup(STR_LOADINGMODEL);
|
||||||
@@ -2505,7 +2505,14 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
|||||||
|
|
||||||
uint8_t chn = (expo ? expoaddress(s_currIdx)->chn+1 : mixaddress(s_currIdx)->destCh+1);
|
uint8_t chn = (expo ? expoaddress(s_currIdx)->chn+1 : mixaddress(s_currIdx)->destCh+1);
|
||||||
|
|
||||||
switch(event)
|
#if defined(NAVIGATION_MENUS)
|
||||||
|
uint8_t _event = event;
|
||||||
|
if (s_menu_count) {
|
||||||
|
event = 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
switch (event)
|
||||||
{
|
{
|
||||||
case EVT_ENTRY:
|
case EVT_ENTRY:
|
||||||
case EVT_ENTRY_UP:
|
case EVT_ENTRY_UP:
|
||||||
@@ -2559,6 +2566,25 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
|||||||
}
|
}
|
||||||
else if (sub != 0) {
|
else if (sub != 0) {
|
||||||
if (s_copyMode) s_currCh = 0;
|
if (s_copyMode) s_currCh = 0;
|
||||||
|
#if defined(NAVIGATION_MENUS)
|
||||||
|
if (s_currCh) {
|
||||||
|
if (reachExpoMixCountLimit(expo)) break;
|
||||||
|
insertExpoMix(expo, s_currIdx);
|
||||||
|
pushMenu(expo ? menuModelExpoOne : menuModelMixOne);
|
||||||
|
s_copyMode = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_event = event = 0;
|
||||||
|
s_copyMode = 0;
|
||||||
|
MENU_ADD_ITEM(STR_EDIT);
|
||||||
|
MENU_ADD_ITEM(STR_INSERT_BEFORE);
|
||||||
|
MENU_ADD_ITEM(STR_INSERT_AFTER);
|
||||||
|
MENU_ADD_ITEM(STR_COPY);
|
||||||
|
MENU_ADD_ITEM(STR_MOVE);
|
||||||
|
MENU_ADD_ITEM(STR_DELETE);
|
||||||
|
}
|
||||||
|
#else
|
||||||
if (s_currCh) {
|
if (s_currCh) {
|
||||||
if (reachExpoMixCountLimit(expo)) break;
|
if (reachExpoMixCountLimit(expo)) break;
|
||||||
insertExpoMix(expo, s_currIdx);
|
insertExpoMix(expo, s_currIdx);
|
||||||
@@ -2566,6 +2592,7 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
|||||||
pushMenu(expo ? menuModelExpoOne : menuModelMixOne);
|
pushMenu(expo ? menuModelExpoOne : menuModelMixOne);
|
||||||
s_copyMode = 0;
|
s_copyMode = 0;
|
||||||
return;
|
return;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case EVT_KEY_LONG(KEY_LEFT):
|
case EVT_KEY_LONG(KEY_LEFT):
|
||||||
@@ -2573,7 +2600,7 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
|||||||
if (s_copyMode && !s_copyTgtOfs) {
|
if (s_copyMode && !s_copyTgtOfs) {
|
||||||
if (reachExpoMixCountLimit(expo)) break;
|
if (reachExpoMixCountLimit(expo)) break;
|
||||||
s_currCh = chn;
|
s_currCh = chn;
|
||||||
if (event == EVT_KEY_LONG(KEY_RIGHT)) s_currIdx++;
|
if (event == EVT_KEY_LONG(KEY_RIGHT)) { s_currIdx++; m_posVert++; }
|
||||||
insertExpoMix(expo, s_currIdx);
|
insertExpoMix(expo, s_currIdx);
|
||||||
pushMenu(expo ? menuModelExpoOne : menuModelMixOne);
|
pushMenu(expo ? menuModelExpoOne : menuModelMixOne);
|
||||||
s_copyMode = 0;
|
s_copyMode = 0;
|
||||||
@@ -2757,6 +2784,34 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
|||||||
}
|
}
|
||||||
s_maxLines = cur;
|
s_maxLines = cur;
|
||||||
if (sub >= s_maxLines-1) m_posVert = s_maxLines-1;
|
if (sub >= s_maxLines-1) m_posVert = s_maxLines-1;
|
||||||
|
|
||||||
|
#if defined(NAVIGATION_MENUS)
|
||||||
|
if (s_menu_count) {
|
||||||
|
const char * result = displayMenu(_event);
|
||||||
|
if (result) {
|
||||||
|
if (result == STR_EDIT) {
|
||||||
|
pushMenu(expo ? menuModelExpoOne : menuModelMixOne);
|
||||||
|
}
|
||||||
|
else if (result == STR_INSERT_BEFORE || result == STR_INSERT_AFTER) {
|
||||||
|
if (!reachExpoMixCountLimit(expo)) {
|
||||||
|
s_currCh = chn;
|
||||||
|
if (result == STR_INSERT_AFTER) { s_currIdx++; m_posVert++; }
|
||||||
|
insertExpoMix(expo, s_currIdx);
|
||||||
|
pushMenu(expo ? menuModelExpoOne : menuModelMixOne);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (result == STR_COPY || result == STR_MOVE) {
|
||||||
|
s_copyMode = (result == STR_COPY ? COPY_MODE : MOVE_MODE);
|
||||||
|
s_copySrcIdx = s_currIdx;
|
||||||
|
s_copySrcCh = chn;
|
||||||
|
s_copySrcRow = sub;
|
||||||
|
}
|
||||||
|
else if (result == STR_DELETE) {
|
||||||
|
deleteExpoMix(expo, s_currIdx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void menuModelExposAll(uint8_t event)
|
void menuModelExposAll(uint8_t event)
|
||||||
@@ -3077,7 +3132,7 @@ void menuModelCurvesAll(uint8_t event)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if LCD_W >= 212 && defined(GVARS)
|
#if LCD_W >= 212 && defined(GVARS) && defined(FLIGHT_PHASES)
|
||||||
void menuModelGVars(uint8_t event)
|
void menuModelGVars(uint8_t event)
|
||||||
{
|
{
|
||||||
MENU(PSTR("GLOBAL VARIABLES"), menuTabModel, e_GVars, 1+MAX_GVARS, {0, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES});
|
MENU(PSTR("GLOBAL VARIABLES"), menuTabModel, e_GVars, 1+MAX_GVARS, {0, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES, NAVIGATION_LINE_BY_LINE|MAX_PHASES});
|
||||||
|
|||||||
+1
-5
@@ -261,11 +261,7 @@ void displayWarning(uint8_t event);
|
|||||||
#if defined(SDCARD) || (defined(ROTARY_ENCODER_NAVIGATION) && !defined(CPUM64))
|
#if defined(SDCARD) || (defined(ROTARY_ENCODER_NAVIGATION) && !defined(CPUM64))
|
||||||
#define NAVIGATION_MENUS
|
#define NAVIGATION_MENUS
|
||||||
#define MENU_ADD_ITEM(s) s_menu[s_menu_count++] = s
|
#define MENU_ADD_ITEM(s) s_menu[s_menu_count++] = s
|
||||||
#if defined(SDCARD) && defined(ROTARY_ENCODER_NAVIGATION)
|
#define MENU_MAX_LINES 6
|
||||||
#define MENU_MAX_LINES 6
|
|
||||||
#else
|
|
||||||
#define MENU_MAX_LINES 4
|
|
||||||
#endif
|
|
||||||
#if defined(SDCARD)
|
#if defined(SDCARD)
|
||||||
#define MENU_ADD_SD_ITEM(s) MENU_ADD_ITEM(s)
|
#define MENU_ADD_SD_ITEM(s) MENU_ADD_ITEM(s)
|
||||||
#else
|
#else
|
||||||
|
|||||||
+27
-21
@@ -236,11 +236,6 @@ void per10ms()
|
|||||||
if (lightOffCounter) lightOffCounter--;
|
if (lightOffCounter) lightOffCounter--;
|
||||||
if (s_noHi) s_noHi--;
|
if (s_noHi) s_noHi--;
|
||||||
if (trimsCheckTimer) trimsCheckTimer --;
|
if (trimsCheckTimer) trimsCheckTimer --;
|
||||||
if ((g_blinkTmr10ms & 0x1F) == 0) {
|
|
||||||
inacCounter++;
|
|
||||||
if ((((uint8_t)inacCounter)&0x0F)==0x01 && g_eeGeneral.inactivityTimer && g_vbat100mV>50 && inacCounter > ((uint16_t)g_eeGeneral.inactivityTimer*187))
|
|
||||||
AUDIO_INACTIVITY();
|
|
||||||
}
|
|
||||||
|
|
||||||
#if defined(RTCLOCK)
|
#if defined(RTCLOCK)
|
||||||
/* Update global Date/Time every 100 per10ms cycles */
|
/* Update global Date/Time every 100 per10ms cycles */
|
||||||
@@ -282,20 +277,22 @@ void per10ms()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(FRSKY) || defined(MAVLINK) || defined(JETI)) && !defined(CPUARM)
|
#if defined(FRSKY)
|
||||||
if (!IS_DSM2_SERIAL_PROTOCOL(s_current_protocol))
|
if (!IS_DSM2_SERIAL_PROTOCOL(s_current_protocol))
|
||||||
telemetryPoll10ms();
|
telemetryInterrupt10ms();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// These moved here from perOut() to improve beep trigger reliability.
|
// These moved here from perOut() to improve beep trigger reliability.
|
||||||
#if defined(PWM_BACKLIGHT)
|
#if defined(PWM_BACKLIGHT)
|
||||||
if ((g_tmr10ms&0x03) == 0x00)
|
if ((g_tmr10ms&0x03) == 0x00)
|
||||||
fadeBacklight(); // increment or decrement brightness until target brightness is reached
|
backlightFade(); // increment or decrement brightness until target brightness is reached
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(mixWarning & 1) if(((g_tmr10ms&0xFF)== 0)) AUDIO_MIX_WARNING_1();
|
#if !defined(AUDIO)
|
||||||
if(mixWarning & 2) if(((g_tmr10ms&0xFF)== 64) || ((g_tmr10ms&0xFF)== 72)) AUDIO_MIX_WARNING_2();
|
if (mixWarning & 1) if(((g_tmr10ms&0xFF)== 0)) AUDIO_MIX_WARNING(1);
|
||||||
if(mixWarning & 4) if(((g_tmr10ms&0xFF)==128) || ((g_tmr10ms&0xFF)==136) || ((g_tmr10ms&0xFF)==144)) AUDIO_MIX_WARNING_3();
|
if (mixWarning & 2) if(((g_tmr10ms&0xFF)== 64) || ((g_tmr10ms&0xFF)== 72)) AUDIO_MIX_WARNING(2);
|
||||||
|
if (mixWarning & 4) if(((g_tmr10ms&0xFF)==128) || ((g_tmr10ms&0xFF)==136) || ((g_tmr10ms&0xFF)==144)) AUDIO_MIX_WARNING(3);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(SDCARD)
|
#if defined(SDCARD)
|
||||||
sdPoll10ms();
|
sdPoll10ms();
|
||||||
@@ -2013,12 +2010,9 @@ uint16_t inacSum = 0;
|
|||||||
BeepANACenter bpanaCenter = 0;
|
BeepANACenter bpanaCenter = 0;
|
||||||
|
|
||||||
uint16_t sDelay[MAX_MIXERS] = {0};
|
uint16_t sDelay[MAX_MIXERS] = {0};
|
||||||
#if defined(CPUARM)
|
int24_t act [MAX_MIXERS] = {0};
|
||||||
int32_t act [MAX_MIXERS] = {0};
|
|
||||||
#else
|
|
||||||
__int24 act [MAX_MIXERS] = {0};
|
|
||||||
#endif
|
|
||||||
uint8_t swOn [MAX_MIXERS] = {0};
|
uint8_t swOn [MAX_MIXERS] = {0};
|
||||||
|
|
||||||
uint8_t mixWarning;
|
uint8_t mixWarning;
|
||||||
|
|
||||||
FORCEINLINE void evalTrims()
|
FORCEINLINE void evalTrims()
|
||||||
@@ -2763,7 +2757,9 @@ void perOut(uint8_t mode, uint8_t tick10ms)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (md->mixWarn) lv_mixWarning |= 1 << (md->mixWarn - 1); // Mix warning
|
if (md->mixWarn) lv_mixWarning |= 1 << (md->mixWarn - 1); // Mix warning
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -2956,7 +2952,7 @@ void perOut(uint8_t mode, uint8_t tick10ms)
|
|||||||
} while (++pass < 5 && dirtyChannels);
|
} while (++pass < 5 && dirtyChannels);
|
||||||
|
|
||||||
mixWarning = lv_mixWarning;
|
mixWarning = lv_mixWarning;
|
||||||
} //endfunc perOut
|
}
|
||||||
|
|
||||||
#define TIME_TO_WRITE() (s_eeDirtyMsk && (tmr10ms_t)(get_tmr10ms() - s_eeDirtyTime10ms) >= (tmr10ms_t)WRITE_DELAY_10MS)
|
#define TIME_TO_WRITE() (s_eeDirtyMsk && (tmr10ms_t)(get_tmr10ms() - s_eeDirtyTime10ms) >= (tmr10ms_t)WRITE_DELAY_10MS)
|
||||||
|
|
||||||
@@ -3038,7 +3034,7 @@ void doMixerCalculations()
|
|||||||
|
|
||||||
// the reason this needs to be done before limits is the applyLimit function; it checks for safety switches which would be not initialized otherwise
|
// the reason this needs to be done before limits is the applyLimit function; it checks for safety switches which would be not initialized otherwise
|
||||||
evalFunctions();
|
evalFunctions();
|
||||||
} //endif
|
}
|
||||||
|
|
||||||
int32_t weight = 0;
|
int32_t weight = 0;
|
||||||
if (s_fade_flight_phases) {
|
if (s_fade_flight_phases) {
|
||||||
@@ -3250,7 +3246,7 @@ void doMixerCalculations()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
s_cnt_1s++;
|
s_cnt_1s++;
|
||||||
s_sum_1s += val;
|
s_sum_1s+=val;
|
||||||
|
|
||||||
// @@@ open.20.fsguruh: moved code here; at least val variable conflicts with caculations above, safer here?
|
// @@@ open.20.fsguruh: moved code here; at least val variable conflicts with caculations above, safer here?
|
||||||
// even reduced code size about 8 bytes, why ever?
|
// even reduced code size about 8 bytes, why ever?
|
||||||
@@ -3258,6 +3254,16 @@ void doMixerCalculations()
|
|||||||
s_time_tot += 100;
|
s_time_tot += 100;
|
||||||
s_timeCumTot += 1;
|
s_timeCumTot += 1;
|
||||||
|
|
||||||
|
inacCounter++;
|
||||||
|
if ((((uint8_t)inacCounter)&0x07)==0x01 && g_eeGeneral.inactivityTimer && g_vbat100mV>50 && inacCounter > ((uint16_t)g_eeGeneral.inactivityTimer*60))
|
||||||
|
AUDIO_INACTIVITY();
|
||||||
|
|
||||||
|
#if defined(AUDIO)
|
||||||
|
if (mixWarning & 1) if ((s_timeCumTot&0x03)== 0) AUDIO_MIX_WARNING(1);
|
||||||
|
if (mixWarning & 2) if ((s_timeCumTot&0x03)== 1) AUDIO_MIX_WARNING(2);
|
||||||
|
if (mixWarning & 4) if ((s_timeCumTot&0x03)== 2) AUDIO_MIX_WARNING(3);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(ACCURAT_THROTTLE_TIMER)
|
#if defined(ACCURAT_THROTTLE_TIMER)
|
||||||
val = s_sum_1s / s_cnt_1s;
|
val = s_sum_1s / s_cnt_1s;
|
||||||
s_timeCum16ThrP += (val>>3); // s_timeCum16ThrP would overrun if we would store throttle value with higher accuracy; therefore stay with 16 steps
|
s_timeCum16ThrP += (val>>3); // s_timeCum16ThrP would overrun if we would store throttle value with higher accuracy; therefore stay with 16 steps
|
||||||
@@ -3441,8 +3447,8 @@ void perMain()
|
|||||||
|
|
||||||
checkBacklight();
|
checkBacklight();
|
||||||
|
|
||||||
#if defined(CPUARM) && defined(FRSKY)
|
#if defined(FRSKY)
|
||||||
telemetryPoll10ms();
|
telemetryWakeup();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
lcd_clear();
|
lcd_clear();
|
||||||
|
|||||||
+25
-18
@@ -177,32 +177,38 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ROTARY_ENCODERS > 0
|
#if ROTARY_ENCODERS > 0
|
||||||
#define ROTARY_ENCODER_NAVIGATION
|
#define ROTARY_ENCODER_NAVIGATION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(SIMU) || defined(CPUARM) || GCC_VERSION < 472
|
||||||
|
typedef int32_t int24_t;
|
||||||
|
#else
|
||||||
|
typedef __int24 int24_t;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SIMU)
|
#if defined(SIMU)
|
||||||
#ifndef FORCEINLINE
|
#ifndef FORCEINLINE
|
||||||
#define FORCEINLINE
|
#define FORCEINLINE
|
||||||
#endif
|
#endif
|
||||||
#ifndef NOINLINE
|
#if !defined(NOINLINE)
|
||||||
#define NOINLINE
|
#define NOINLINE
|
||||||
#endif
|
#endif
|
||||||
#define CONVERT_PTR(x) ((uint32_t)(uint64_t)(x))
|
#define CONVERT_PTR(x) ((uint32_t)(uint64_t)(x))
|
||||||
#else
|
#else
|
||||||
#define FORCEINLINE inline __attribute__ ((always_inline))
|
#define FORCEINLINE inline __attribute__ ((always_inline))
|
||||||
#define NOINLINE __attribute__ ((noinline))
|
#define NOINLINE __attribute__ ((noinline))
|
||||||
#define SIMU_SLEEP(x)
|
#define SIMU_SLEEP(x)
|
||||||
#define CONVERT_PTR(x) ((uint32_t)(x))
|
#define CONVERT_PTR(x) ((uint32_t)(x))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PCBTARANIS)
|
#if defined(PCBTARANIS)
|
||||||
#include "taranis/board_taranis.h"
|
#include "taranis/board_taranis.h"
|
||||||
#elif defined(PCBSKY9X)
|
#elif defined(PCBSKY9X)
|
||||||
#include "sky9x/board_sky9x.h"
|
#include "sky9x/board_sky9x.h"
|
||||||
#elif defined(PCBGRUVIN9X)
|
#elif defined(PCBGRUVIN9X)
|
||||||
#include "gruvin9x/board_gruvin9x.h"
|
#include "gruvin9x/board_gruvin9x.h"
|
||||||
#else
|
#else
|
||||||
#include "stock/board_stock.h"
|
#include "stock/board_stock.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
@@ -1148,9 +1154,10 @@ inline bool isFunctionActive(uint8_t func)
|
|||||||
#include "telemetry_mavlink.h"
|
#include "telemetry_mavlink.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// REPEAT uses 0x01 to 0x0f
|
#define PLAY_REPEAT(x) (x) /* Range 0 to 15 */
|
||||||
#define PLAY_NOW 0x10
|
#define PLAY_NOW 0x10
|
||||||
#define PLAY_BACKGROUND 0x20
|
#define PLAY_BACKGROUND 0x20
|
||||||
|
#define PLAY_INCREMENT(x) ((uint8_t)(((uint8_t)x) << 6)) /* -1, 0, 1, 2 */
|
||||||
|
|
||||||
/* make sure the defines below always go in numeric order */
|
/* make sure the defines below always go in numeric order */
|
||||||
enum AUDIO_SOUNDS {
|
enum AUDIO_SOUNDS {
|
||||||
@@ -1354,7 +1361,7 @@ void checkMinMaxAltitude();
|
|||||||
void evalVario(int16_t altitude_bp, uint16_t altitude_ap);
|
void evalVario(int16_t altitude_bp, uint16_t altitude_ap);
|
||||||
void getGpsPilotPosition();
|
void getGpsPilotPosition();
|
||||||
void getGpsDistance();
|
void getGpsDistance();
|
||||||
void varioPoll10ms();
|
void varioWakeup();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
+1
-2
@@ -97,7 +97,6 @@ typedef const uint16_t pm_uint16_t;
|
|||||||
typedef const uint8_t pm_uint8_t;
|
typedef const uint8_t pm_uint8_t;
|
||||||
typedef const int16_t pm_int16_t;
|
typedef const int16_t pm_int16_t;
|
||||||
typedef const int8_t pm_int8_t;
|
typedef const int8_t pm_int8_t;
|
||||||
typedef int32_t __int24;
|
|
||||||
|
|
||||||
#if defined(PCBTARANIS) || defined(PCBACT)
|
#if defined(PCBTARANIS) || defined(PCBACT)
|
||||||
extern GPIO_TypeDef gpioa;
|
extern GPIO_TypeDef gpioa;
|
||||||
@@ -357,7 +356,7 @@ void eeprom_read_block (void *pointer_ram, const void *pointer_eeprom, size_t si
|
|||||||
#define UART_Stop(...)
|
#define UART_Stop(...)
|
||||||
#define UART3_Stop(...)
|
#define UART3_Stop(...)
|
||||||
|
|
||||||
#if defined(PCBTARANIS) || defined(PCBACT)
|
#if defined(PCBTARANIS)
|
||||||
inline void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { }
|
inline void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { }
|
||||||
#define GPIO_SetBits(GPIOx, pin) GPIOx->BSRRL |= pin
|
#define GPIO_SetBits(GPIOx, pin) GPIOx->BSRRL |= pin
|
||||||
#define GPIO_ResetBits(GPIOx, pin) GPIOx->BSRRL &= ~pin
|
#define GPIO_ResetBits(GPIOx, pin) GPIOx->BSRRL &= ~pin
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ unsigned char MEDSdcard_Initialize(Media *media, unsigned char mciID)
|
|||||||
// Initialize SDcard
|
// Initialize SDcard
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|
||||||
if ( !CardIsConnected( ) )
|
if ( !SD_CARD_PRESENT( ) )
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -499,7 +499,7 @@
|
|||||||
///// MCI Card Detect pin.
|
///// MCI Card Detect pin.
|
||||||
#define BOARD_SD_PIN_CD PIN_MCI_CD
|
#define BOARD_SD_PIN_CD PIN_MCI_CD
|
||||||
|
|
||||||
#define CardIsConnected() ( (PIOB->PIO_PDSR & PIO_PB7) == 0 )
|
#define SD_CARD_PRESENT() ( (PIOB->PIO_PDSR & PIO_PB7) == 0 )
|
||||||
|
|
||||||
// States for initialising card
|
// States for initialising card
|
||||||
#define SD_ST_ERR -1
|
#define SD_ST_ERR -1
|
||||||
|
|||||||
@@ -285,7 +285,7 @@ const char * sdCommand(uint32_t cmd, uint32_t arg)
|
|||||||
uint32_t i;
|
uint32_t i;
|
||||||
Hsmci *phsmci = HSMCI;
|
Hsmci *phsmci = HSMCI;
|
||||||
|
|
||||||
if (CardIsConnected()) {
|
if (SD_CARD_PRESENT()) {
|
||||||
phsmci->HSMCI_ARGR = arg;
|
phsmci->HSMCI_ARGR = arg;
|
||||||
phsmci->HSMCI_CMDR = cmd;
|
phsmci->HSMCI_CMDR = cmd;
|
||||||
|
|
||||||
@@ -378,7 +378,7 @@ uint32_t sdCmd16()
|
|||||||
{
|
{
|
||||||
Hsmci *phsmci = HSMCI;
|
Hsmci *phsmci = HSMCI;
|
||||||
|
|
||||||
if (CardIsConnected()) {
|
if (SD_CARD_PRESENT()) {
|
||||||
phsmci->HSMCI_BLKR = ( ( 512 ) << 16 ) | 1 ;
|
phsmci->HSMCI_BLKR = ( ( 512 ) << 16 ) | 1 ;
|
||||||
phsmci->HSMCI_ARGR = 512;
|
phsmci->HSMCI_ARGR = 512;
|
||||||
phsmci->HSMCI_CMDR = SDMMC_SET_BLOCKLEN;
|
phsmci->HSMCI_CMDR = SDMMC_SET_BLOCKLEN;
|
||||||
@@ -963,7 +963,7 @@ void sdMountPoll()
|
|||||||
if (!Card_initialized)
|
if (!Card_initialized)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!CardIsConnected()) {
|
if (!SD_CARD_PRESENT()) {
|
||||||
Card_state = SD_ST_EMPTY;
|
Card_state = SD_ST_EMPTY;
|
||||||
Sd_rca = 0;
|
Sd_rca = 0;
|
||||||
sdErrorCount = 0;
|
sdErrorCount = 0;
|
||||||
@@ -971,7 +971,7 @@ void sdMountPoll()
|
|||||||
|
|
||||||
switch (Card_state) {
|
switch (Card_state) {
|
||||||
case SD_ST_EMPTY:
|
case SD_ST_EMPTY:
|
||||||
if (CardIsConnected()) {
|
if (SD_CARD_PRESENT()) {
|
||||||
Card_state = SD_ST_INIT1;
|
Card_state = SD_ST_INIT1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1030,7 +1030,7 @@ void sdInit()
|
|||||||
Sd_rca = 0;
|
Sd_rca = 0;
|
||||||
sdErrorCount = 0;
|
sdErrorCount = 0;
|
||||||
|
|
||||||
if (!CardIsConnected()) {
|
if (!SD_CARD_PRESENT()) {
|
||||||
Card_state = SD_ST_EMPTY;
|
Card_state = SD_ST_EMPTY;
|
||||||
Card_initialized = 1;
|
Card_initialized = 1;
|
||||||
return;
|
return;
|
||||||
@@ -1093,12 +1093,12 @@ void sdInit()
|
|||||||
// returns 1 for YES, 0 for NO
|
// returns 1 for YES, 0 for NO
|
||||||
uint32_t sd_card_ready( void )
|
uint32_t sd_card_ready( void )
|
||||||
{
|
{
|
||||||
return CardIsConnected() && Card_state >= SD_ST_DATA;
|
return SD_CARD_PRESENT() && Card_state >= SD_ST_DATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t sdMounted( void )
|
uint32_t sdMounted( void )
|
||||||
{
|
{
|
||||||
return CardIsConnected() && Card_state == SD_ST_MOUNTED;
|
return SD_CARD_PRESENT() && Card_state == SD_ST_MOUNTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t sd_read_block(uint32_t block_no, uint32_t *data)
|
uint32_t sd_read_block(uint32_t block_no, uint32_t *data)
|
||||||
|
|||||||
@@ -306,7 +306,7 @@ bool getBackLightState()
|
|||||||
return (bl_target==g_eeGeneral.blOnBright);
|
return (bl_target==g_eeGeneral.blOnBright);
|
||||||
}
|
}
|
||||||
|
|
||||||
void fadeBacklight() //called from per10ms()
|
void backlightFade() //called from per10ms()
|
||||||
{
|
{
|
||||||
if (bl_target != bl_current) {
|
if (bl_target != bl_current) {
|
||||||
if (bl_target > bl_current)
|
if (bl_target > bl_current)
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ void backlightFadeOff();
|
|||||||
#define __BACKLIGHT_OFF backlightFadeOff()
|
#define __BACKLIGHT_OFF backlightFadeOff()
|
||||||
bool getBackLightState();
|
bool getBackLightState();
|
||||||
#define IS_BACKLIGHT_ON() getBackLightState()
|
#define IS_BACKLIGHT_ON() getBackLightState()
|
||||||
void fadeBacklight();
|
void backlightFade();
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#if defined(SP22)
|
#if defined(SP22)
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ void sdInit();
|
|||||||
void sdPoll10ms();
|
void sdPoll10ms();
|
||||||
#define sdMountPoll()
|
#define sdMountPoll()
|
||||||
uint32_t sdMounted();
|
uint32_t sdMounted();
|
||||||
|
#define SD_CARD_PRESENT() (1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Pulses driver
|
// Pulses driver
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ static void socket_cp_init(void)
|
|||||||
|
|
||||||
static inline DWORD socket_is_empty(void)
|
static inline DWORD socket_is_empty(void)
|
||||||
{
|
{
|
||||||
return 0; /* fake inserted */
|
return !SD_CARD_PRESENT(); /* fake inserted */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void card_power(BYTE on)
|
static void card_power(BYTE on)
|
||||||
|
|||||||
+11
-9
@@ -274,6 +274,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// SD - SPI2
|
// SD - SPI2
|
||||||
|
#define SD_PRESENT_GPIO GPIOD->IDR
|
||||||
|
#define SD_PRESENT_GPIO_Pin GPIO_Pin_9 //PD.09
|
||||||
#define GPIO_Pin_SPI_SD_CS GPIO_Pin_12 //PB.12
|
#define GPIO_Pin_SPI_SD_CS GPIO_Pin_12 //PB.12
|
||||||
#define GPIO_Pin_SPI_SD_SCK GPIO_Pin_13 //PB.13
|
#define GPIO_Pin_SPI_SD_SCK GPIO_Pin_13 //PB.13
|
||||||
#define GPIO_Pin_SPI_SD_MISO GPIO_Pin_14 //PB.14
|
#define GPIO_Pin_SPI_SD_MISO GPIO_Pin_14 //PB.14
|
||||||
@@ -293,9 +295,9 @@
|
|||||||
#define SPI_BaudRatePrescaler_SPI_SD SPI_BaudRatePrescaler_4 //10.5<20MHZ,make sure < 20MHZ
|
#define SPI_BaudRatePrescaler_SPI_SD SPI_BaudRatePrescaler_4 //10.5<20MHZ,make sure < 20MHZ
|
||||||
|
|
||||||
//disabled io_ctl and cp/wp
|
//disabled io_ctl and cp/wp
|
||||||
#define CARD_SUPPLY_SWITCHABLE 0
|
#define CARD_SUPPLY_SWITCHABLE 0
|
||||||
#define SOCKET_WP_CONNECTED 0
|
#define SOCKET_WP_CONNECTED 0
|
||||||
#define SOCKET_CP_CONNECTED 0
|
#define SOCKET_CP_CONNECTED 0
|
||||||
/* set to 1 to provide a disk_ioctrl function even if not needed by the FatFs */
|
/* set to 1 to provide a disk_ioctrl function even if not needed by the FatFs */
|
||||||
#define STM32_SD_DISK_IOCTRL_FORCE 0
|
#define STM32_SD_DISK_IOCTRL_FORCE 0
|
||||||
|
|
||||||
@@ -303,13 +305,13 @@
|
|||||||
#define STM32_SD_USE_DMA //Enable the DMA for SD
|
#define STM32_SD_USE_DMA //Enable the DMA for SD
|
||||||
|
|
||||||
#ifdef STM32_SD_USE_DMA
|
#ifdef STM32_SD_USE_DMA
|
||||||
#define DMA_Channel_SPI_SD_RX DMA1_Stream3
|
#define DMA_Channel_SPI_SD_RX DMA1_Stream3
|
||||||
#define DMA_Channel_SPI_SD_TX DMA1_Stream4
|
#define DMA_Channel_SPI_SD_TX DMA1_Stream4
|
||||||
|
|
||||||
#define DMA_FLAG_SPI_SD_TC_RX DMA_FLAG_TCIF3
|
#define DMA_FLAG_SPI_SD_TC_RX DMA_FLAG_TCIF3
|
||||||
#define DMA_FLAG_SPI_SD_TC_TX DMA_FLAG_TCIF4
|
#define DMA_FLAG_SPI_SD_TC_TX DMA_FLAG_TCIF4
|
||||||
#define DMA_Channel_SPI2_TX DMA_Channel_0
|
#define DMA_Channel_SPI2_TX DMA_Channel_0
|
||||||
#define DMA_Channel_SPI2_RX DMA_Channel_0
|
#define DMA_Channel_SPI2_RX DMA_Channel_0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Audio----I2S3-----SPI3
|
// Audio----I2S3-----SPI3
|
||||||
|
|||||||
@@ -36,9 +36,6 @@ extern "C" {
|
|||||||
|
|
||||||
#define STORAGE_LUN_NBR 1
|
#define STORAGE_LUN_NBR 1
|
||||||
|
|
||||||
// TODO ... perhaps something more adequate ;)
|
|
||||||
#define SD_GetStatus() (0)
|
|
||||||
|
|
||||||
/* USB Mass storage Standard Inquiry Data */
|
/* USB Mass storage Standard Inquiry Data */
|
||||||
const unsigned char STORAGE_Inquirydata[] = {//36
|
const unsigned char STORAGE_Inquirydata[] = {//36
|
||||||
|
|
||||||
@@ -123,7 +120,7 @@ int8_t STORAGE_Init (uint8_t lun)
|
|||||||
*/
|
*/
|
||||||
int8_t STORAGE_GetCapacity (uint8_t lun, uint32_t *block_num, uint32_t *block_size)
|
int8_t STORAGE_GetCapacity (uint8_t lun, uint32_t *block_num, uint32_t *block_size)
|
||||||
{
|
{
|
||||||
if (SD_GetStatus() != 0 )
|
if (!SD_CARD_PRESENT())
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
*block_size = 512;
|
*block_size = 512;
|
||||||
@@ -143,20 +140,7 @@ int8_t STORAGE_GetCapacity (uint8_t lun, uint32_t *block_num, uint32_t *block_si
|
|||||||
*/
|
*/
|
||||||
int8_t STORAGE_IsReady (uint8_t lun)
|
int8_t STORAGE_IsReady (uint8_t lun)
|
||||||
{
|
{
|
||||||
static int8_t last_status = 0;
|
return SD_CARD_PRESENT() ? 0 : -1;
|
||||||
|
|
||||||
if(last_status < 0)
|
|
||||||
{
|
|
||||||
// TODO ? SD_Init();
|
|
||||||
last_status = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(SD_GetStatus() != 0)
|
|
||||||
{
|
|
||||||
last_status = -1;
|
|
||||||
return (-1);
|
|
||||||
}
|
|
||||||
return (0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -178,7 +162,6 @@ int8_t STORAGE_IsWriteProtected (uint8_t lun)
|
|||||||
* @retval Status
|
* @retval Status
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO quick & dirty
|
|
||||||
int8_t SD_ReadSectors(uint8_t *buff, uint32_t sector, uint32_t count);
|
int8_t SD_ReadSectors(uint8_t *buff, uint32_t sector, uint32_t count);
|
||||||
|
|
||||||
int8_t STORAGE_Read (uint8_t lun,
|
int8_t STORAGE_Read (uint8_t lun,
|
||||||
@@ -193,10 +176,7 @@ int8_t STORAGE_Read (uint8_t lun,
|
|||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
SD_WaitReadOperation();
|
|
||||||
while (SD_GetStatus() != SD_TRANSFER_OK);
|
|
||||||
#endif
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -222,10 +202,7 @@ int8_t STORAGE_Write (uint8_t lun,
|
|||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
SD_WaitWriteOperation();
|
|
||||||
while (SD_GetStatus() != SD_TRANSFER_OK);
|
|
||||||
#endif
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+32
-29
@@ -621,35 +621,8 @@ inline void frskySendNextAlarm(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NOINLINE void telemetryPoll10ms()
|
void telemetryInterrupt10ms()
|
||||||
{
|
{
|
||||||
#if defined(PCBSKY9X)
|
|
||||||
rxPdcUsart(processSerialData); // Receive serial data here
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Attempt to transmit any waiting Fr-Sky alarm set packets every 50ms (subject to packet buffer availability)
|
|
||||||
static uint8_t frskyTxDelay = 5;
|
|
||||||
if (frskyAlarmsSendState && (--frskyTxDelay == 0)) {
|
|
||||||
frskyTxDelay = 5; // 50ms
|
|
||||||
frskySendNextAlarm();
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef SIMU
|
|
||||||
#if defined(WS_HOW_HIGH)
|
|
||||||
if (frskyUsrStreaming > 0) {
|
|
||||||
frskyUsrStreaming--;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (frskyStreaming > 0) {
|
|
||||||
frskyStreaming--;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
frskyData.rssi[0].set(0);
|
|
||||||
frskyData.rssi[1].set(0);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint16_t voltage = 0; /* unit: 1/10 volts */
|
uint16_t voltage = 0; /* unit: 1/10 volts */
|
||||||
|
|
||||||
#if defined(FRSKY_HUB)
|
#if defined(FRSKY_HUB)
|
||||||
@@ -687,9 +660,39 @@ NOINLINE void telemetryPoll10ms()
|
|||||||
frskyData.currentConsumption += 1;
|
frskyData.currentConsumption += 1;
|
||||||
frskyData.currentPrescale -= 3600;
|
frskyData.currentPrescale -= 3600;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void telemetryWakeup()
|
||||||
|
{
|
||||||
|
#if defined(PCBSKY9X)
|
||||||
|
rxPdcUsart(processSerialData); // Receive serial data here
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Attempt to transmit any waiting Fr-Sky alarm set packets every 50ms (subject to packet buffer availability)
|
||||||
|
static uint8_t frskyTxDelay = 5;
|
||||||
|
if (frskyAlarmsSendState && (--frskyTxDelay == 0)) {
|
||||||
|
frskyTxDelay = 5; // 50ms
|
||||||
|
frskySendNextAlarm();
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef SIMU
|
||||||
|
#if defined(WS_HOW_HIGH)
|
||||||
|
if (frskyUsrStreaming > 0) {
|
||||||
|
frskyUsrStreaming--;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (frskyStreaming > 0) {
|
||||||
|
frskyStreaming--;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
frskyData.rssi[0].set(0);
|
||||||
|
frskyData.rssi[1].set(0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(VARIO)
|
#if defined(VARIO)
|
||||||
varioPoll10ms();
|
varioWakeup();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -194,7 +194,8 @@ extern uint8_t frskyTxBuffer[FRSKY_TX_PACKET_SIZE];
|
|||||||
extern uint8_t frskyTxBufferCount;
|
extern uint8_t frskyTxBufferCount;
|
||||||
|
|
||||||
void FRSKY_Init(void);
|
void FRSKY_Init(void);
|
||||||
NOINLINE void telemetryPoll10ms(void);
|
void telemetryWakeup(void);
|
||||||
|
void telemetryInterrupt10ms(void);
|
||||||
|
|
||||||
inline void frskySendAlarms(void)
|
inline void frskySendAlarms(void)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ uint8_t jetiRxBuffer[32];
|
|||||||
uint8_t jetiReady;
|
uint8_t jetiReady;
|
||||||
uint16_t jetiKeys;
|
uint16_t jetiKeys;
|
||||||
|
|
||||||
void telemetryPoll10ms()
|
void telemetryWakeup()
|
||||||
{
|
{
|
||||||
if (jetiReady) {
|
if (jetiReady) {
|
||||||
jetiKeys = JETI_KEY_NOCHANGE;
|
jetiKeys = JETI_KEY_NOCHANGE;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void JETI_DisableRXD (void);
|
|||||||
void JETI_EnableTXD (void);
|
void JETI_EnableTXD (void);
|
||||||
void JETI_DisableTXD (void);
|
void JETI_DisableTXD (void);
|
||||||
|
|
||||||
void telemetryPoll10ms();
|
void telemetryWakeup();
|
||||||
void menuTelemetryJeti(uint8_t event);
|
void menuTelemetryJeti(uint8_t event);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -607,7 +607,7 @@ void MAVLINK10mspoll(uint8_t count) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void telemetryPoll10ms() {
|
void telemetryWakeup() {
|
||||||
uint16_t tmr10ms = get_tmr10ms();
|
uint16_t tmr10ms = get_tmr10ms();
|
||||||
uint8_t count = tmr10ms & 0x0f; // 15*10ms
|
uint8_t count = tmr10ms & 0x0f; // 15*10ms
|
||||||
if (!count) {
|
if (!count) {
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ extern inline uint8_t MAVLINK_Action2CtrlMode(uint8_t action) {
|
|||||||
return action;
|
return action;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
void telemetryPoll10ms();
|
void telemetryWakeup();
|
||||||
void MAVLINK_Init(void);
|
void MAVLINK_Init(void);
|
||||||
void menuTelemetryMavlink(uint8_t event);
|
void menuTelemetryMavlink(uint8_t event);
|
||||||
void MAVLINK10mspoll(uint16_t time);
|
void MAVLINK10mspoll(uint16_t time);
|
||||||
|
|||||||
@@ -331,6 +331,12 @@ const pm_char STR_CREATE_MODEL[] PROGMEM = TR_CREATE_MODEL;
|
|||||||
const pm_char STR_COPY_MODEL[] PROGMEM = TR_COPY_MODEL;
|
const pm_char STR_COPY_MODEL[] PROGMEM = TR_COPY_MODEL;
|
||||||
const pm_char STR_MOVE_MODEL[] PROGMEM = TR_MOVE_MODEL;
|
const pm_char STR_MOVE_MODEL[] PROGMEM = TR_MOVE_MODEL;
|
||||||
const pm_char STR_DELETE_MODEL[] PROGMEM = TR_DELETE_MODEL;
|
const pm_char STR_DELETE_MODEL[] PROGMEM = TR_DELETE_MODEL;
|
||||||
|
const pm_char STR_EDIT[] PROGMEM = "Edit";
|
||||||
|
const pm_char STR_INSERT_BEFORE[] PROGMEM = "Insert Before";
|
||||||
|
const pm_char STR_INSERT_AFTER[] PROGMEM = "Insert After";
|
||||||
|
const pm_char STR_COPY[] PROGMEM = "Copy";
|
||||||
|
const pm_char STR_MOVE[] PROGMEM = "Move";
|
||||||
|
const pm_char STR_DELETE[] PROGMEM = "Delete";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SDCARD)
|
#if defined(SDCARD)
|
||||||
|
|||||||
@@ -439,6 +439,12 @@ extern const pm_char STR_CURRENT[];
|
|||||||
extern const pm_char STR_COPY_MODEL[];
|
extern const pm_char STR_COPY_MODEL[];
|
||||||
extern const pm_char STR_MOVE_MODEL[];
|
extern const pm_char STR_MOVE_MODEL[];
|
||||||
extern const pm_char STR_DELETE_MODEL[];
|
extern const pm_char STR_DELETE_MODEL[];
|
||||||
|
extern const pm_char STR_EDIT[];
|
||||||
|
extern const pm_char STR_INSERT_BEFORE[];
|
||||||
|
extern const pm_char STR_INSERT_AFTER[];
|
||||||
|
extern const pm_char STR_COPY[];
|
||||||
|
extern const pm_char STR_MOVE[];
|
||||||
|
extern const pm_char STR_DELETE[];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(SDCARD)
|
#if defined(SDCARD)
|
||||||
|
|||||||
+1
-1
@@ -267,7 +267,7 @@ void displayTopBar()
|
|||||||
LCD_NOTIF_ICON(x, ICON_TRAINEE);
|
LCD_NOTIF_ICON(x, ICON_TRAINEE);
|
||||||
x -= 12;
|
x -= 12;
|
||||||
}
|
}
|
||||||
else if (1) {
|
else if (0) {
|
||||||
LCD_NOTIF_ICON(x, ICON_TRAINER);
|
LCD_NOTIF_ICON(x, ICON_TRAINER);
|
||||||
x -= 12;
|
x -= 12;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user