diff --git a/radio/src/definitions.h b/radio/src/definitions.h index 2c7a89b2e..c7d01a3f3 100644 --- a/radio/src/definitions.h +++ b/radio/src/definitions.h @@ -23,6 +23,10 @@ #include +#if !defined(UNUSED) + #define UNUSED(x) ((void)(x)) /* to avoid warnings */ +#endif + #if defined(SIMU) && __GNUC__ #define __ALIGNED(x) __attribute__((aligned(x))) #define __SECTION_USED(s) __attribute__((used)) @@ -57,17 +61,9 @@ #endif #if defined(SIMU) - #if !defined(FORCEINLINE) - #define FORCEINLINE inline - #endif - #if !defined(NOINLINE) - #define NOINLINE - #endif #define CONVERT_PTR_UINT(x) ((uint32_t)(uint64_t)(x)) #define CONVERT_UINT_PTR(x) ((uint32_t*)(uint64_t)(x)) #else - #define FORCEINLINE inline __attribute__ ((always_inline)) - #define NOINLINE __attribute__ ((noinline)) #define SIMU_SLEEP(x) #define SIMU_SLEEP_NORET(x) #define CONVERT_PTR_UINT(x) ((uint32_t)(x)) diff --git a/radio/src/fonts.h b/radio/src/fonts.h index d6b41b085..a839d48ee 100644 --- a/radio/src/fonts.h +++ b/radio/src/fonts.h @@ -41,9 +41,9 @@ void loadFonts(); extern const unsigned char font_5x7[]; extern const unsigned char font_10x14[]; -#if defined(BOLD_FONT) && ((!defined(CPUM64) && !defined(PCBMEGA2560)) || defined(TELEMETRY_NONE)) && !defined(BOOT) - #define BOLD_SPECIFIC_FONT - extern const unsigned char font_5x7_B[]; +#if defined(BOLD_FONT) && !defined(BOOT) + #define BOLD_SPECIFIC_FONT + extern const unsigned char font_5x7_B[]; #endif extern const unsigned char font_3x5[]; diff --git a/radio/src/functions.cpp b/radio/src/functions.cpp index d46766dfd..5142df59c 100644 --- a/radio/src/functions.cpp +++ b/radio/src/functions.cpp @@ -269,7 +269,6 @@ void evalFunctions(const CustomFunctionData * functions, CustomFunctionsContext break; #endif -#if defined(MASTER_VOLUME) case FUNC_VOLUME: { getvalue_t raw = getValue(CFN_PARAM(cfn)); @@ -280,7 +279,6 @@ void evalFunctions(const CustomFunctionData * functions, CustomFunctionsContext requiredSpeakerVolume = ((1024 + requiredSpeakerVolumeRawLast) * VOLUME_LEVEL_MAX) / 2048; break; } -#endif #if defined(SDCARD) case FUNC_PLAY_SOUND: diff --git a/radio/src/gui/128x64/radio_setup.cpp b/radio/src/gui/128x64/radio_setup.cpp index 1a3b687b9..a8c04a0e5 100644 --- a/radio/src/gui/128x64/radio_setup.cpp +++ b/radio/src/gui/128x64/radio_setup.cpp @@ -467,7 +467,7 @@ void menuRadioSetup(event_t event) } #endif -#if defined(TELEMETRY_FRSKY) && defined(FRSKY_HUB) && defined(GPS) +#if defined(TELEMETRY_FRSKY) && defined(GPS) case ITEM_SETUP_TIMEZONE: lcdDrawTextAlignedLeft(y, STR_TIMEZONE); lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.timezone, attr|LEFT); diff --git a/radio/src/gui/128x64/view_main.cpp b/radio/src/gui/128x64/view_main.cpp index 590a12b01..43401c55e 100644 --- a/radio/src/gui/128x64/view_main.cpp +++ b/radio/src/gui/128x64/view_main.cpp @@ -173,7 +173,7 @@ void displayTrims(uint8_t phase) } } -FORCEINLINE void drawTimerWithMode(coord_t x, coord_t y, uint8_t index) +void drawTimerWithMode(coord_t x, coord_t y, uint8_t index) { const TimerData & timer = g_model.timers[index]; if (timer.mode) { diff --git a/radio/src/gui/128x64/view_telemetry.cpp b/radio/src/gui/128x64/view_telemetry.cpp index 5b09f5543..f76bc9769 100644 --- a/radio/src/gui/128x64/view_telemetry.cpp +++ b/radio/src/gui/128x64/view_telemetry.cpp @@ -23,10 +23,6 @@ #define STATUS_BAR_Y (7*FH+1) #define TELEM_2ND_COLUMN (10*FW) -#if defined(FRSKY_HUB) && defined(GAUGES) -bar_threshold_t barsThresholds[THLD_MAX]; -#endif - uint8_t s_frsky_view = 0; #define BAR_LEFT 25 @@ -168,11 +164,9 @@ bool displayCustomTelemetryScreen(uint8_t index) { FrSkyScreenData & screen = g_model.frsky.screens[index]; -#if defined(GAUGES) if (IS_BARS_SCREEN(s_frsky_view)) { return displayGaugesTelemetryScreen(screen); } -#endif displayNumbersTelemetryScreen(screen); diff --git a/radio/src/gui/212x64/radio_setup.cpp b/radio/src/gui/212x64/radio_setup.cpp index 8ba08baa0..3d3037905 100644 --- a/radio/src/gui/212x64/radio_setup.cpp +++ b/radio/src/gui/212x64/radio_setup.cpp @@ -411,7 +411,7 @@ void menuRadioSetup(event_t event) } #endif -#if defined(TELEMETRY_FRSKY) && defined(FRSKY_HUB) && defined(GPS) +#if defined(TELEMETRY_FRSKY) && defined(GPS) case ITEM_SETUP_LABEL_GPS: lcdDrawTextAlignedLeft(y, STR_GPS); break; diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index 6e01ec28c..b94181454 100644 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -143,7 +143,7 @@ int expo(int x, int k) return neg ? -y : y; } -void applyExpos(int16_t * anas, uint8_t mode APPLY_EXPOS_EXTRA_PARAMS) +void applyExpos(int16_t * anas, uint8_t mode, uint8_t ovwrIdx, int16_t ovwrValue) { int8_t cur_chn = -1; @@ -969,9 +969,7 @@ void evalMixes(uint8_t tick10ms) // must be done after mixing because some functions use the inputs/channels values // must be done before limits because of the applyLimit function: it checks for safety switches which would be not initialized otherwise if (tick10ms) { -#if defined(MASTER_VOLUME) requiredSpeakerVolume = g_eeGeneral.speakerVolume + VOLUME_LEVEL_DEF; -#endif if (!g_model.noGlobalFunctions) { evalFunctions(g_eeGeneral.customFn, globalFunctionsContext); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index fb9aaefcc..b35fc0333 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -667,11 +667,6 @@ getvalue_t convert16bitsTelemValue(source_t channel, ls_telemetry_value_t value) return value; } -getvalue_t convert8bitsTelemValue(source_t channel, ls_telemetry_value_t value) -{ - return value; -} - #if defined(TELEMETRY_FRSKY) ls_telemetry_value_t minTelemValue(source_t channel) { @@ -684,13 +679,6 @@ ls_telemetry_value_t maxTelemValue(source_t channel) } #endif -ls_telemetry_value_t max8bitsTelemValue(source_t channel) -{ - return 30000; -} - - - #define INAC_STICKS_SHIFT 6 #define INAC_SWITCHES_SHIFT 8 bool inputsMoved() @@ -1189,10 +1177,6 @@ void checkTrims() uint16_t s_anaFilt[NUM_ANALOGS]; #endif -#if defined(SIMU) -uint16_t BandGap = 225; -#endif - #if defined(JITTER_MEASURE) JitterMeter rawJitter[NUM_ANALOGS]; JitterMeter avgJitter[NUM_ANALOGS]; @@ -1413,17 +1397,8 @@ void doMixerCalculations() evalMixes(tick10ms); DEBUG_TIMER_STOP(debugTimerEvalMixes); - DEBUG_TIMER_START(debugTimerMixes10ms); if (tick10ms) { - -#if !defined(CPUM64) && !defined(ACCURAT_THROTTLE_TIMER) - // code cost is about 16 bytes for higher throttle accuracy for timer - // would not be noticable anyway, because all version up to this change had only 16 steps; - // now it has already 32 steps; this define would increase to 128 steps - #define ACCURAT_THROTTLE_TIMER -#endif - /* Throttle trace */ int16_t val; @@ -1431,7 +1406,7 @@ void doMixerCalculations() uint8_t ch = g_model.thrTraceSrc-NUM_POTS-NUM_SLIDERS-1; val = channelOutputs[ch]; - LimitData *lim = limitAddress(ch); + LimitData * lim = limitAddress(ch); int16_t gModelMax = LIMIT_MAX_RESX(lim); int16_t gModelMin = LIMIT_MIN_RESX(lim); @@ -1449,29 +1424,17 @@ void doMixerCalculations() gModelMax -= gModelMin; // we compare difference between Max and Mix for recaling needed; Max and Min are shifted to 0 by default // usually max is 1024 min is -1024 --> max-min = 2048 full range -#ifdef ACCURAT_THROTTLE_TIMER - if (gModelMax!=0 && gModelMax!=2048) val = (int32_t) (val << 11) / (gModelMax); // rescaling only needed if Min, Max differs -#else - // @@@ open.20.fsguruh optimized calculation; now *8 /8 instead of 10 base; (*16/16 already cause a overrun; unsigned calculation also not possible, because v may be negative) - gModelMax+=255; // force rounding up --> gModelMax is bigger --> val is smaller - gModelMax >>= (10-2); + if (gModelMax != 0 && gModelMax != 2048) + val = (int32_t) (val << 11) / (gModelMax); // rescaling only needed if Min, Max differs - if (gModelMax!=0 && gModelMax!=8) { - val = (val << 3) / gModelMax; // rescaling only needed if Min, Max differs - } -#endif - - if (val<0) val=0; // prevent val be negative, which would corrupt throttle trace and timers; could occur if safetyswitch is smaller than limits + if (val < 0) + val=0; // prevent val be negative, which would corrupt throttle trace and timers; could occur if safetyswitch is smaller than limits } else { val = RESX + calibratedAnalogs[g_model.thrTraceSrc == 0 ? THR_STICK : g_model.thrTraceSrc+NUM_STICKS-1]; } -#if defined(ACCURAT_THROTTLE_TIMER) val >>= (RESX_SHIFT-6); // calibrate it (resolution increased by factor 4) -#else - val >>= (RESX_SHIFT-4); // calibrate it -#endif evalTimers(val, tick10ms); @@ -1493,11 +1456,8 @@ void doMixerCalculations() if (s_cnt_1s >= 10) { // 1sec s_cnt_1s -= 10; sessionTimer += 1; - - struct t_inactivity *ptrInactivity = &inactivity; - FORCE_INDIRECT(ptrInactivity) ; - ptrInactivity->counter++; - if ((((uint8_t)ptrInactivity->counter)&0x07)==0x01 && g_eeGeneral.inactivityTimer && g_vbat100mV>50 && ptrInactivity->counter > ((uint16_t)g_eeGeneral.inactivityTimer*60)) + inactivity.counter++; + if ((((uint8_t)inactivity.counter)&0x07)==0x01 && g_eeGeneral.inactivityTimer && g_vbat100mV>50 && inactivity.counter > ((uint16_t)g_eeGeneral.inactivityTimer*60)) AUDIO_INACTIVITY(); #if defined(AUDIO) @@ -1506,16 +1466,10 @@ void doMixerCalculations() if (mixWarning & 4) if ((sessionTimer&0x03)==2) AUDIO_MIX_WARNING(3); #endif -#if defined(ACCURAT_THROTTLE_TIMER) val = s_sum_samples_thr_1s / s_cnt_samples_thr_1s; s_timeCum16ThrP += (val>>3); // s_timeCum16ThrP would overrun if we would store throttle value with higher accuracy; therefore stay with 16 steps if (val) s_timeCumThr += 1; s_sum_samples_thr_1s>>=2; // correct better accuracy now, because trace graph can show this information; in case thrtrace is not active, the compile should remove this -#else - val = s_sum_samples_thr_1s / s_cnt_samples_thr_1s; - s_timeCum16ThrP += (val>>1); - if (val) s_timeCumThr += 1; -#endif #if defined(THRTRACE) // throttle trace is done every 10 seconds; Tracebuffer is adjusted to screen size. diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 5961ec64e..5955da815 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -87,7 +87,7 @@ #define CASE_PWM_BACKLIGHT(x) #endif -#if defined(TELEMETRY_FRSKY) && defined(FRSKY_HUB) && defined(GPS) +#if defined(TELEMETRY_FRSKY) && defined(GPS) #define CASE_GPS(x) x, #else #define CASE_GPS(x) @@ -187,7 +187,7 @@ #define IF_FAI_CHOICE(x) #endif - #define IS_FAI_FORBIDDEN(idx) (IS_FAI_ENABLED() && isFaiForbidden(idx)) +#define IS_FAI_FORBIDDEN(idx) (IS_FAI_ENABLED() && isFaiForbidden(idx)) #if defined(BLUETOOTH) #if defined(X9E) && !defined(USEHORUSBT) @@ -202,17 +202,6 @@ #define IS_SLAVE_TRAINER() (g_model.trainerMode == TRAINER_MODE_SLAVE) #endif - #define MASTER_VOLUME - -#if !defined(CPUM64) && !defined(ACCURAT_THROTTLE_TIMER) - // code cost is about 16 bytes for higher throttle accuracy for timer - // would not be noticable anyway, because all version up to this change had only 16 steps; - // now it has already 32 steps; this define would increase to 128 steps - #if !defined(ACCURAT_THROTTLE_TIMER) - #define ACCURAT_THROTTLE_TIMER - #endif -#endif - // RESX range is used for internal calculation; The menu says -100.0 to 100.0; internally it is -1024 to 1024 to allow some optimizations #define RESX_SHIFT 10 #define RESX 1024 @@ -247,7 +236,7 @@ #include "myeeprom.h" - #define memclear(p, s) memset(p, 0, s) +#define memclear(p, s) memset(p, 0, s) void memswap(void * a, void * b, uint8_t size); @@ -338,7 +327,6 @@ typedef struct { #include "strhelpers.h" #include "gui.h" - #if !defined(SIMU) #define assert(x) #if !defined(DEBUG) @@ -480,17 +468,11 @@ enum PerOutMode { e_perout_mode_noinput = e_perout_mode_notrainer+e_perout_mode_notrims+e_perout_mode_nosticks }; - - - -// Fiddle to force compiler to use a pointer - #define FORCE_INDIRECT(ptr) - extern uint8_t mixerCurrentFlightMode; extern uint8_t lastFlightMode; extern uint8_t flightModeTransitionLast; - #define bitfield_channels_t uint32_t +typedef uint32_t bitfield_channels_t; #if defined(SIMU) inline int availableMemory() { return 1000; } @@ -506,9 +488,9 @@ void evalMixes(uint8_t tick10ms); void doMixerCalculations(); void scheduleNextMixerCalculation(uint8_t module, uint16_t period_ms); - void checkTrims(); +void checkTrims(); void perMain(); -NOINLINE void per10ms(); +void per10ms(); getvalue_t getValue(mixsrc_t i); @@ -518,9 +500,9 @@ bool getSwitch(swsrc_t swtch, uint8_t flags=0); void logicalSwitchesTimerTick(); void logicalSwitchesReset(); - void evalLogicalSwitches(bool isCurrentPhase=true); - void logicalSwitchesCopyState(uint8_t src, uint8_t dst); - #define LS_RECURSIVE_EVALUATION_RESET() +void evalLogicalSwitches(bool isCurrentPhase=true); +void logicalSwitchesCopyState(uint8_t src, uint8_t dst); +#define LS_RECURSIVE_EVALUATION_RESET() #if defined(PCBTARANIS) || defined(PCBHORUS) void getSwitchesPosition(bool startup); @@ -531,9 +513,9 @@ void logicalSwitchesReset(); extern swarnstate_t switches_states; swsrc_t getMovedSwitch(); - #define GET_MOVED_SOURCE_PARAMS uint8_t min - int8_t getMovedSource(GET_MOVED_SOURCE_PARAMS); - #define GET_MOVED_SOURCE(min, max) getMovedSource(min) +#define GET_MOVED_SOURCE_PARAMS uint8_t min +int8_t getMovedSource(GET_MOVED_SOURCE_PARAMS); +#define GET_MOVED_SOURCE(min, max) getMovedSource(min) #if defined(FLIGHT_MODES) extern uint8_t getFlightMode(); @@ -541,7 +523,7 @@ swsrc_t getMovedSwitch(); #define getFlightMode() 0 #endif - #define getTrimFlightMode(phase, idx) (phase) +#define getTrimFlightMode(phase, idx) (phase) #if defined(GVARS) extern int8_t trimGvar[NUM_TRIMS]; @@ -553,7 +535,7 @@ swsrc_t getMovedSwitch(); trim_t getRawTrimValue(uint8_t phase, uint8_t idx); int getTrimValue(uint8_t phase, uint8_t idx); - bool setTrimValue(uint8_t phase, uint8_t idx, int trim); +bool setTrimValue(uint8_t phase, uint8_t idx, int trim); #if defined(ROTARY_ENCODERS) int16_t getRotaryEncoder(uint8_t idx); @@ -575,12 +557,11 @@ extern uint16_t s_timeCumThr; extern uint16_t s_timeCum16ThrP; #if defined(OVERRIDE_CHANNEL_FUNCTION) - #define OVERRIDE_CHANNEL_UNDEFINED -4096 +#define OVERRIDE_CHANNEL_UNDEFINED -4096 extern safetych_t safetyCh[MAX_OUTPUT_CHANNELS]; #endif extern uint8_t trimsCheckTimer; - extern uint8_t trimsDisplayTimer; extern uint8_t trimsDisplayMask; @@ -590,7 +571,6 @@ extern uint8_t unexpectedShutdown; extern uint16_t maxMixerDuration; - #define DURATION_MS_PREC2(x) ((x)/20) #if defined(THRTRACE) @@ -660,22 +640,21 @@ void doLoopCommonActions(); #define BITMASK(bit) (1<<(bit)) -#if !defined(UNUSED) -#define UNUSED(x) ((void)(x)) /* to avoid warnings */ -#endif - /// returns the number of elements of an array #define DIM(arr) (sizeof((arr))/sizeof((arr)[0])) -template FORCEINLINE t min(t a, t b) { return a FORCEINLINE t max(t a, t b) { return a>b?a:b; } -template FORCEINLINE t sgn(t a) { return a>0 ? 1 : (a < 0 ? -1 : 0); } -template FORCEINLINE t limit(t mi, t x, t ma) { return min(max(mi,x),ma); } -template void SWAP(t & a, t & b) { t tmp = b; b = a; a = tmp; } +template inline t min(t a, t b) { return a inline t max(t a, t b) { return a>b?a:b; } +template inline t sgn(t a) { return a>0 ? 1 : (a < 0 ? -1 : 0); } +template inline t limit(t mi, t x, t ma) { return min(max(mi,x),ma); } +template inline void SWAP(t & a, t & b) { t tmp = b; b = a; a = tmp; } uint16_t isqrt32(uint32_t n); -#if !defined(BOOT) +#if defined(BOOT) +#define pauseMixerCalculations() +#define resumeMixerCalculations() +#else #include "tasks_arm.h" extern RTOS_MUTEX_HANDLE mixerMutex; inline void pauseMixerCalculations() @@ -687,9 +666,6 @@ inline void resumeMixerCalculations() { RTOS_UNLOCK_MUTEX(mixerMutex); } -#else -#define pauseMixerCalculations() -#define resumeMixerCalculations() #endif void generalDefault(); @@ -746,6 +722,7 @@ extern const char eeprom_stamp[]; #else extern const char vers_stamp[]; #endif + /** * Tries to find opentx version in the first 1024 byte of either firmware/bootloader (the one not running) or the buffer * @param buffer If non-null find the firmware version in the buffer instead @@ -764,16 +741,14 @@ extern uint8_t g_vbat100mV; #define g_blinkTmr10ms (*(uint8_t*)&g_tmr10ms) extern uint8_t g_beepCnt; -extern uint8_t g_beepVal[5]; #include "trainer_input.h" extern int32_t chans[MAX_OUTPUT_CHANNELS]; extern int16_t ex_chans[MAX_OUTPUT_CHANNELS]; // Outputs (before LIMITS) of the last perMain extern int16_t channelOutputs[MAX_OUTPUT_CHANNELS]; -extern uint16_t BandGap; - #define NUM_INPUTS (MAX_INPUTS) +#define NUM_INPUTS (MAX_INPUTS) int expo(int x, int k); @@ -856,13 +831,10 @@ int8_t getCurveX(int noPoints, int point); void resetCustomCurveX(int8_t * points, int noPoints); bool moveCurve(uint8_t index, int8_t shift); // TODO bool? - #define APPLY_EXPOS_EXTRA_PARAMS_INC , uint8_t ovwrIdx=0, int16_t ovwrValue=0 - #define APPLY_EXPOS_EXTRA_PARAMS , uint8_t ovwrIdx, int16_t ovwrValue - void clearInputs(); void defaultInputs(); -void applyExpos(int16_t * anas, uint8_t mode APPLY_EXPOS_EXTRA_PARAMS_INC); +void applyExpos(int16_t * anas, uint8_t mode, uint8_t ovwrIdx=0, int16_t ovwrValue=0); int16_t applyLimits(uint8_t channel, int32_t value); void evalInputs(uint8_t mode); @@ -885,7 +857,7 @@ LogicalSwitchData * lswAddress(uint8_t idx); // static variables used in evalFlightModeMixes - moved here so they don't interfere with the stack // It's also easier to initialize them here. - extern int8_t virtualInputsTrims[NUM_INPUTS]; +extern int8_t virtualInputsTrims[NUM_INPUTS]; extern int16_t anas [NUM_INPUTS]; extern int16_t trims[NUM_TRIMS]; @@ -895,17 +867,16 @@ extern uint8_t s_mixer_first_run_done; void applyDefaultTemplate(); -void incSubtrim(uint8_t idx, int16_t inc); void instantTrim(); void evalTrims(); void copyTrimsToOffset(uint8_t ch); void copySticksToOffset(uint8_t ch); void moveTrimsToOffsets(); -#define ACTIVE_PHASES_TYPE uint16_t +typedef uint16_t ACTIVE_PHASES_TYPE; #define DELAY_POS_SHIFT 0 #define DELAY_POS_MARGIN 3 -#define delayval_t int16_t +typedef int16_t delayval_t; PACK(typedef struct { uint16_t delay; int16_t now; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw @@ -984,7 +955,6 @@ uint16_t crc16(const uint8_t * ptr, uint32_t len); #define PLAY_REPEAT(x) (x) /* Range 0 to 15 */ #define PLAY_NOW 0x10 #define PLAY_BACKGROUND 0x20 -#define PLAY_INCREMENT(x) ((uint8_t)(((uint8_t)x) << 6)) /* -1, 0, 1, 2 */ enum AUDIO_SOUNDS { AUDIO_HELLO, @@ -1146,7 +1116,6 @@ union ReusableBuffer uint8_t r9mPower; } modelsetup; - // 103 bytes struct { @@ -1189,8 +1158,6 @@ union ReusableBuffer extern union ReusableBuffer reusableBuffer; -void checkFlashOnBeep(); - uint8_t zlen(const char *str, uint8_t size); bool zexist(const char *str, uint8_t size); unsigned int effectiveLen(const char * str, unsigned int size); @@ -1206,36 +1173,7 @@ char * strcat_zchar(char *dest, const char *name, uint8_t size, const char *defa #define ZEXIST(s) zexist(s, sizeof(s)) // Stick tolerance varies between transmitters, Higher is better -#if defined (PCB9XR) || defined (PCB9XR128) - #define STICK_TOLERANCE 16 -#else - #define STICK_TOLERANCE 64 -#endif - -#if defined(FRSKY_HUB) && defined(GAUGES) -enum BarThresholdIdx { - THLD_ALT, - THLD_RPM, - THLD_FUEL, - THLD_T1, - THLD_T2, - THLD_SPEED, - THLD_DIST, - THLD_GPSALT, - THLD_CELL, - THLD_CELLS_SUM, - THLD_VFAS, - THLD_CURRENT, - THLD_CONSUMPTION, - THLD_MAX, -}; - - #define FILL_THRESHOLD(idx, val) barsThresholds[idx] = (val) - -extern bar_threshold_t barsThresholds[THLD_MAX]; -#else -#define FILL_THRESHOLD(idx, val) -#endif +#define STICK_TOLERANCE 64 #if defined(TELEMETRY_FRSKY) ls_telemetry_value_t minTelemValue(source_t channel); @@ -1246,17 +1184,9 @@ extern bar_threshold_t barsThresholds[THLD_MAX]; #endif getvalue_t convert16bitsTelemValue(source_t channel, ls_telemetry_value_t value); -ls_telemetry_value_t max8bitsTelemValue(source_t channel); - -getvalue_t convert8bitsTelemValue(source_t channel, ls_telemetry_value_t value); getvalue_t convertLswTelemValue(LogicalSwitchData * cs); - #define convertTelemValue(channel, value) convert16bitsTelemValue(channel, value) - #define convertBarTelemValue(channel, value) convert8bitsTelemValue(channel, value) - #define maxBarTelemValue(channel) max8bitsTelemValue(channel) - -lcdint_t applyChannelRatio(source_t channel, lcdint_t val); -#define ANA_CHANNEL_UNIT(channel) g_model.frsky.channels[channel].type +#define convertTelemValue(channel, value) convert16bitsTelemValue(channel, value) inline int div_and_round(int num, int den) { @@ -1273,11 +1203,6 @@ inline int div_and_round(int num, int den) } #if defined(TELEMETRY_FRSKY) - -extern const uint8_t bchunit_ar[]; - - #define FRSKY_MULTIPLIER_MAX 5 - enum TelemetryViews { TELEMETRY_CUSTOM_SCREEN_1, TELEMETRY_CUSTOM_SCREEN_2, @@ -1287,7 +1212,6 @@ enum TelemetryViews { }; extern uint8_t s_frsky_view; - #endif #define EARTH_RADIUSKM ((uint32_t)6371) @@ -1303,15 +1227,7 @@ void varioWakeup(); #define IS_SOUND_OFF() (g_eeGeneral.beepMode == e_mode_quiet) #endif - #define IS_IMPERIAL_ENABLE() (g_eeGeneral.imperial) - - - -#if defined(TELEMETRY_FRSKY) && defined(FRSKY_HUB) && defined(GPS) - #define IS_GPS_AVAILABLE() IS_USR_PROTO_FRSKY_HUB() -#else - #define IS_GPS_AVAILABLE() (0) -#endif +#define IS_IMPERIAL_ENABLE() (g_eeGeneral.imperial) #if defined(PCBTARANIS) extern const unsigned char logo_taranis[]; @@ -1375,7 +1291,7 @@ extern JitterMeter avgJitter[NUM_ANALOGS]; #endif #if defined(BLUETOOTH) -#include "bluetooth.h" + #include "bluetooth.h" #endif #endif // _OPENTX_H_ diff --git a/radio/src/opentx_types.h b/radio/src/opentx_types.h index 42b8333cd..13f85b38f 100644 --- a/radio/src/opentx_types.h +++ b/radio/src/opentx_types.h @@ -21,12 +21,13 @@ #ifndef _OTXTYPES_H_ #define _OTXTYPES_H_ - typedef uint32_t tmr10ms_t; - typedef int32_t rotenc_t; - typedef int32_t getvalue_t; - typedef uint32_t mixsrc_t; - typedef int32_t swsrc_t; - typedef int16_t safetych_t; - typedef uint16_t bar_threshold_t; +#include + +typedef uint32_t tmr10ms_t; +typedef int32_t rotenc_t; +typedef int32_t getvalue_t; +typedef uint32_t mixsrc_t; +typedef int32_t swsrc_t; +typedef int16_t safetych_t; #endif // _OTXTYPES_H_ diff --git a/radio/src/targets/common/arm/CMakeLists.txt b/radio/src/targets/common/arm/CMakeLists.txt index 456d338b0..8099d6d56 100644 --- a/radio/src/targets/common/arm/CMakeLists.txt +++ b/radio/src/targets/common/arm/CMakeLists.txt @@ -78,8 +78,8 @@ if(MULTIMODULE) set(SRC ${SRC} pulses/multi_arm.cpp telemetry/spektrum.cpp telemetry/flysky_ibus.cpp telemetry/multi.cpp) endif() add_definitions(-DCPUARM) -add_definitions(-DTELEMETRY_FRSKY -DTELEMETRY_FRSKY_SPORT -DFRSKY_HUB -DGPS -DPXX -DDSM2) -add_definitions(-DBOLD_FONT -DBATTGRAPH -DTHRTRACE -DGAUGES) +add_definitions(-DTELEMETRY_FRSKY -DTELEMETRY_FRSKY_SPORT -DGPS -DPXX -DDSM2) +add_definitions(-DBOLD_FONT -DBATTGRAPH -DTHRTRACE) add_definitions(-DREQUIRED_SDCARD_VERSION="${SDCARD_VERSION}") include_directories(${COOS_DIR} ${COOS_DIR}/kernel ${COOS_DIR}/portable) foreach(LANGUAGE ${TTS_LANGUAGES}) diff --git a/radio/src/targets/simu/simpgmspace.cpp b/radio/src/targets/simu/simpgmspace.cpp index 8cc45a983..1b01dd021 100644 --- a/radio/src/targets/simu/simpgmspace.cpp +++ b/radio/src/targets/simu/simpgmspace.cpp @@ -384,7 +384,6 @@ void audioConsumeCurrentBuffer() { } -#if defined(MASTER_VOLUME) void setScaledVolume(uint8_t volume) { simuAudio.currentVolume = 127 * volume * simuAudio.volumeGain / VOLUME_LEVEL_MAX / 10; @@ -399,7 +398,6 @@ int32_t getVolume() { return 0; } -#endif #if defined(SIMU_AUDIO) void copyBuffer(uint8_t * dest, const uint16_t * buff, unsigned int samples) diff --git a/radio/src/telemetry/frsky.cpp b/radio/src/telemetry/frsky.cpp index 93d421aa5..02622bfeb 100644 --- a/radio/src/telemetry/frsky.cpp +++ b/radio/src/telemetry/frsky.cpp @@ -20,10 +20,7 @@ #include "opentx.h" - - - -NOINLINE void processFrskyTelemetryData(uint8_t data) +void processFrskyTelemetryData(uint8_t data) { static uint8_t dataState = STATE_DATA_IDLE; diff --git a/radio/src/telemetry/frsky.h b/radio/src/telemetry/frsky.h index 5394b5f5e..653de2944 100644 --- a/radio/src/telemetry/frsky.h +++ b/radio/src/telemetry/frsky.h @@ -259,9 +259,8 @@ enum AlarmLevel { #define BYTESTUFF 0x7d #define STUFF_MASK 0x20 - #define frskySendAlarms() +#define frskySendAlarms() -#if defined(FRSKY_HUB) typedef enum { TS_IDLE = 0, // waiting for 0x5e frame marker TS_DATA_ID, // waiting for dataID @@ -269,7 +268,6 @@ typedef enum { TS_DATA_HIGH, // waiting for data high byte TS_XOR = 0x80 // decode stuffed byte } TS_STATE; -#endif // FrSky D Telemetry Protocol void processHubPacket(uint8_t id, int16_t value); diff --git a/radio/src/telemetry/frsky_d_arm.cpp b/radio/src/telemetry/frsky_d_arm.cpp index f6e4454cf..6264ff1ba 100644 --- a/radio/src/telemetry/frsky_d_arm.cpp +++ b/radio/src/telemetry/frsky_d_arm.cpp @@ -20,7 +20,6 @@ #include "opentx.h" -#if defined(FRSKY_HUB) void parseTelemHubByte(uint8_t byte) { static int8_t structPos; @@ -61,7 +60,6 @@ void parseTelemHubByte(uint8_t byte) state = TS_IDLE; processHubPacket(structPos, (byte << 8) + lowByte); } -#endif // #if defined(FRSKY_HUB) void frskyDProcessPacket(const uint8_t *packet) { diff --git a/radio/src/tests/timers.cpp b/radio/src/tests/timers.cpp index 9af5265ac..7e04e82cc 100644 --- a/radio/src/tests/timers.cpp +++ b/radio/src/tests/timers.cpp @@ -20,17 +20,9 @@ #include "gtests.h" - -#if defined(ACCURAT_THROTTLE_TIMER) - #define THR_100 128 // approximately 10% full throttle - #define THR_50 64 // approximately 10% full throttle - #define THR_10 13 // approximately 10% full throttle -#else - #define THR_100 32 // approximately 10% full throttle - #define THR_50 16 // approximately 10% full throttle - #define THR_10 3 // approximately 10% full throttle -#endif - +#define THR_100 128 // approximately 10% full throttle +#define THR_50 64 // approximately 10% full throttle +#define THR_10 13 // approximately 10% full throttle #define TEST_AB_EQUAL(a, b) if (a != b) { return ::testing::AssertionFailure() << \ #a "= " << (uint32_t)a << ", " << #b "= " << (uint32_t)b; }; @@ -165,13 +157,8 @@ TEST(Timers, timerThrottleRelative) EXPECT_TRUE(evalTimersForNSecondsAndTest(1, 0, 0, TMR_RUNNING, 0)); EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_100, 0, TMR_RUNNING, 100)); EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_50, 0, TMR_RUNNING, 150)); // 50% throttle == 50s -#if defined(ACCURAT_THROTTLE_TIMER) EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_10, 0, TMR_RUNNING, 160)); // 10% throttle == 10s EXPECT_TRUE(evalTimersForNSecondsAndTest(100, 0, 0, TMR_RUNNING, 160)); -#else - EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_10, 0, TMR_RUNNING, 159)); // 10% throttle == 10s - EXPECT_TRUE(evalTimersForNSecondsAndTest(100, 0, 0, TMR_RUNNING, 159)); -#endif // test down-running initModelTimer(0, TMRMODE_THR_REL, 200); @@ -180,13 +167,8 @@ TEST(Timers, timerThrottleRelative) EXPECT_TRUE(evalTimersForNSecondsAndTest(1, 0, 0, TMR_RUNNING, 199)); EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_100, 0, TMR_RUNNING, 99)); EXPECT_TRUE(evalTimersForNSecondsAndTest(200, THR_50, 0, TMR_NEGATIVE, -1)); // 50% throttle == 100s -#if defined(ACCURAT_THROTTLE_TIMER) EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_10, 0, TMR_NEGATIVE,-11)); // 10% throttle == 10s EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_100, 0, TMR_STOPPED,-111)); -#else - EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_10, 0, TMR_NEGATIVE,-10)); // 10% throttle == 10s - EXPECT_TRUE(evalTimersForNSecondsAndTest(100, THR_100, 0, TMR_STOPPED,-110)); -#endif } TEST(Timers, timerThrottleTriggered) diff --git a/radio/src/timers.cpp b/radio/src/timers.cpp index 1ebb36674..33337a2a4 100644 --- a/radio/src/timers.cpp +++ b/radio/src/timers.cpp @@ -65,11 +65,7 @@ void saveTimers() } } -#if defined(ACCURAT_THROTTLE_TIMER) - #define THR_TRG_TRESHOLD 13 // approximately 10% full throttle -#else - #define THR_TRG_TRESHOLD 3 // approximately 10% full throttle -#endif +#define THR_TRG_TRESHOLD 13 // approximately 10% full throttle void evalTimers(int16_t throttle, uint8_t tick10ms) { @@ -105,19 +101,10 @@ void evalTimers(int16_t throttle, uint8_t tick10ms) if (throttle) newTimerVal++; } else if (timerMode == TMRMODE_THR_REL) { - // @@@ open.20.fsguruh: why so complicated? we have already a s_sum field; use it for the half seconds (not showable) as well - // check for s_cnt[i]==0 is not needed because we are shure it is at least 1 - #if defined(ACCURAT_THROTTLE_TIMER) if ((timerState->sum/timerState->cnt) >= 128) { // throttle was normalized to 0 to 128 value (throttle/64*2 (because - range is added as well) newTimerVal++; // add second used of throttle timerState->sum -= 128*timerState->cnt; } - #else - if ((timerState->sum/timerState->cnt) >= 32) { // throttle was normalized to 0 to 32 value (throttle/16*2 (because - range is added as well) - newTimerVal++; // add second used of throttle - timerState->sum -= 32*timerState->cnt; - } - #endif timerState->cnt = 0; } else if (timerMode == TMRMODE_THR_TRG) { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 520c662b3..ecbcc859f 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -372,11 +372,9 @@ const char STR_AND_SWITCH[] = TR_AND_SWITCH; const char STR_SF[] = TR_SF; const char STR_GF[] = TR_GF; -#if defined(FRSKY_HUB) const char STR_MINRSSI[] = TR_MINRSSI; const char STR_LATITUDE[] = TR_LATITUDE; const char STR_LONGITUDE[] = TR_LONGITUDE; -#endif const char STR_SHUTDOWN[] = TR_SHUTDOWN; const char STR_SAVEMODEL[] = TR_SAVEMODEL; diff --git a/radio/src/translations.h b/radio/src/translations.h index 49be5d4b7..d27565317 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -585,11 +585,9 @@ extern const char STR_DISABLE_INTERNAL[]; extern const char STR_LIMIT[]; #endif -#ifdef FRSKY_HUB extern const char STR_MINRSSI[]; extern const char STR_LATITUDE[]; extern const char STR_LONGITUDE[]; -#endif extern const char STR_SHUTDOWN[]; extern const char STR_SAVEMODEL[]; diff --git a/tools/build-companion-nightly.sh b/tools/build-companion-nightly.sh index 9ff167e73..d9c3c3ac0 100755 --- a/tools/build-companion-nightly.sh +++ b/tools/build-companion-nightly.sh @@ -25,7 +25,7 @@ done SRCDIR=$1 OUTDIR=$2 -COMMON_OPTIONS="-DALLOW_NIGHTLY_BUILDS=YES -DNIGHTLY_BUILD_WARNING=YES -DGVARS=YES -DHELI=YES -DLUA=YES -DMULTIMODULE=YES -DTELEMETRY=FRSKY -DPPM_LIMITS_SYMETRICAL=YES -DVARIO=YES -DGAUGES=YES -DAUTOSWITCH=YES -DAUTOSOURCE=YES -DAUDIO=YES -DGPS=YES -DPPM_CENTER_ADJUSTABLE=YES -DFLIGHT_MODES=YES -DOVERRIDE_CHANNEL_FUNCTION=YES -DFRSKY_STICKS=YES" +COMMON_OPTIONS="-DALLOW_NIGHTLY_BUILDS=YES -DNIGHTLY_BUILD_WARNING=YES -DGVARS=YES -DHELI=YES -DLUA=YES -DMULTIMODULE=YES -DTELEMETRY=FRSKY -DPPM_LIMITS_SYMETRICAL=YES -DVARIO=YES -DAUTOSWITCH=YES -DAUTOSOURCE=YES -DAUDIO=YES -DGPS=YES -DPPM_CENTER_ADJUSTABLE=YES -DFLIGHT_MODES=YES -DOVERRIDE_CHANNEL_FUNCTION=YES -DFRSKY_STICKS=YES" if [ "$(uname)" = "Darwin" ]; then COMMON_OPTIONS="${COMMON_OPTIONS} -DCMAKE_PREFIX_PATH=~/Qt/5.7/clang_64/ -DCMAKE_OSX_DEPLOYMENT_TARGET='10.9'" fi diff --git a/tools/build-companion-release.sh b/tools/build-companion-release.sh index 87640c968..ca13c47d1 100755 --- a/tools/build-companion-release.sh +++ b/tools/build-companion-release.sh @@ -25,7 +25,7 @@ done SRCDIR=$1 OUTDIR=$2 -COMMON_OPTIONS="-DGVARS=YES -DHELI=YES -DLUA=YES -DMULTIMODULE=YES -DTELEMETRY=FRSKY -DPPM_LIMITS_SYMETRICAL=YES -DVARIO=YES -DGAUGES=YES -DAUTOSWITCH=YES -DAUTOSOURCE=YES -DAUDIO=YES -DGPS=YES -DPPM_CENTER_ADJUSTABLE=YES -DFLIGHT_MODES=YES -DOVERRIDE_CHANNEL_FUNCTION=YES -DFRSKY_STICKS=YES" +COMMON_OPTIONS="-DGVARS=YES -DHELI=YES -DLUA=YES -DMULTIMODULE=YES -DTELEMETRY=FRSKY -DPPM_LIMITS_SYMETRICAL=YES -DVARIO=YES -DAUTOSWITCH=YES -DAUTOSOURCE=YES -DAUDIO=YES -DGPS=YES -DPPM_CENTER_ADJUSTABLE=YES -DFLIGHT_MODES=YES -DOVERRIDE_CHANNEL_FUNCTION=YES -DFRSKY_STICKS=YES" if [ "$(uname)" = "Darwin" ]; then COMMON_OPTIONS="${COMMON_OPTIONS} -DCMAKE_PREFIX_PATH=~/Qt/5.7/clang_64/ -DCMAKE_OSX_DEPLOYMENT_TARGET='10.9'" fi diff --git a/tools/commit-tests.sh b/tools/commit-tests.sh index 08d3cec59..223468e4b 100755 --- a/tools/commit-tests.sh +++ b/tools/commit-tests.sh @@ -62,7 +62,7 @@ cd build if [[ " SKY9X ARM9X ALL " =~ " ${FLAVOR} " ]] ; then # OpenTX on Sky9x rm -rf * - cmake ${COMMON_OPTIONS} -DPCB=SKY9X -DHELI=YES DLUA=YES -DMULTIMODULE=YES -DTELEMETRY=FRSKY -DPPM_LIMITS_SYMETRICAL=YES -DVARIO=YES -DGAUGES=YES -DAUTOSWITCH=YES -DAUTOSOURCE=YES -DAUDIO=YES -DGPS=YES -DPPM_CENTER_ADJUSTABLE=YES -DFLIGHT_MODES=YES -DOVERRIDE_CHANNEL_FUNCTION=YES -DFRSKY_STICKS=YES -DGVARS=YES ${SRCDIR} + cmake ${COMMON_OPTIONS} -DPCB=SKY9X -DHELI=YES DLUA=YES -DMULTIMODULE=YES -DTELEMETRY=FRSKY -DPPM_LIMITS_SYMETRICAL=YES -DVARIO=YES -DAUTOSWITCH=YES -DAUTOSOURCE=YES -DAUDIO=YES -DGPS=YES -DPPM_CENTER_ADJUSTABLE=YES -DFLIGHT_MODES=YES -DOVERRIDE_CHANNEL_FUNCTION=YES -DFRSKY_STICKS=YES -DGVARS=YES ${SRCDIR} make -j${CORES} ${FIRMARE_TARGET} make -j${CORES} libsimulator make -j${CORES} gtests ; ./gtests ${TEST_OPTIONS}