From a599e6da11b6f47498a181e891619d093b3f1f31 Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 22 Jan 2013 20:15:59 +0000 Subject: [PATCH] Issue 166 continued (2nd 3-pos switch) Issue 177 fixed (Vario range) Halcyon again selectable --- src/Makefile | 16 +++++++---- src/frsky.cpp | 4 +-- src/gruvin9x/board_gruvin9x.cpp | 14 ++++++++++ src/gruvin9x/board_gruvin9x.h | 10 ++++++- src/model_menus.cpp | 14 +++++----- src/myeeprom.h | 2 +- src/open9x.cpp | 48 ++++++++++++++++++++------------- src/open9x.h | 16 +++++------ src/sdcard.h | 24 ----------------- src/simpgmspace.h | 9 +++++++ src/sky9x/board_sky9x.h | 19 ++++++++----- src/sky9x/keys_driver.cpp | 14 ++++++++++ src/statistics_views.cpp | 14 +++++----- src/stock/board_stock.cpp | 14 ++++++++++ src/translations/cz.h | 16 +++++------ src/translations/de.h | 14 +++++----- src/translations/en.h | 19 ++++++++----- src/translations/es.h | 14 +++++----- src/translations/fr.h | 14 +++++----- src/translations/it.h | 14 +++++----- src/translations/pt.h | 16 +++++------ src/translations/se.h | 16 +++++------ src/x9d/audio_driver.cpp | 2 -- src/x9d/board_x9d.h | 27 +++++++++---------- src/x9d/diskio.cpp | 11 -------- 25 files changed, 209 insertions(+), 172 deletions(-) diff --git a/src/Makefile b/src/Makefile index 85f0bbd95..628eb6a68 100644 --- a/src/Makefile +++ b/src/Makefile @@ -344,6 +344,9 @@ CPPDEFS += -DTRANSLATIONS_$(TRANSLATIONS) # TTS language CPPDEFS += -DTTS_$(TTS) +GVARS_VARIANT = +1 +FRSKY_VARIANT = +2 +3POS_VARIANT = +4 EEPROM_VARIANT = 0 ifeq ($(UNITS), IMPERIAL) @@ -406,7 +409,7 @@ endif ifeq ($(GVARS), YES) CPPDEFS += -DGVARS - EEPROM_VARIANT += +1 + EEPROM_VARIANT += ${GVARS_VARIANT} endif # If STD-Support is enabled @@ -450,7 +453,7 @@ ifeq ($(EXT), FRSKY) ifeq ($(VARIO), YES) CPPDEFS += -DVARIO endif - EEPROM_VARIANT += +2 + EEPROM_VARIANT += ${FRSKY_VARIANT} endif ifeq ($(DEBUG), YES) @@ -719,13 +722,16 @@ ifeq ($(IRPROTOS), YES) endif ifeq ($(3POS), POT1) - CPPDEFS += -DP13POS + CPPDEFS += -DEXTRA_3POS=1 + # EEPROM_VARIANT += ${3POS_VARIANT} endif ifeq ($(3POS), POT2) - CPPDEFS += -DP23POS + CPPDEFS += -DEXTRA_3POS=2 + # EEPROM_VARIANT += ${3POS_VARIANT} endif ifeq ($(3POS), POT3) - CPPDEFS += -DP33POS + CPPDEFS += -DEXTRA_3POS=3 + # EEPROM_VARIANT += ${3POS_VARIANT} endif #---------------- Compiler Options C++ ---------------- diff --git a/src/frsky.cpp b/src/frsky.cpp index 926dc1b53..e0d89c735 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -779,7 +779,7 @@ NOINLINE void check_frsky() // conversion in cm/s do { int16_t verticalSpeed; - int16_t varioCenterMax = (int16_t)g_model.frsky.varioCenterMax * 10; + int16_t varioCenterMax = (int16_t)g_model.frsky.varioCenterMax * 10 + 50; if (frskyData.varioSpeed >= varioCenterMax) { verticalSpeed = frskyData.varioSpeed - varioCenterMax; int16_t varioMax = (10+(int16_t)g_model.frsky.varioMax) * 100; @@ -787,7 +787,7 @@ NOINLINE void check_frsky() verticalSpeed = (verticalSpeed * 10) / ((varioMax-varioCenterMax) / 100); } else { - int16_t varioCenterMin = (int16_t)g_model.frsky.varioCenterMin * 10; + int16_t varioCenterMin = (int16_t)g_model.frsky.varioCenterMin * 10 - 50; if (frskyData.varioSpeed <= varioCenterMin) { verticalSpeed = frskyData.varioSpeed - varioCenterMin; int16_t varioMin = (-10+(int16_t)g_model.frsky.varioMin) * 100; diff --git a/src/gruvin9x/board_gruvin9x.cpp b/src/gruvin9x/board_gruvin9x.cpp index ba96baed1..c33da48ae 100644 --- a/src/gruvin9x/board_gruvin9x.cpp +++ b/src/gruvin9x/board_gruvin9x.cpp @@ -220,6 +220,20 @@ bool switchState(EnumKeys enuk) result = !(PINB & (1< 0); + break; +#endif + case SW_GEA: result = PING & (1<0 || p1valdiff)) { switch (m_posHorz) { @@ -3378,10 +3378,10 @@ void menuModelTelemetry(uint8_t event) CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioMin, -7, 7); break; case 1: - CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMin, -10, min(0, g_model.frsky.varioCenterMax)); + CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMin, -15, 5+min(0, g_model.frsky.varioCenterMax+5)); break; case 2: - CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMax, max(-10, g_model.frsky.varioCenterMin), +10); + CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioCenterMax, -5+max(-10, g_model.frsky.varioCenterMin-5), +15); break; case 3: CHECK_INCDEC_MODELVAR(event, g_model.frsky.varioMax, -7, 7); diff --git a/src/myeeprom.h b/src/myeeprom.h index 6bc011566..73153be23 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -709,7 +709,7 @@ enum MixSources { MIXSRC_TrimEle, MIXSRC_TrimThr, MIXSRC_TrimAil, - MIXSRC_MAX , + MIXSRC_MAX, #if defined(PCBX9D) || defined(PCBACT) MIXSRC_SA, MIXSRC_SB, diff --git a/src/open9x.cpp b/src/open9x.cpp index 5d4313ccd..886bb05a3 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -636,25 +636,25 @@ int16_t getValue(uint8_t i) { /*srcRaw is shifted +1!*/ - if(i RESX) v = RESX; - #if defined(PCBX9D) - // TODO constants - if(i == 2 || i == 3 || i == 4 || i == 6) - v = -v; - #endif +#if defined(PCBX9D) + if (i == STICK3 || i == STICK4 || i == POT1 || i == SLIDER1) + v = -v; +#endif if (g_eeGeneral.throttleReversed && ch==THR_STICK) v = -v; +#if defined(EXTRA_3POS) + if (i == POT1+EXTRA_3POS-1) { + if (v < -RESX/2) + v = -RESX; + else if (v > +RESX/2) + v = +RESX; + else + v = 0; + } +#endif + if (i < NUM_STICKS+NUM_POTS) { calibratedStick[ch] = v; //for show in expo diff --git a/src/open9x.h b/src/open9x.h index a7d4a1bec..169935adb 100644 --- a/src/open9x.h +++ b/src/open9x.h @@ -170,15 +170,6 @@ #define CONVERT_PTR(x) ((uint32_t)(x)) #endif -/* -#define HELI_VARIANT 0x0004 -#define VOICE_VARIANT 0x0008 -#define PHASES_VARIANT 0x0010 -#define PXX_VARIANT 0x0020 -#define DSM2_VARIANT 0x0040 -#define VARIO_VARIANT 0x0080 -#define HAPTIC_VARIANT 0x0100 */ - #if defined(PCBACT) #include "act/board_act.h" #elif defined(PCBX9D) @@ -570,6 +561,11 @@ enum EnumKeys { SW_ID0, SW_ID1, SW_ID2, +#if 0 + SW_ID3, + SW_ID4, + SW_ID5, +#endif SW_AIL, SW_GEA, SW_TRN, @@ -938,7 +934,7 @@ extern uint16_t maxMixerDuration; extern uint16_t lastMixerDuration; #if defined(THRTRACE) -#define MAXTRACE 120 +#define MAXTRACE (LCD_W - 8) extern uint8_t s_traceBuf[MAXTRACE]; extern uint8_t s_traceWr; extern int8_t s_traceCnt; diff --git a/src/sdcard.h b/src/sdcard.h index 3cc34d733..fe78feaf8 100644 --- a/src/sdcard.h +++ b/src/sdcard.h @@ -73,23 +73,6 @@ inline const pm_char *SDCARD_ERROR(FRESULT result) return STR_SDCARD_ERROR; } -#if defined(SIMU) -#define sdMountPoll() -#define sdPoll10ms() -#else -extern void sdMountPoll(); -#endif - -#if defined(CPUARM) && !defined(SIMU) -extern "C" { -extern uint32_t sd_card_ready(); -extern uint32_t sdMounted(); -} -#else -#define sd_card_ready() (true) -#define sdMounted() (true) -#endif - #if defined(PCBACT) #define O9X_FOURCC 0x3478396F // o9x for ACT #elif defined(PCBX9D) @@ -100,12 +83,5 @@ extern uint32_t sdMounted(); #define O9X_FOURCC 0x3178396F // o9x for gruvin9x #endif -#if defined(PCBGRUVIN9X) || defined(SIMU) -#define SD_IS_HC() (0) -#define SD_GET_BLOCKNR() (0) -#define SD_GET_SIZE_MB() (0) -#define SD_GET_SPEED() (0) -#endif - #endif diff --git a/src/simpgmspace.h b/src/simpgmspace.h index 20035cad1..abe3a681f 100644 --- a/src/simpgmspace.h +++ b/src/simpgmspace.h @@ -362,4 +362,13 @@ inline void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct) { #define configure_pins(...) +#define sdMountPoll() +#define sdPoll10ms() +#define sd_card_ready() (true) +#define sdMounted() (true) +#define SD_IS_HC() (0) +#define SD_GET_BLOCKNR() (0) +#define SD_GET_SIZE_MB() (0) +#define SD_GET_SPEED() (0) + #endif diff --git a/src/sky9x/board_sky9x.h b/src/sky9x/board_sky9x.h index 7dbb33201..3083b1595 100644 --- a/src/sky9x/board_sky9x.h +++ b/src/sky9x/board_sky9x.h @@ -39,11 +39,6 @@ #include "board.h" #include "audio_driver.h" -extern "C" { -extern void init_SDcard(); -extern void sdInit(); -} - #if defined(REVA) #define GPIO_BUTTON_MENU PIOB->PIO_PDSR #define GPIO_BUTTON_EXIT PIOA->PIO_PDSR @@ -72,8 +67,6 @@ extern void sdInit(); #define PIN_BUTTON_LEFT 0x00000008 #endif -#define sdPoll10ms() - void usbMassStorage(); #define PIN_ENABLE 0x001 @@ -134,6 +127,18 @@ extern uint16_t sessionTimer; void setSticksGain(uint8_t gains); +// SD driver +#if !defined(SIMU) +#define sdPoll10ms() +void sdMountPoll(); +extern "C" { +void init_SDcard(); +void sdInit(); +uint32_t sd_card_ready(); +uint32_t sdMounted(); +} +#endif + // WDT driver #if !defined(SIMU) #define wdt_disable() diff --git a/src/sky9x/keys_driver.cpp b/src/sky9x/keys_driver.cpp index fbdb7f074..4152d3ff0 100644 --- a/src/sky9x/keys_driver.cpp +++ b/src/sky9x/keys_driver.cpp @@ -229,6 +229,20 @@ uint32_t switchState(EnumKeys enuk) xxx = ~c & 0x00000800; // SW_IDL2 PC11 break; +#if 0 + case SW_ID3: + result = (calibratedStick[POT1+EXTRA_3POS-1] < 0); + break; + + case SW_ID4: + result = (calibratedStick[POT1+EXTRA_3POS-1] == 0); + break; + + case SW_ID5: + result = (calibratedStick[POT1+EXTRA_3POS-1] > 0); + break; +#endif + case SW_GEA: xxx = c & 0x00010000; // SW_GEAR PC16 break; diff --git a/src/statistics_views.cpp b/src/statistics_views.cpp index b9d29fc0e..b1cc9f484 100644 --- a/src/statistics_views.cpp +++ b/src/statistics_views.cpp @@ -64,19 +64,17 @@ void menuStatisticsView(uint8_t event) uint8_t traceRd = (s_traceCnt < 0 ? s_traceWr : 0); const uint8_t x=5; const uint8_t y=60; - lcd_hline(x-3,y,120+3+3); + lcd_hline(x-3,y,MAXTRACE+3+3); lcd_vline(x,y-32,32+3); - for(uint8_t i=0; i<120; i+=6) - { + for (uint8_t i=0; i=MAXTRACE) traceRd=0; - if(traceRd==s_traceWr) break; + if (traceRd>=MAXTRACE) traceRd = 0; + if (traceRd==s_traceWr) break; } #endif } diff --git a/src/stock/board_stock.cpp b/src/stock/board_stock.cpp index 1aa1a5efa..581385e10 100644 --- a/src/stock/board_stock.cpp +++ b/src/stock/board_stock.cpp @@ -119,6 +119,20 @@ bool switchState(EnumKeys enuk) result = !(PINE & (1< 0); + break; +#endif + case SW_GEA: result = PINE & (1<