[all] Code refactoring

This commit is contained in:
bsongis
2012-10-04 12:41:07 +00:00
parent 2efdcf51f0
commit b5a030c9df
3 changed files with 113 additions and 169 deletions
+16 -84
View File
@@ -98,38 +98,22 @@ void displaySlider(uint8_t x, uint8_t y, uint8_t value, uint8_t attr)
#endif
enum menuGeneralSetupItems {
#if defined(RTCLOCK)
ITEM_SETUP_RTC,
#endif
IF_RTCLOCK(ITEM_SETUP_RTC)
ITEM_SETUP_BEEPER_MODE,
ITEM_SETUP_BEEPER_LENGTH,
#if defined(AUDIO)
ITEM_SETUP_SPEAKER_PITCH,
#endif
#if defined(VOICE)
ITEM_SETUP_SPEAKER_VOLUME,
#endif
#if defined(HAPTIC)
ITEM_SETUP_HAPTIC_MODE,
ITEM_SETUP_HAPTIC_LENGTH,
ITEM_SETUP_HAPTIC_STRENGTH,
#endif
#if defined(PCBSKY9X)
ITEM_SETUP_BRIGHTNESS,
#endif
IF_AUDIO(ITEM_SETUP_SPEAKER_PITCH)
IF_VOICE(ITEM_SETUP_SPEAKER_VOLUME)
IF_HAPTIC(ITEM_SETUP_HAPTIC_MODE)
IF_HAPTIC(ITEM_SETUP_HAPTIC_LENGTH)
IF_HAPTIC(ITEM_SETUP_HAPTIC_STRENGTH)
IF_PCBSKY9X(ITEM_SETUP_BRIGHTNESS)
ITEM_SETUP_CONTRAST,
ITEM_SETUP_BATTERY_WARNING,
#if defined(PCBSKY9X)
ITEM_SETUP_CAPACITY_WARNING,
ITEM_SETUP_TEMPERATURE_WARNING,
#endif
IF_PCBSKY9X(ITEM_SETUP_CAPACITY_WARNING)
IF_PCBSKY9X(ITEM_SETUP_TEMPERATURE_WARNING)
ITEM_SETUP_INACTIVITY_ALARM,
#if defined(BLUETOOTH)
ITEM_SETUP_BT_BAUDRATE,
#endif
#if defined(ROTARY_ENCODERS)
ITEM_SETUP_RE_NAVIGATION,
#endif
IF_BLUETOOTH(ITEM_SETUP_BT_BAUDRATE)
IF_ROTARY_ENCODERS(ITEM_SETUP_RE_NAVIGATION)
ITEM_SETUP_FILTER_ADC,
ITEM_SETUP_THROTTLE_REVERSED,
ITEM_SETUP_MINUTE_BEEP,
@@ -137,15 +121,11 @@ enum menuGeneralSetupItems {
ITEM_SETUP_FLASH_BEEP,
ITEM_SETUP_BACKLIGHT_MODE,
ITEM_SETUP_BACKLIGHT_DELAY,
#if defined(SPLASH)
ITEM_SETUP_DISABLE_SPLASH,
#endif
IF_SPLASH(ITEM_SETUP_DISABLE_SPLASH)
ITEM_SETUP_MEMORY_WARNING,
ITEM_SETUP_ALARM_WARNING,
#if defined(FRSKY)
ITEM_SETUP_TIMEZONE,
ITEM_SETUP_GPSFORMAT,
#endif
IF_FRSKY(ITEM_SETUP_TIMEZONE)
IF_FRSKY(ITEM_SETUP_GPSFORMAT)
ITEM_SETUP_RX_CHANNEL_ORD,
ITEM_SETUP_STICK_MODE_LABELS,
ITEM_SETUP_STICK_MODE,
@@ -154,53 +134,7 @@ enum menuGeneralSetupItems {
void menuGeneralSetup(uint8_t event)
{
#ifdef RTCLOCK
#define RTC_ZEROS 5,
#else
#define RTC_ZEROS
#endif
#ifdef AUDIO
#define AUDIO_ZEROS 0,
#else
#define AUDIO_ZEROS
#endif
#ifdef VOICE
#define VOICE_ZEROS 0,
#else
#define VOICE_ZEROS
#endif
#ifdef HAPTIC
#define HAPTIC_ZEROS 0, 0, 0,
#else
#define HAPTIC_ZEROS
#endif
#ifdef SPLASH
#define SPLASH_ZEROS 0,
#else
#define SPLASH_ZEROS
#endif
#ifdef FRSKY
#define FRSKY_ZEROS 0, 0,
#else
#define FRSKY_ZEROS
#endif
#ifdef PCBSKY9X
#define ARM_ZEROS 0, 0, 0,
#else
#define ARM_ZEROS
#endif
#ifdef BLUETOOTH
#define BLUETOOTH_ZEROS 0,
#else
#define BLUETOOTH_ZEROS
#endif
#ifdef ROTARY_ENCODERS
#define ROTARY_ENCODERS_ZEROS 0,
#else
#define ROTARY_ENCODERS_ZEROS
#endif
MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, RTC_ZEROS 0, 0, AUDIO_ZEROS VOICE_ZEROS HAPTIC_ZEROS ARM_ZEROS 0, 0, 0, BLUETOOTH_ZEROS ROTARY_ENCODERS_ZEROS 0, 0, 0, 0, 0, 0, 0, SPLASH_ZEROS 0, 0, FRSKY_ZEROS 0, (uint8_t)-1, 1});
MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, IF_RTCLOCK(5) 0, 0, IF_AUDIO(0) IF_VOICE(0) IF_HAPTIC(0) IF_HAPTIC(0) IF_HAPTIC(0) IF_PCBSKY9X(0) 0, 0, IF_PCBSKY9X(0) IF_PCBSKY9X(0) 0, IF_BLUETOOTH(0) IF_ROTARY_ENCODERS(0) 0, 0, 0, 0, 0, 0, 0, IF_SPLASH(0) 0, 0, IF_FRSKY(0) IF_FRSKY(0) 0, (uint8_t)-1, 1});
uint8_t sub = m_posVert - 1;
@@ -431,7 +365,7 @@ void menuGeneralSetup(uint8_t event)
if(attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.lightAutoOff, 0, 600/5);
break;
#ifdef SPLASH
#if defined(SPLASH)
case ITEM_SETUP_DISABLE_SPLASH:
{
uint8_t b = 1-g_eeGeneral.disableSplashScreen;
@@ -519,8 +453,6 @@ void menuGeneralSdManagerInfo(uint8_t event)
lcd_putsLeft(5*FH, PSTR("Speed:"));
lcd_outdezAtt(10*FW, 5*FH, SD_GET_SPEED()/1000, LEFT);
lcd_puts(lcdLastPos, 5*FH, "kb/s");
// lcd_putsLeft(7*FH, PSTR("CSD:"));
}
void menuGeneralSdManager(uint8_t event)
+19 -84
View File
@@ -40,26 +40,16 @@
enum EnumTabModel {
e_ModelSelect,
e_Model,
#ifdef HELI
e_Heli,
#endif
#ifdef FLIGHT_PHASES
e_PhasesAll,
#endif
IF_HELI(e_Heli)
IF_FLIGHT_PHASES(e_PhasesAll)
e_ExposAll,
e_MixAll,
e_Limits,
#ifdef CURVES
e_CurvesAll,
#endif
IF_CURVES(e_CurvesAll)
e_CustomSwitches,
e_FunctionSwitches,
#ifdef FRSKY
e_Telemetry,
#endif
#ifdef TEMPLATES
e_Templates
#endif
IF_FRSKY(e_Telemetry)
IF_TEMPLATES(e_Templates)
};
void menuModelSelect(uint8_t event);
@@ -87,26 +77,16 @@ void menuModelExpoOne(uint8_t event);
const MenuFuncP_PROGMEM menuTabModel[] PROGMEM = {
menuModelSelect,
menuModelSetup,
#ifdef HELI
menuModelHeli,
#endif
#ifdef FLIGHT_PHASES
menuModelPhasesAll,
#endif
IF_HELI(menuModelHeli)
IF_FLIGHT_PHASES(menuModelPhasesAll)
menuModelExposAll,
menuModelMixAll,
menuModelLimits,
#ifdef CURVES
menuModelCurvesAll,
#endif
IF_CURVES(menuModelCurvesAll)
menuModelCustomSwitches,
menuModelFunctionSwitches,
#ifdef FRSKY
menuModelTelemetry,
#endif
#ifdef TEMPLATES
menuModelTemplates
#endif
IF_FRSKY(menuModelTelemetry)
IF_TEMPLATES(menuModelTemplates)
};
#define COPY_MODE 1
@@ -1459,44 +1439,22 @@ bool swapExpoMix(uint8_t expo, uint8_t &idx, uint8_t up)
}
enum ExposFields {
#ifdef PCBSKY9X
EXPO_FIELD_NAME,
#endif
IF_PCBSKY9X(EXPO_FIELD_NAME)
EXPO_FIELD_WIDTH,
EXPO_FIELD_EXPO,
#ifdef CURVES
EXPO_FIELD_CURVE,
#endif
#ifdef FLIGHT_PHASES
EXPO_FIELD_FLIGHT_PHASE,
#endif
IF_CURVES(EXPO_FIELD_CURVE)
IF_FLIGHT_PHASES(EXPO_FIELD_FLIGHT_PHASE)
EXPO_FIELD_SWITCH,
EXPO_FIELD_SIDE,
EXPO_FIELD_MAX
};
#if defined(PCBSKY9X)
#define EXPO_ONE_ARM_ROW sizeof(ed->name),
#else
#define EXPO_ONE_ARM_ROW
#endif
#if defined(CURVES)
#define EXPO_ONE_CURVES_ROW 1,
#else
#define EXPO_ONE_CURVES_ROW
#endif
#if defined(FLIGHT_PHASES)
#define EXPO_ONE_PHASES_ROW MAX_PHASES-1,
#else
#define EXPO_ONE_PHASES_ROW
#endif
void menuModelExpoOne(uint8_t event)
{
ExpoData *ed = expoaddress(s_currIdx);
putsChnRaw(7*FW+FW/2,0,ed->chn+1,0);
SUBMENU(STR_MENUDREXPO, EXPO_FIELD_MAX, {EXPO_ONE_ARM_ROW 0, 0, EXPO_ONE_CURVES_ROW EXPO_ONE_PHASES_ROW 0 /*, ...*/});
SUBMENU(STR_MENUDREXPO, EXPO_FIELD_MAX, {IF_PCBSKY9X(sizeof(ed->name)) 0, 0, IF_CURVES(1) IF_FLIGHT_PHASES(MAX_PHASES-1) 0 /*, ...*/});
int8_t sub = m_posVert;
@@ -1577,20 +1535,14 @@ void menuModelExpoOne(uint8_t event)
}
enum MixFields {
#if defined(PCBSKY9X)
MIX_FIELD_NAME,
#endif
IF_PCBSKY9X(MIX_FIELD_NAME)
MIX_FIELD_SOURCE,
MIX_FIELD_WEIGHT,
MIX_FIELD_OFFSET,
MIX_FIELD_TRIM,
#if defined(CURVES)
MIX_FIELD_CURVE,
#endif
IF_CURVES(MIX_FIELD_CURVE)
MIX_FIELD_SWITCH,
#if defined(FLIGHT_PHASES)
MIX_FIELD_FLIGHT_PHASE,
#endif
IF_FLIGHT_PHASES(MIX_FIELD_FLIGHT_PHASE)
MIX_FIELD_WARNING,
MIX_FIELD_MLTPX,
MIX_FIELD_DELAY_UP,
@@ -1600,29 +1552,13 @@ enum MixFields {
MIX_FIELD_COUNT
};
#if defined(PCBSKY9X)
#define MIX_ONE_ARM_ROW sizeof(md2->name),
#else
#define MIX_ONE_ARM_ROW
#endif
#if defined(CURVES)
#define MIX_ONE_CURVES_ROW 1,
#else
#define MIX_ONE_CURVES_ROW
#endif
#if defined(FLIGHT_PHASES)
#define MIX_ONE_PHASES_ROW MAX_PHASES-1,
#else
#define MIX_ONE_PHASES_ROW
#endif
void menuModelMixOne(uint8_t event)
{
TITLEP(s_currCh ? STR_INSERTMIX : STR_EDITMIX);
MixData *md2 = mixaddress(s_currIdx) ;
putsChn(lcdLastPos+1*FW,0,md2->destCh+1,0);
SUBMENU_NOTITLE(MIX_FIELD_COUNT, {MIX_ONE_ARM_ROW 0, 0, 0, 1, MIX_ONE_CURVES_ROW 0, MIX_ONE_PHASES_ROW 0 /*, ...*/});
SUBMENU_NOTITLE(MIX_FIELD_COUNT, {IF_PCBSKY9X(sizeof(md2->name)) 0, 0, 0, 1, IF_CURVES(1) 0, IF_FLIGHT_PHASES(MAX_PHASES-1) 0 /*, ...*/});
int8_t sub = m_posVert;
@@ -2090,7 +2026,6 @@ enum LimitsItems {
#endif
#endif
void menuModelLimits(uint8_t event)
{
MENU(STR_MENULIMITS, menuTabModel, e_Limits, 1+NUM_CHNOUT+1, {0, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, ITEM_LIMITS_MAXROW, 0});
@@ -3050,7 +2985,7 @@ void menuModelTelemetry(uint8_t event)
}
#endif
#ifdef TEMPLATES
#if defined(TEMPLATES)
void menuModelTemplates(uint8_t event)
{
SIMPLE_MENU(STR_MENUTEMPLATES, menuTabModel, e_Templates, 1+TMPL_COUNT);
+78 -1
View File
@@ -36,13 +36,90 @@
#define MAJ_VERS 2
#define MIN_VERS 00
#define EEPROM_VARIANTS (0x00)
#include <inttypes.h>
#include <string.h>
#include <stddef.h>
#include <stdlib.h>
#define EEPROM_VARIANTS (0x00)
#if defined(PCBSKY9X)
#define IF_PCBSKY9X(x) x,
#else
#define IF_PCBSKY9X(x)
#endif
#if defined(RTCLOCK)
#define IF_RTCLOCK(x) x,
#else
#define IF_RTCLOCK(x)
#endif
#if defined(AUDIO)
#define IF_AUDIO(x) x,
#else
#define IF_AUDIO(x)
#endif
#if defined(VOICE)
#define IF_VOICE(x) x,
#else
#define IF_VOICE(x)
#endif
#if defined(HAPTIC)
#define IF_HAPTIC(x) x,
#else
#define IF_HAPTIC(x)
#endif
#if defined(SPLASH)
#define IF_SPLASH(x) x,
#else
#define IF_SPLASH(x)
#endif
#if defined(FRSKY)
#define IF_FRSKY(x) x,
#else
#define IF_FRSKY(x)
#endif
#if defined(ROTARY_ENCODERS)
#define IF_ROTARY_ENCODERS(x) x,
#else
#define IF_ROTARY_ENCODERS(x)
#endif
#if defined(BLUETOOTH)
#define IF_BLUETOOTH(x) x,
#else
#define IF_BLUETOOTH(x)
#endif
#if defined(HELI)
#define IF_HELI(x) x,
#else
#define IF_HELI(x)
#endif
#if defined(TEMPLATES)
#define IF_TEMPLATES(x) x,
#else
#define IF_TEMPLATES(x)
#endif
#if defined(FLIGHT_PHASES)
#define IF_FLIGHT_PHASES(x) x,
#else
#define IF_FLIGHT_PHASES(x)
#endif
#if defined(CURVES)
#define IF_CURVES(x) x,
#else
#define IF_CURVES(x)
#endif
#if defined(PCBSTD)
#define WDT_RESET_STOCK() wdt_reset()