More AVR removal
This commit is contained in:
@@ -23,6 +23,10 @@
|
||||
|
||||
#include <inttypes.h>
|
||||
|
||||
#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))
|
||||
|
||||
+3
-3
@@ -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[];
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-3
@@ -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);
|
||||
|
||||
+7
-53
@@ -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<uint16_t> rawJitter[NUM_ANALOGS];
|
||||
JitterMeter<uint16_t> 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.
|
||||
|
||||
+34
-118
@@ -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<class t> FORCEINLINE t min(t a, t b) { return a<b?a:b; }
|
||||
template<class t> FORCEINLINE t max(t a, t b) { return a>b?a:b; }
|
||||
template<class t> FORCEINLINE t sgn(t a) { return a>0 ? 1 : (a < 0 ? -1 : 0); }
|
||||
template<class t> FORCEINLINE t limit(t mi, t x, t ma) { return min(max(mi,x),ma); }
|
||||
template<class t> void SWAP(t & a, t & b) { t tmp = b; b = a; a = tmp; }
|
||||
template<class t> inline t min(t a, t b) { return a<b?a:b; }
|
||||
template<class t> inline t max(t a, t b) { return a>b?a:b; }
|
||||
template<class t> inline t sgn(t a) { return a>0 ? 1 : (a < 0 ? -1 : 0); }
|
||||
template<class t> inline t limit(t mi, t x, t ma) { return min(max(mi,x),ma); }
|
||||
template<class t> 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<uint16_t> avgJitter[NUM_ANALOGS];
|
||||
#endif
|
||||
|
||||
#if defined(BLUETOOTH)
|
||||
#include "bluetooth.h"
|
||||
#include "bluetooth.h"
|
||||
#endif
|
||||
|
||||
#endif // _OPENTX_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 <inttypes.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;
|
||||
|
||||
#endif // _OTXTYPES_H_
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
|
||||
+1
-14
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user