From 03751a1c750f55c01dc3580f4b4c4634a811f1bf Mon Sep 17 00:00:00 2001 From: bsongis Date: Thu, 22 Nov 2012 19:17:26 +0000 Subject: [PATCH] [X9D] Switches added --- src/Makefile | 6 ++++-- src/board_sky9x.cpp | 2 ++ src/general_menus.cpp | 6 ++++-- src/lcd.cpp | 11 ++++++----- src/logs.cpp | 8 ++++++++ src/myeeprom.h | 18 +++++++++++++++++ src/open9x.cpp | 9 +++++++++ src/open9x.h | 45 +++++++++++++++++++++++++++++++++++++------ src/pulses_arm.cpp | 5 +++++ src/translations.cpp | 11 +++++++++++ src/translations.h | 5 +++++ src/translations/en.h | 15 ++++++++++++--- 12 files changed, 123 insertions(+), 18 deletions(-) diff --git a/src/Makefile b/src/Makefile index 10d1a1080..ce3a9ff54 100644 --- a/src/Makefile +++ b/src/Makefile @@ -768,10 +768,11 @@ arm-stamp: @echo "#define SVN_VERS \"open9x-r$(SVNREV)\"" >> stamp-open9x-arm.txt @cat stamp-open9x-arm.txt -font.lbm: font_6x1.xbm translations/font_se.xbm translations/font_de.xbm translations/font_it.xbm translations/font_cz.xbm translations/font_fr.xbm translations/font_es.xbm +font.lbm: font_6x1.xbm font_extra_6x1.xbm translations/font_se.xbm translations/font_de.xbm translations/font_it.xbm translations/font_cz.xbm translations/font_fr.xbm translations/font_es.xbm @echo @echo "Convert font from xbm to lbm:" $(IMG2LBM) $< $@ char + $(IMG2LBM) font_extra_6x1.xbm font_extra.lbm char $(IMG2LBM) translations/font_se.xbm translations/font_se.lbm char $(IMG2LBM) translations/font_de.xbm translations/font_de.lbm char $(IMG2LBM) translations/font_it.xbm translations/font_it.lbm char @@ -779,10 +780,11 @@ font.lbm: font_6x1.xbm translations/font_se.xbm translations/font_de.xbm transla $(IMG2LBM) translations/font_fr.xbm translations/font_fr.lbm char $(IMG2LBM) translations/font_es.xbm translations/font_es.lbm char -font_dblsize.lbm: font_dblsize.xbm translations/font_dblsize_se.xbm translations/font_dblsize_de.xbm translations/font_dblsize_it.xbm translations/font_dblsize_fr.xbm translations/font_dblsize_es.xbm +font_dblsize.lbm: font_dblsize.xbm font_extra_dblsize.xbm translations/font_dblsize_se.xbm translations/font_dblsize_de.xbm translations/font_dblsize_it.xbm translations/font_dblsize_fr.xbm translations/font_dblsize_es.xbm @echo @echo "Convert font from xbm to lbm:" $(IMG2LBM) $< $@ dblsize + $(IMG2LBM) font_extra_dblsize.xbm font_extra_dblsize.lbm dblsize $(IMG2LBM) translations/font_dblsize_se.xbm translations/font_dblsize_se.lbm dblsize $(IMG2LBM) translations/font_dblsize_de.xbm translations/font_dblsize_de.lbm dblsize $(IMG2LBM) translations/font_dblsize_it.xbm translations/font_dblsize_it.lbm dblsize diff --git a/src/board_sky9x.cpp b/src/board_sky9x.cpp index 42eb091eb..251caa46a 100644 --- a/src/board_sky9x.cpp +++ b/src/board_sky9x.cpp @@ -905,6 +905,7 @@ extern uint32_t keyState(EnumKeys enuk) a = PIOA->PIO_PDSR ; c = PIOC->PIO_PDSR ; +#if !defined(PCBX9D) switch ((uint8_t) enuk) { #ifdef REVB case SW_ElevDR: @@ -957,6 +958,7 @@ extern uint32_t keyState(EnumKeys enuk) default: break; } +#endif if (xxx) { return 1; diff --git a/src/general_menus.cpp b/src/general_menus.cpp index 425be8d26..3d7c2ab59 100644 --- a/src/general_menus.cpp +++ b/src/general_menus.cpp @@ -819,9 +819,11 @@ void menuGeneralDiagKeys(uint8_t event) for(uint8_t i=0; i<9; i++) { uint8_t y = i*FH; //+FH; - if(i>(SW_ID0-SW_BASE_DIAG)) y-=FH; //overwrite ID0 +#if !defined(PCBX9D) + if(i>(SW_ID0-SW_BASE)) y-=FH; //overwrite ID0 putsSwitches(8*FW, y, i+1, 0); //ohne off,on - displayKeyState(11*FW+2, y, (EnumKeys)(SW_BASE_DIAG+i)); + displayKeyState(11*FW+2, y, (EnumKeys)(SW_BASE+i)); +#endif if (i<8) { y = i/2*FH+FH*4; diff --git a/src/lcd.cpp b/src/lcd.cpp index 567caf188..aef7129f8 100644 --- a/src/lcd.cpp +++ b/src/lcd.cpp @@ -33,9 +33,6 @@ #include "open9x.h" -#define font_5x8_x20_x7f (font) -#define font_10x16_x20_x7f (font_dblsize) - uint8_t displayBuf[DISPLAY_W*DISPLAY_H/8]; #define DISPLAY_END (displayBuf+sizeof(displayBuf)) #define ASSERT_IN_DISPLAY(p) assert((p) >= displayBuf && (p) < DISPLAY_END) @@ -78,7 +75,11 @@ void lcd_putcAtt(xcoord_t x, uint8_t y, const unsigned char c, uint8_t mode) { uint8_t *p = &displayBuf[ y / 8 * DISPLAY_W + x ]; - const pm_uchar *q = &font_5x8_x20_x7f[(c-0x20)*5+4]; +#if defined(PCBX9D) + const pm_uchar *q = (c < 0xC0) ? &font[(c-0x20)*5+4] : &font_extra[(c-0xC0)*5+4]; +#else + const pm_uchar *q = &font[(c-0x20)*5+4]; +#endif bool inv = false; if (mode & BLINK) { @@ -96,7 +97,7 @@ void lcd_putcAtt(xcoord_t x, uint8_t y, const unsigned char c, uint8_t mode) if (mode & DBLSIZE) { /* each letter consists of ten top bytes followed by * by ten bottom bytes (20 bytes per * char) */ - q = &font_10x16_x20_x7f[((uint16_t)c-0x20)*20]; + q = &font_dblsize[((uint16_t)c-0x20)*20]; for (int8_t i=11; i>=0; i--) { if (mode & CONDENSED && i<=1) break; uint8_t b1=0, b2=0; diff --git a/src/logs.cpp b/src/logs.cpp index 855cb36c9..75d706f04 100644 --- a/src/logs.cpp +++ b/src/logs.cpp @@ -110,7 +110,11 @@ const pm_char * openLogs() f_puts("WSHH Alt,", &g_oLogFile); #endif +#if defined(PCBX9D) + // TODO +#else f_puts("Rud,Ele,Thr,Ail,P1,P2,P3,THR,RUD,ELE,ID0,ID1,ID2,AIL,GEA,TRN\n", &g_oLogFile); +#endif } else { result = f_lseek(&g_oLogFile, f_size(&g_oLogFile)); // append @@ -191,6 +195,9 @@ void writeLogs() } #endif +#if defined(PCBX9D) + // TODO +#else for (uint8_t i=0; inoExpo ? rawAnas[k] : anas[k]; //Switch is on. MAX=FULL=512 or value. else if (k>=MIXSRC_CH1-1 && k<=MIXSRC_CH16-1 && k-MIXSRC_CH1+1destCh) // if we've already calculated the value - take it instead v = chans[k-MIXSRC_CH1+1] / 100; +#if defined(PCBX9D) + // TODO +#else else if (k>=MIXSRC_THR-1 && k<=MIXSRC_SWC-1) { v = getSwitch(k-MIXSRC_THR+1+1, 0) ? +1024 : -1024; if (v<0 && !md->swtch) @@ -2319,6 +2327,7 @@ void perOut(uint8_t mode, uint8_t tick10ms) else { v = getValue(k <= MIXSRC_3POS ? k : k-MAX_SWITCH); } +#endif } //========== DELAYS =============== diff --git a/src/open9x.h b/src/open9x.h index 4d2be3c6d..da4d17be7 100644 --- a/src/open9x.h +++ b/src/open9x.h @@ -438,9 +438,35 @@ enum EnumKeys { BTN_REa, BTN_REb, #endif + + NUM_KEYS, + SW_BASE=NUM_KEYS, + //SW_NC, //SW_ON, - SW_ThrCt, +#if defined(PCBX9D) + SW_SA=SW_BASE, + SW_SB0, + SW_SB1, + SW_SB2, + SW_SC0, + SW_SC1, + SW_SC2, + SW_SD0, + SW_SD1, + SW_SD2, + SW_SE0, + SW_SE1, + SW_SE2, + SW_SF0, + SW_SF1, + SW_SF2, + SW_SG0, + SW_SG1, + SW_SG2, + SW_SH, +#else + SW_ThrCt=SW_BASE, SW_RuddDR, SW_ElevDR, SW_ID0, @@ -449,7 +475,7 @@ enum EnumKeys { SW_AileDR, SW_Gear, SW_Trainer, - NUM_KEYS = SW_ThrCt +#endif }; #if defined(PCBX9D) @@ -531,18 +557,25 @@ enum CswFunctions { #define CS_VDIFF 3 #define CS_STATE(x) ((x)