diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 627a495ed..3b3574016 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -905,8 +905,8 @@ PACK(struct TrainerData { #endif #define EXTRA_GENERAL_FIELDS \ EXTRA_GENERAL_FIELDS_ARM \ - uint8_t serial2Mode:6; \ - uint8_t slidersConfig:2; \ + uint8_t serial2Mode:4; \ + uint8_t slidersConfig:4; \ uint8_t potsConfig; /* two bits per pot */\ uint8_t backlightColor; \ swarnstate_t switchUnlockStates; \ diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 6a8bffe40..e8f4ee168 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -299,35 +299,26 @@ void memswap(void * a, void * b, uint8_t size); -#if defined(PCBHORUS) - #define IS_POT_MULTIPOS(x) ((x)>=POT1 && (x)<=POT_LAST && ((g_eeGeneral.potsConfig>>(2*((x)-POT1)))&0x03)==POT_MULTIPOS_SWITCH) - #define IS_POT_WITHOUT_DETENT(x) ((x)>=POT1 && (x)<=POT_LAST && ((g_eeGeneral.potsConfig>>(2*((x)-POT1)))&0x03)==POT_WITHOUT_DETENT) +#if defined(PCBTARANIS) || defined(PCBHORUS) + #define POT_CONFIG(x) ((g_eeGeneral.potsConfig >> (2*((x)-POT1)))&0x03) + #define IS_POT_MULTIPOS(x) (IS_POT(x) && POT_CONFIG(x)==POT_MULTIPOS_SWITCH) + #define IS_POT_WITHOUT_DETENT(x) (IS_POT(x) && POT_CONFIG(x)==POT_WITHOUT_DETENT) + #define IS_SLIDER_AVAILABLE(x) ((x) == SLIDER1 || (x) == SLIDER2 || (IS_SLIDER(x) && (g_eeGeneral.slidersConfig & (0x01 << ((x)-SLIDER1))))) + #define IS_POT_AVAILABLE(x) (IS_POT(x) && POT_CONFIG(x)!=POT_NONE) + #define IS_POT_OR_SLIDER_AVAILABLE(x) (IS_POT_AVAILABLE(x) || IS_SLIDER_AVAILABLE(x)) + #define IS_MULTIPOS_CALIBRATED(cal) (cal->count>0 && cal->count=POT1 && (x)<=POT_LAST && ((g_eeGeneral.potsConfig>>(2*((x)-POT1)))&0x03)==POT_MULTIPOS_SWITCH) - #define IS_POT_WITHOUT_DETENT(x) ((x)>=POT1 && (x)<=POT_LAST && ((g_eeGeneral.potsConfig>>(2*((x)-POT1)))&0x03)==POT_WITHOUT_DETENT) -#elif defined(PCBX9DP) - #define IS_POT_MULTIPOS(x) ((x)>=POT1 && (x)<=POT_LAST && ((g_eeGeneral.potsConfig>>(2*((x)-POT1)))&0x03)==POT_MULTIPOS_SWITCH) - #define IS_POT_WITHOUT_DETENT(x) ((x)>=POT1 && (x)<=POT_LAST && ((g_eeGeneral.potsConfig>>(2*((x)-POT1)))&0x03)==POT_WITHOUT_DETENT) -#elif defined(PCBTARANIS) - #define IS_POT_MULTIPOS(x) ((x)>=POT1 && (x)<=POT_LAST && ((g_eeGeneral.potsConfig>>(2*((x)-POT1)))&0x03)==POT_MULTIPOS_SWITCH) - #define IS_POT_WITHOUT_DETENT(x) ((x)>=POT1 && (x)<=POT_LAST && ((g_eeGeneral.potsConfig>>(2*((x)-POT1)))&0x03)==POT_WITHOUT_DETENT) + #define IS_POT_OR_SLIDER_AVAILABLE(x) (true) + #define IS_MULTIPOS_CALIBRATED(cal) (false) #else #define IS_POT_MULTIPOS(x) (false) #define IS_POT_WITHOUT_DETENT(x) (true) -#endif - -#if defined(PCBTARANIS) - #define IS_POT_OR_SLIDER_AVAILABLE(x) (IS_POT(x) || IS_SLIDER(x)) -#else #define IS_POT_OR_SLIDER_AVAILABLE(x) (true) + #define IS_MULTIPOS_CALIBRATED(cal) (false) #endif -#define IS_MULTIPOS_CALIBRATED(cal) (cal->count>0 && cal->count