From 10a29a676e2a64740c1f385e3d52a42f2d1acf11 Mon Sep 17 00:00:00 2001 From: bsongis Date: Tue, 10 Apr 2012 18:20:51 +0000 Subject: [PATCH] Bug in Mixer when offset used with a switch + slow down GPS displayed as ---- when there has no fixed received since beginning No Custom telemetry screen displayed when nothing to display Marks at -100 and +100 when editing a value RSSI alarms 1 + 2 labels were wrong ANAS menu redesigned 60 models on ersky9x board Current calibration on ersky9x board --- src/board_ersky9x.cpp | 23 +++++++++++++++++ src/board_ersky9x.h | 2 ++ src/eeprom_arm.cpp | 26 -------------------- src/frsky.cpp | 52 ++++++++++++++++++++++++--------------- src/general_menus.cpp | 42 +++++++++++++++++++++---------- src/lcd.cpp | 2 +- src/menus.cpp | 6 ++--- src/menus.h | 4 +++ src/model_menus.cpp | 21 ++++++++-------- src/myeeprom.h | 7 ++++++ src/o9xstrings.cpp | 2 ++ src/o9xstrings.h | 2 ++ src/open9x.cpp | 14 ++++++++--- src/open9x.h | 21 +++++++++++++--- src/open9x.hex.zip | Bin 0 -> 69317 bytes src/simpgmspace.cpp | 5 ++++ src/simu.cpp | 39 +++++++++++++++++++++-------- src/statistics_views.cpp | 52 +++++++++++++++++---------------------- src/translations/en.h | 20 ++++++++------- src/translations/fr.h | 20 ++++++++------- src/translations/se.h | 22 +++++++++-------- 21 files changed, 234 insertions(+), 148 deletions(-) create mode 100644 src/open9x.hex.zip diff --git a/src/board_ersky9x.cpp b/src/board_ersky9x.cpp index 8d27c131c..486ac345c 100644 --- a/src/board_ersky9x.cpp +++ b/src/board_ersky9x.cpp @@ -951,6 +951,7 @@ extern uint32_t keyState(EnumKeys enuk) uint16_t Analog_values[NUMBER_ANALOG] ; uint16_t Temperature ; // Raw temp reading +uint16_t maxTemperature ; // Raw temp reading // Read 8 (9 for REVB) ADC channels // Documented bug, must do them 1 by 1 @@ -990,6 +991,9 @@ void read_9_adc() #endif Temperature = ( Temperature * 7 + ADC->ADC_CDR15 ) >> 3 ; // Filter it + if ( Temperature > maxTemperature ) { + maxTemperature = Temperature ; + } // Power save // PMC->PMC_PCER0 &= ~0x20000000L ; // Disable peripheral clock to ADC @@ -1157,3 +1161,22 @@ void usb_mode() disable_ssc() ; sam_boot() ; } + +#if defined(REVB) +uint16_t getCurrent() +{ + static uint16_t Current ; + static uint32_t Current_sum ; + static uint8_t Current_count ; + + Current_sum += anaIn(NUMBER_ANALOG-1); + if ( ++Current_count > 49 ) { + Current = Current_sum / 5 ; + Current_sum = 0 ; + Current_count = 0 ; + } + + uint32_t current_scale = 488 + g_eeGeneral.currentCalib ; + return (current_scale * Current) / 8192; +} +#endif diff --git a/src/board_ersky9x.h b/src/board_ersky9x.h index 9e3d36402..31b43b4bc 100644 --- a/src/board_ersky9x.h +++ b/src/board_ersky9x.h @@ -26,5 +26,7 @@ #define PIN_HIGH 0x100 void configure_pins( uint32_t pins, uint16_t config ); +uint16_t getCurrent(); extern uint16_t Temperature ; // Raw temp reading +extern uint16_t maxTemperature ; // Raw temp reading diff --git a/src/eeprom_arm.cpp b/src/eeprom_arm.cpp index b8affab6a..e526d3134 100644 --- a/src/eeprom_arm.cpp +++ b/src/eeprom_arm.cpp @@ -50,16 +50,6 @@ struct t_file_entry File_system[MAX_MODELS+1] ; char ModelNames[MAX_MODELS][sizeof(g_model.name)] ; // Allow for general - -//static uint32_t Eeprom_image_updated ; // Ram image changed -//static uint32_t Eeprom_sequence_no ; // Ram image changed -//static uint8_t Current_eeprom_block ; // 0 or 1 is active block -//static uint8_t Other_eeprom_block_blank ; -//static uint8_t Eeprom_process_state ; -//static uint8_t Eeprom_process_sub_no ; // Used to manage writes -//static uint8_t Eeprom_write_pending ; -//static uint8_t Eeprom_writing_block_no ; - // TODO check everything here uint8_t Eeprom32_process_state ; uint8_t Eeprom32_state_after_erase ; @@ -70,26 +60,10 @@ uint8_t *Eeprom32_source_address ; uint32_t Eeprom32_address ; uint32_t Eeprom32_data_size ; - -uint16_t General_timer ; -uint16_t Model_timer ; -uint32_t Update_timer ; - - -// States in Eeprom_process_state -#define E_IDLE 1 -//#define E_ERASESENDING 2 -//#define E_ERASEWAITING 3 -//#define E_WRITESENDING 4 -//#define E_WRITEWAITING 5 -//#define E_32ACTIVE 6 - // TODO use these constants everywhere #define EE_WAIT 0 #define EE_NO_WAIT 1 -//#define E32_READING 10 // Set elsewhere as a lock - void eeDirty(uint8_t msk) { s_eeDirtyMsk |= msk; diff --git a/src/frsky.cpp b/src/frsky.cpp index 7a8a4b253..170a465c6 100644 --- a/src/frsky.cpp +++ b/src/frsky.cpp @@ -853,7 +853,7 @@ void putsTelemetryValue(uint8_t x, uint8_t y, int16_t val, uint8_t unit, uint8_t { lcd_outdezAtt(x, (att & DBLSIZE ? y - FH : y), val, att & (~NO_UNIT)); // TODO we could add this test inside lcd_outdezAtt! if (~att & NO_UNIT && unit != UNIT_RAW) - lcd_putsiAtt(lcd_lastPos+1, y, STR_VTELEMUNIT, unit, 0); + lcd_putsiAtt(lcd_lastPos/*+1*/, y, STR_VTELEMUNIT, unit, 0); } static const pm_uint8_t bchunit_ar[] PROGMEM = { @@ -963,27 +963,33 @@ void displayGpsTime() void displayGpsCoord(uint8_t y, char direction, int16_t bp, int16_t ap) { - if (!direction) direction = '-'; + if (frskyHubData.gpsFix >= 0) { + if (!direction) direction = '-'; - lcd_outdezAtt(10*FW, y, bp / 100, LEFT); // ddd before '.' - lcd_putc(lcd_lastPos, y, '@'); - uint8_t mn = bp % 100; - if (g_eeGeneral.gpsFormat == 0) { - lcd_putc(lcd_lastPos+FWNUM, y, direction); - lcd_outdezNAtt(lcd_lastPos+FW+FW+1, y, mn, LEFT|LEADING0, 2); // mm before '.' - lcd_vline(lcd_lastPos, y, 2); - uint16_t ss = ap * 6; - lcd_outdezAtt(lcd_lastPos+3, y, ss / 1000, LEFT); // '' - lcd_plot(lcd_lastPos, y+FH-2, 0); // small decimal point - lcd_outdezAtt(lcd_lastPos+2, y, ss % 1000, LEFT); // '' - lcd_vline(lcd_lastPos, y, 2); - lcd_vline(lcd_lastPos+2, y, 2); + lcd_outdezAtt(10*FW, y, bp / 100, LEFT); // ddd before '.' + lcd_putc(lcd_lastPos, y, '@'); + uint8_t mn = bp % 100; + if (g_eeGeneral.gpsFormat == 0) { + lcd_putc(lcd_lastPos+FWNUM, y, direction); + lcd_outdezNAtt(lcd_lastPos+FW+FW+1, y, mn, LEFT|LEADING0, 2); // mm before '.' + lcd_vline(lcd_lastPos, y, 2); + uint16_t ss = ap * 6; + lcd_outdezAtt(lcd_lastPos+3, y, ss / 1000, LEFT); // '' + lcd_plot(lcd_lastPos, y+FH-2, 0); // small decimal point + lcd_outdezAtt(lcd_lastPos+2, y, ss % 1000, LEFT); // '' + lcd_vline(lcd_lastPos, y, 2); + lcd_vline(lcd_lastPos+2, y, 2); + } + else { + lcd_outdezNAtt(lcd_lastPos+FW, y, mn, LEFT|LEADING0, 2); // mm before '.' + lcd_plot(lcd_lastPos, y+FH-2, 0); // small decimal point + lcd_outdezNAtt(lcd_lastPos+2, y, ap, LEFT|UNSIGN|LEADING0, 4); // after '.' + lcd_putc(lcd_lastPos+1, y, direction); + } } else { - lcd_outdezNAtt(lcd_lastPos+FW, y, mn, LEFT|LEADING0, 2); // mm before '.' - lcd_plot(lcd_lastPos, y+FH-2, 0); // small decimal point - lcd_outdezNAtt(lcd_lastPos+2, y, ap, LEFT|UNSIGN|LEADING0, 4); // after '.' - lcd_putc(lcd_lastPos+1, y, direction); + // no fix + lcd_puts(10*FW, y, STR_VCSWFUNC+1/*----*/); } } #endif @@ -1030,6 +1036,7 @@ void menuProcFrsky(uint8_t event) if (frskyStreaming >= 0) { if (s_frsky_view == e_frsky_custom) { // The custom view + uint8_t fields_count = 0; for (uint8_t i=0; i<4; i++) { for (uint8_t j=0; j<2; j++) { uint8_t field = getTelemCustomField(i, j); @@ -1054,6 +1061,7 @@ void menuProcFrsky(uint8_t event) } } if (field) { + fields_count++; int16_t value = getValue(CSW_CHOUT_BASE+NUM_CHNOUT+field-1); uint8_t att = (i==3 ? NO_UNIT : DBLSIZE|NO_UNIT); if (field <= TELEM_TM2) { @@ -1067,6 +1075,10 @@ void menuProcFrsky(uint8_t event) } } } + if (fields_count == 0) { + // No bars at all! + putEvent(event == EVT_KEY_BREAK(KEY_UP) ? event : EVT_KEY_BREAK(KEY_DOWN)); + } lcd_status_line(); } else if (s_frsky_view == e_frsky_bars) { @@ -1112,7 +1124,7 @@ void menuProcFrsky(uint8_t event) } if (bars_height == 13) { // No bars at all! - s_frsky_view = ((event == EVT_KEY_BREAK(KEY_UP)) ? e_frsky_custom : e_frsky_a1a2); + putEvent(event == EVT_KEY_BREAK(KEY_UP) ? event : EVT_KEY_BREAK(KEY_DOWN)); } displayRssiLine(); } diff --git a/src/general_menus.cpp b/src/general_menus.cpp index 2032bacc7..c8ae1aa9c 100644 --- a/src/general_menus.cpp +++ b/src/general_menus.cpp @@ -635,23 +635,39 @@ void menuProcDiagKeys(uint8_t event) void menuProcDiagAna(uint8_t event) { - SIMPLE_MENU(STR_MENUANA, menuTabDiag, e_Ana, 2); +#if defined(PCBARM) && defined(REVB) +#define ANAS_ITEMS_COUNT 3 +#else +#define ANAS_ITEMS_COUNT 2 +#endif - for (uint8_t i=0; i<8; i++) { - uint8_t y=i*FH; - putsStrIdx(4*FW, y, PSTR("A"), i+1); - lcd_outhex4( 8*FW, y, anaIn(i)); - if (i<7) - lcd_outdez8(17*FW, y, (int32_t)calibratedStick[i]*100/1024); - else - putsVolts(17*FW, y, g_vbat100mV, (m_posVert==1 ? INVERS : 0)); + SIMPLE_MENU(STR_MENUANA, menuTabDiag, e_Ana, ANAS_ITEMS_COUNT); + + for (uint8_t i=0; i<7; i++) { + uint8_t y = 1+FH+(i/2)*FH; + uint8_t x = i&1 ? 64+5 : 0; + putsStrIdx(x, y, PSTR("A"), i+1, TWO_DOTS); + lcd_outhex4(x+3*FW-1, y, anaIn(i)); + lcd_outdez8(x+10*FW-1, y, (int16_t)calibratedStick[i]*25/256); } - // Display raw BandGap result (debug) - lcd_puts( 19*FW, 5*FH, STR_BG) ; - lcd_outdezAtt(21*FW, 6*FH, BandGap, 0); - lcd_outdezAtt(21*FW, 7*FH, anaIn(7)*35/512, PREC1); +#if !defined(PCBARM) + // Display raw BandGap result (debug) + lcd_puts(64+5, 1+4*FH, STR_BG); + lcd_outdezAtt(64+5+6*FW-3, 1+4*FH, BandGap, 0); +#endif + + // Voltage calibration + lcd_putsLeft(6*FH-2, STR_BATT_CALIB); + putsVolts(17*FW, 6*FH-2, g_vbat100mV, (m_posVert==1 ? INVERS : 0)); if (m_posVert==1) CHECK_INCDEC_GENVAR(event, g_eeGeneral.vBatCalib, -127, 127); + +#if defined(PCBARM) && defined(REVB) + lcd_putsLeft(7*FH-2, STR_CURRENT_CALIB); + putsTelemetryValue(17*FW, 7*FH-2, getCurrent(), UNIT_MILLIAMPS, (m_posVert==2 ? INVERS : 0)) ; + if (m_posVert==2) CHECK_INCDEC_GENVAR(event, g_eeGeneral.currentCalib, -49, 49); +#endif + } void menuProcDiagCalib(uint8_t event) diff --git a/src/lcd.cpp b/src/lcd.cpp index ed689ef10..a2da09f1f 100644 --- a/src/lcd.cpp +++ b/src/lcd.cpp @@ -443,7 +443,7 @@ void putsTime(uint8_t x,uint8_t y,int16_t tme,uint8_t att,uint8_t att2) void putsVolts(uint8_t x, uint8_t y, uint16_t volts, uint8_t att) { lcd_outdezAtt(x, y, (int16_t)volts, (~NO_UNIT) & (att | ((att&PREC2)==PREC2 ? 0 : PREC1))); - if (~att & NO_UNIT) lcd_putcAtt(lcd_lastPos, y, 'v', att); + if (~att & NO_UNIT) lcd_putcAtt(lcd_lastPos, y, 'v', att&(~INVERS)); } void putsVBat(uint8_t x, uint8_t y, uint8_t att) diff --git a/src/menus.cpp b/src/menus.cpp index db5fa1fda..6c3458357 100644 --- a/src/menus.cpp +++ b/src/menus.cpp @@ -110,10 +110,10 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui killEvents(event); AUDIO_WARNING2(); } - if(newval != val){ - if(newval==0) { + if (newval != val) { + if ((~i_flags & NO_INCDEC_MARKS) && (newval==0 || newval==-100 || newval==+100)) { pauseEvents(event); // delay before auto-repeat continues - if (newval>val) // TODO check if without AUDIO it's optimized! + if (newval>val) // without AUDIO it's optimized, because the 2 sounds are the same AUDIO_KEYPAD_UP(); else AUDIO_KEYPAD_DOWN(); diff --git a/src/menus.h b/src/menus.h index 81fcd9cb8..0b7c6c47a 100644 --- a/src/menus.h +++ b/src/menus.h @@ -97,6 +97,10 @@ extern int16_t p1valdiff; extern int8_t checkIncDec_Ret; // global helper vars extern int8_t s_editMode; // global editmode +// checkIncDec flags +#define EE_GENERAL 0x01 +#define EE_MODEL 0x02 +#define NO_INCDEC_MARKS 0x04 int16_t checkIncDec(uint8_t event, int16_t i_pval, int16_t i_min, int16_t i_max, uint8_t i_flags); int8_t checkIncDecModel(uint8_t event, int8_t i_val, int8_t i_min, int8_t i_max); int8_t checkIncDecGen(uint8_t event, int8_t i_val, int8_t i_min, int8_t i_max); diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 338843ee8..84da621dc 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -172,7 +172,7 @@ void menuProcModelSelect(uint8_t event) // no break case EVT_KEY_BREAK(KEY_EXIT): if (s_copyMode) { - sub = m_posVert = (s_copyMode == MOVE_MODE || s_copySrcRow<0) ? (16+sub+s_copyTgtOfs) % 16 : s_copySrcRow; // TODO reset s_copySrcRow? + sub = m_posVert = (s_copyMode == MOVE_MODE || s_copySrcRow<0) ? (MAX_MODELS+sub+s_copyTgtOfs) % MAX_MODELS : s_copySrcRow; // TODO reset s_copySrcRow? s_copyMode = 0; // TODO only this one? s_copySrcRow = -1; s_copyTgtOfs = 0; @@ -191,7 +191,7 @@ void menuProcModelSelect(uint8_t event) displayPopup(s_copyMode==COPY_MODE ? STR_COPYINGMODEL : STR_MOVINGMODEL); eeCheck(true); // force writing of current model data before this is changed - uint8_t cur = (16 + sub + s_copyTgtOfs) % 16; + uint8_t cur = (MAX_MODELS + sub + s_copyTgtOfs) % MAX_MODELS; if (s_copyMode == COPY_MODE) { if (!eeCopyModel(cur, s_copySrcRow)) @@ -201,7 +201,7 @@ void menuProcModelSelect(uint8_t event) s_copySrcRow = g_eeGeneral.currModel; // to update the currModel value while (sub != cur) { uint8_t src = cur; - cur = (s_copyTgtOfs > 0 ? cur+15 : cur+1) % 16; + cur = (s_copyTgtOfs > 0 ? cur+15 : cur+1) % MAX_MODELS; eeSwapModels(src, cur); if (src == s_copySrcRow) s_copySrcRow = cur; @@ -250,7 +250,7 @@ void menuProcModelSelect(uint8_t event) case EVT_KEY_FIRST(KEY_DOWN): if (s_copyMode) { int8_t next_ofs = (_event == EVT_KEY_FIRST(KEY_UP) ? s_copyTgtOfs+1 : s_copyTgtOfs-1); - if (next_ofs == 16 || next_ofs == -16) + if (next_ofs == MAX_MODELS || next_ofs == -MAX_MODELS) next_ofs = 0; if (s_copySrcRow < 0 && s_copyMode==COPY_MODE) { @@ -298,13 +298,13 @@ void menuProcModelSelect(uint8_t event) k = sub + s_copyTgtOfs; } } - else if (s_copyTgtOfs < 0 && ((k < sub && k >= sub+s_copyTgtOfs) || (k-16 < sub && k-16 >= sub+s_copyTgtOfs))) + else if (s_copyTgtOfs < 0 && ((k < sub && k >= sub+s_copyTgtOfs) || (k-MAX_MODELS < sub && k-MAX_MODELS >= sub+s_copyTgtOfs))) k += 1; - else if (s_copyTgtOfs > 0 && ((k > sub && k <= sub+s_copyTgtOfs) || (k+16 > sub && k+16 <= sub+s_copyTgtOfs))) + else if (s_copyTgtOfs > 0 && ((k > sub && k <= sub+s_copyTgtOfs) || (k+MAX_MODELS > sub && k+MAX_MODELS <= sub+s_copyTgtOfs))) k += 15; } - k %= 16; + k %= MAX_MODELS; if (eeModelExists(k)) { #if defined(PCBARM) @@ -1851,6 +1851,7 @@ void menuProcTelemetry(uint8_t event) case EVT_KEY_BREAK(KEY_RIGHT): if (s_editMode>0 && sub<=13) FRSKY_setModelAlarms(); // update Fr-Sky module when edit mode exited + break; } blink = (s_editMode>0) ? BLINK|INVERS : INVERS ; @@ -1860,7 +1861,7 @@ void menuProcTelemetry(uint8_t event) for (int i=0; i<2; i++) { if(s_pgOfs0 || p1valdiff)) { if (m_posHorz == 0) { uint16_t ratio = checkIncDec(event, g_model.frsky.channels[i].ratio, 0, 256, EE_MODEL); @@ -1939,7 +1940,7 @@ void menuProcTelemetry(uint8_t event) for (int j=0; j<2; j++) { if(s_pgOfs on) swTog = !swOn[i]; if (s_perout_mode == e_perout_mode_normal) { @@ -1561,7 +1567,7 @@ void perOut(uint8_t phase) if (!has_delay) { if (md->speedDown) { if (md->mltpx==MLTPX_REP) continue; - if (md->swtch) v = 0; + if (md->swtch) { v = 0; apply_offset = false; } } else if (md->swtch) { continue; @@ -1570,7 +1576,7 @@ void perOut(uint8_t phase) } //========== OFFSET =============== - if(md->sOffset) v += calc100toRESX(md->sOffset); + if (apply_offset && md->sOffset) v += calc100toRESX(md->sOffset); //========== SPEED =============== if (s_perout_mode==e_perout_mode_normal && (md->speedUp || md->speedDown)) // there are delay values diff --git a/src/open9x.h b/src/open9x.h index e0ee50a20..f1c38602b 100644 --- a/src/open9x.h +++ b/src/open9x.h @@ -570,10 +570,6 @@ void getADC_single(); void getADC_osmp(); void getADC_filt(); -// checkIncDec flags -#define EE_GENERAL 0x01 -#define EE_MODEL 0x02 - extern uint8_t s_eeDirtyMsk; #define STORE_MODELVARS eeDirty(EE_MODEL) @@ -660,6 +656,22 @@ void generalDefault(); void modelDefault(uint8_t id); void resetProto(); +#if defined(PCBARM) +inline int32_t calc100toRESX(register int8_t x) +{ + return ((uint32_t)x*655)>>6 ; +} + +inline int16_t calc1000toRESX( register int32_t x) // improve calc time by Pat MacKenzie +{ + register int32_t y = x>>5; + x+=y; + y=y>>2; + x-=y; + return x+(y>>2); + // return x + x/32 - x/128 + x/512; +} +#else extern inline int16_t calc100toRESX(int8_t x) { // return (int16_t)x*10 + x/4 - x/64; @@ -675,6 +687,7 @@ extern inline int16_t calc1000toRESX(int16_t x) x-=y; return x+(y>>2); } +#endif extern volatile uint16_t g_tmr10ms; diff --git a/src/open9x.hex.zip b/src/open9x.hex.zip new file mode 100644 index 0000000000000000000000000000000000000000..a3cce41312ea6c63d46a75ce96988f9d7c49b9a4 GIT binary patch literal 69317 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%0A>tI0Q2XJo(7lo70&~BChLMw*XbN&zf^;Wxq83|1 zkzI}YUB6O)kKsA4(Z=0tsDr+dBl%h{i;c=(@!#SJlJc>f8dJ~YD2g|@>g1{dd%Aod z&L+wZg0Tp$zki4eSRr!lC`TyNBt8jw-Dn34y=haH>0c!@E38YjToX&``n5J>gc6C%rUKFO(0?hw9Xk&FI{x(pb97--O8dx( z#9ghA?f5P1&xg29x5C}1BLz$Y?hH{;d83a=Zrd`{=MFF%3*P+yph@X^ zuCrLGK(x6II#qL5E;v>I=zJ$l)+u{v7SWf8i5`hZvD^Y}JdL1upbDwb?=%#v1R%SV zcJJfM*!RqGTXm1f2DQ<)$cyihvJbG0y_g6>?;XhE_GrHtC<`my=|kbGxjdwbPDqsZ zI=nYGjfpQW8xisJa=3WIER6b|!Y-AmLTHqw)-A!Z!YHfLc4ZzFbV8>hk~E_nyPNvU zP(+g;_zUS7vC;s2dI|~AYa|gqA_jSx{IwjV&w70k{YA=`-Z~m-6s8gZj$zy{)8;B- z?w*Nhk=Y1)BGwd5eU!2ZDT@}s_(~$_TS{To=r7U@8ctMhC$MhpmW>r@XezPi3W8NX z8+tbWv;4Z^BA{|NiW=yVHOf~ksEV_R`ZO`P3)%WDb+9KCNPY;=llZ<|8sN0h=EpIF z+ts)-afihZxB}*jfWjb5$&kC=e2YMx=h5MX5YAB`NA@9UQp{qDYR{^tf4I+lnA^qC z^!gQFA7u*{?pq`o$~T&X$!hg8()!Qu9gi^EvT2brx*?&*0|z0=;AFqMKe7q56ARjx zBX{_;<~>Y<96jtT{oUG-OLuuJ3HdV(iG-Xur0eW=TplbrH0AZ3#{do&7}G7QGQXG< z+TE{G-X0;=<1yvwyf;Os^#wlGd<0ZbCIPV7Dx?5TUE-VnBbWL@-+KQjb^J=2p`Jp2LR}Ifx43G>PAmJR>6! zz>P|`1)=%MT-PWKXo0wn`C{`cnGI5m4dc*tRkrvwGvO4B!ziW`ZhJ6V~UrXnF3)JsJt5yeo*selSfR*#f|+}@o8d*Z5wDrNAK$i ze{%oeDzjI1fED+7u!zl$ix>^3q8mdTyUIU6@ZQ4~NDSL{_6#s0OrSNC+)4HHXS6+J zYp#ZlH^oVlJSS81*Yt=sz9nh7jtGTsjyqv<;NH6ezDcB3Hb3|x(3elHL?rVt_<=zx zenEyZ#OWsrE0HM<0aSf|`T@xoF5E<4qP>rv>7PFL8xTAeh+UneKA5Rstg0popyS32 z;XSeFbwe<#AAlXuzDH~LMsZ@%CBlO9JH}Sf&u1C@p2RuKKy@VD;Scob>ynQWZ@~w(!nRph66O zkfM5hEKaUURUVDEWqQJRXo>@xXaavL?wKn20z=ZukO8C_y2Hn~b-}g)R+JKj9E!gT z4+ShZTrijRcB`Vg${53t1vT7of?t8&K2Qq|Wx5uSLvISCjUEcIL++#VN&*j7*8SY0y z|2lzlbNE|^1FHCT;=5zvAJ6^2(9_Hh!7am^>`Yx6)UNXh3~=<{{A*L@kPsqRdbven zuhx_WNx;~nw)7*RN`yK7!`T^%avm$~Uh?htKc4@s5yKn73V58|oIYxO{q_Pt-+3PD z#|st5o!^1kK|HHTrfl&5h!EzBD-YJgo;xmD&HP3{w{4;F*QQJJAMGp%`_aPpF;fU- zo7akanY^^xlY7}m1GN#{OrK?HN6dyTGHZxr)u4)KdN}k~FNzbEwR(y+`Y0DNp{ML=5`)PB5(-Z%k8s4IBCD&A#-;rrEz5H{{%=}qYh6?QdL;p-b zNIm9MNf7uK27)3N4vvj`Fth@WLvX7rb`D^GpZL71u*vMYH%hnu4Y%LwiQrxV`YMTj z?{aTFJjNOHbl^;X_3R8-pI`m_enX!kzLPj)1kFFN&E>>NhO(&Qs zT_7DhbFNwPt<5>ZiGzGZsn92Db80GFBAF2WteKcCKQddW1*TO&JJIsRYc z%y!YlDcI#gBFt%h_HEkW&(?ggrDmQOVpxLK4fstjrs|C?J&XBHU=|V1Rj1r2QsAas zL2f<(*b^hl8wES8|Jsz#OjRl&p!;7XKMH<&xVX`+N7&JM<&V zp2h0{Qb?B(e+l8;Oq{>Ans_3jItF0a!#cBRQmeS@I)BqpSYt+B`(W-CdD%%hr7xz?u8O$qauACxr%Qf3~E5%5FHS1 zk%htB-5|p#^>qXrgX>`5tWKB>NsMpHib+Fs#gE3>x<}c} zBH;zWhmeMoUM;M1w1v=a>wZrrJO(F;E?gDty;8R(qN6&-NH&bKS2M_+kj)7I^kaPk8y1%Kx~R4p)wq zH%%_!x%D%oG8!~>DSX2$p4+etut^%oYlf%8c)S%64DckT8wJ_F+q{S2b*IN zN*{5Zy#goz()QmumxF=Ceg&rfcCu6ZI!W${4ORD=;-}GlzqZL(4vD|5ADYM`8NGec zUrRoda98}23{iU<{Lv!p6YaVO`X_CLY=Ek5-j-Pkk$U|72)}WhN{v)i40=eF?*(#> z^sFciTZBo6w%*5Fsg#mBmyi~qYU(O!<6@9>cy`)Attt?eoXvT=CBhuA9W|8jJKxLt zb~?%F&~eSR_GDmQk@3S{+2q$c{u`98q{@M+7YF;XWgEM%#!~e~1O{xjoj-l! zxf<;YfB(H)ABc)1$B|}aBuR^l>33wRz5by7XDz#8%KrqdkLUWlUl55qnA!9HG$Ew3GRUq8!Y2_lSN>Ui`fk@T!rA-cVUnKqw8w z39(U}4avd@^o5s!%<-Qw!lLAzfMWc1atyRI4!6Y)aUNtb8&E%x43SgrzM0MNBKi3H zdStEcOKj&v1y)SBrto)qvrWkaqg?o`$n1Ley_C0p6g$cWcRF;jxfn#uc4%>bIU>OZ z;|5BLfxEx>MCm$4Y1lMvZ_<8#=gcNdm)w)!0D#KYcgA$I1$4NG@=vRj>SpPuMPam4 zyRY3plra=3M_#aFB$jOC%RxioCCEqxct<1l-$Wg#u4L-u$Jt4Pl_NMJkxq6RS~y~T zc|K8@PO1jqkske11>>0fcGDho^X@fNxU65TQ@_nLyq-CF^JB>_>#h{%6sgArnh$Vb zgKTyyisHYjf1oxq{P{-<{yJ-o0fFPqEWJRo`fg7A-82q++2Xm|9V$HOsbnB7?o_Jc zmHz=k`3-5M&zr%HXjp}4(Ol-25kxmesN&%vz?#chy-pvQ##>XJ~Z=1NWknVgS5?K9t@Be@>_adweVdqVe?j0Gk^5L!iY}E($5gDh~ zdMliN+DI>dAs=)5VLdq;z$z@Mcd*s?1s+V^#eI>Z;yxkMakp3ZccsUxM|M`nStkw2 zNtd3g;WXo~%c@AgSC)VwQc@LP!QMHbq)7e^J);*|3?~W$K*0vf%pZXV^`@xMbgBwv z{8jiAm5?fK^Ub@udOatzCmTlT{(~rda(IM1jqIQC>nWeNAcb=`>|Y8^OFq3`QEhTo zbqG|eJzb%B9Vd*4v{R=vGL2r+t{yUqsUdR)wnii_eEH(*1-&MYYv3N)%}y&3-6hFd zU>*HlfWrnuPagR0-Y!0LTBHZGoJQ{0h_j~rLqV;LCRN_9XFLYn%pWm<)FG_2+thH_ zXh*V*eMyLsB9Y*n3I*EgIMT_>_~CpCD1sK?G1t!7CakD5eHoz_#-#+uM475L?(3&y(60P&J3WJYT?-PC>vAC)9QJQp zKYk?1BStYE<1MDM9ERy2`emnAi>ZsMlmP{3a^~Fuln8s#H^SjA`EdlVe(#OGNA3uD zNZb>PwXys@vS9*v4XfYUtzUf8ag-XZv^5AITzvz~A@SuR2Dw*87t#mWp8`a@B(gc7 zl53{d#v15y>Kb=%^mD2MO=nv}Xx`DIHS45r18}$S{^w(sWc|gqeb!&JJcR4`Tu#0K z=&pI7py_>wggGhp6ZKJ^Ud~Fg)*a`}dfefX3+-FR80?St`p8b=Ls)k4q859w&sh#T zRD@2c{ zNeY0flldRZDfr6bu`UI-rmpRi2L2;m*rt`adYpl zx}t|O%rkiw!F~Jzx_^NzJTON+bGd?-a^n3}3XSmuxn4vUR$Bx;89d&HE|d zpfEl7R@l?KEJF5)o4fbdR4Gkb&2WM`4ik|4s<=>d^`h0hOZH_d%R`@=rd1W>*uVy8 z2RW}|wrb)Al$h7=ui;y*c(~$jYBszIwCWWS8*?ez;8;58((|fHxULpg%4yP*jzw_wEaRNHM| zh6|{&1-oWo1NvH0XrxV#hR>rr|4{c~D1y%|%@94Ec9^#}>WuhXlt_`gX;vcNy`(ZC zNiSICM5kNo9m{e|p%0dETK1Hzx;UZuw(7YLPH-42#)eW@TR0=bZf#99uz#0%&gp8_ z-g`;jq1V}Croo)M^lXcG)l8CGw8kQ=i zes4Lnzp>Qdk?PQu*Z`KItMV2JUZ?*yq^k<;obY_w@apqOoy8jcYT`2jlqs4T0%9mu z6jb>xTyS68GyleWU2i9pD->MAqxTfJ!GPX=PYE%mT3Gi^=ef^NGvN?qOJnq5*p+*D*N&6Ca|%8wg*He$e}dHldH54mAT8 zfqcZMrn8W2)-+D36SIto#d{Yn?Wy#H;#j}Fo-yEH2{vPXo$S_5EOiBUw;|jAH-Dn4 z*}6gH(ifr1*h=h+jKkid?31hLNUQhf>z(&L1deXPI;P`;j3R%Ef~MiV$RQDoQROh7 ziK0Wlhvs;(!n|m-lRv6$%sCS~nE+H%!h^kAXOUkk`l8A)(o_6+l0ob{`Hy<5((k7%X*rsYoHc-y+sVR;y$B3*~xIc4{ydc;=|;GzQ4zSrmpO4%RT zACl$)+6sq>wC{4i$pjUqSB?E&Bd@~gde@}4m=;=VNVQ%6;T-<~CXxwn2zhnT{vc~b zNnS8H2WH2!Z)okO6F!hghh}oh(Q%6UBeAQ=jXnwK&2j{N+I>lX>Gg&fW&kzwBJFMG zu5?!PW$wC%wpSJc|H%ZiI3`DADlz(v%!Ln&lSI|70BzS|5)t^SReSEE@#%k(pICEj zcOa>j^H2cVd}9}A_%6Z%T^D`mKufU;IxBs2FX_SgVbnA_Ec@`fT~a40R5rJBxuW+e z9YTt6$c5VQv4tl_^L|_zSlHd<#ZO2Zf7i@|%p`@-sbm1H7#+b~M(rr*z2(pj;dY&t zC?j;_soUZ+AX$wltdT;cGb>HT^ST$D0X5rC(4KC&@uB_X;nO_@G!9`r?CVcoR2{P< zzLAecctu~Kexqb3n<9h1f62IR(O4kFC+O1a)&m9svC9%3Z|`(`@6N z6~##I4#@{Pm8%NpM$X>yn6(m&81hj3UWo&zi---8nU`1zjmTl?1FbJGmzj?=B!#}`(k>pP-X3pwA>M zyf_x?w02PgSj=mA+r?bX)yfESU+)0Jh^e*~)7* zeV*-fbn5*|RW@j(U}alz6X;M8wKsAphtD)+%y&2EB&_;3$9HmlXP1PYqTk%zxs}0--~~mH7HXcP3((bJ*j5iq&=k$XUDP7V2)l^v+}#}i`gV1X zzcTlsDk>WFU6GQyX5bIiH52Mk*{3TN9+kNO8I`_mCKD55yAJ>KZ1BgImK59dPwPI3 zG?Q3z+&{-u_6N>@K>G(Sv7H$4n1A_uH=)G~E~S5VHr06UzI+IJvT%cc2(Wp*;qnLq zrhtiBS`L4AYu7FujL(EHnYc~^2}UC(Ty(h$>Cvor5?pdAzCm*%uPo`9w6{;&9ef9n z@$}wqv`6DFO6^<^j15|O;l;aR8KZPdjuwl&aQ(5r+>%Crv z!j)q(h7o=kisQYY--8d+jD5@aRXT$TOQ4P@7S1!k(Dv|3Ce(C1U6l@b3kP{8qlt+lsOcQ~NE*GulHPB7$tVI>3yO&rL~830 z=NVw=t9|n`koK3iTEZ+@52!b)pnTJ9?s3(DYx`F`*u$$cvGG=02p;12OU;?G{P{QE zR;kGqeTmI{=8}@C0kIsz(^bH$-AQj?Q{u3Y`Ri*R-!H|hwe<@O^&Ur@D0Jv)(7M-t zJVKx!7NA~SDS{yAg(3}gE`cTVo+9Q?o@jp z7*skqfd8#=(!B@7%-~FZWdk;9_{Lm;9KgiMuVAtXk&Rvsd`nfKUqK<&VXxRC(vQ5Z)rQQq(UOpIWiR}`0=c>=2Fgqi zXC*L@*qq)_>Ky3a!=762_|kd>%S$P}%Q@J?z?7w3WcE9Y$S>XP?Q!M$ZE5Nrh`~Zf zgfHF|v-Zc&-MGv1XGqVLeFvNF08chF-~Gkad&fF<{M z@Tr;B_rzc&Ji7VjcXFCU;i4BsAIM7u{q*7qv+05gV(lXee zdi8^&{XHm{hJ^XN)A`j{K2L|66f6i*B@11k)OXs&>~ z?H`1-9#G~r<-b3vhjGEp47xsoor=Sjvq4~BHnXRpo&*z_<+=ZJddM#B$ce|3tAUv3 z+WJYXV?yKCh&%a!fYPeeQK^wcO!d9=CQ^p}haX{=yYY>Nv)1BTV}J7ZO7rA`N4G?0 z)^eq(et2$8keG1x+CX%U^aK~lh*7x{*pc#tD$RYj3a5Bpfa69dQcCrA7n~nlMu^I; z#kp*+-@@EZ`2n&0R%O*iAnnwH6^-hW6-@WJz9Og?)syGh!BVZ27PHs?EA0yF%U>MB zglc}KiC1(jcRbo#yi^>n498aa@^BOU7ac|7)6R_b0V-b`++65`8I0LWhby^MT5?qX z9a7Pe=|LzMQ|}1fgx&D;qW{EyIuYkZfZ~cO5AE!PVVffm4^V&NfcDAvwceiZiwn~q z|6&%UE&CUC0s7SGxzkIu3$dhuasH_8gU1TMB{>+rz;01P=y=mv&H>B_uW8 zQ1ApI81!=zk;!NPX{!KPUS3TI7Q1e#!zJ$41W&sdMLxK3==pWqO}>nik|CFM`yOXm z9u*m}>2n?Jj!(;04eCeo8_GP?P)^*o$9uhQwZG%F(>_MDy#$Va-u8aE$*lipn~iRURQMTUyhXR)VwmoGmy2oz})Br(|!UCy%^ zG{Uk9A$QPBG&-4X)xv#*$05HtZ47BT>m!sm`PmNV4fIum&G9Cjq}}dPpJ#P9bENpv z4MlqJ9Y-;DKNoAD%B3C3b=DW*JnQH1Q`qZ`@d#3Pj|w2=bZs0n{uZvsm=hJaXo>2P zbn+iXJtojRXe=krK=%qO|8VMfnvnn#x~ZcU`YQ6=BS?80e!XBQp3sglzal<-MKe}Y zFZ!dagdpT-(rnpGFtzF*#v>%vAJHik`~oXKVPh9!H1`%)6a3x-N;1<#dSBn)RBi?i zE*-EmrbG>kx%!%i-9=ZoY`h?_moy48%SWWNcDUDMABFoiH^>!9g#VH*d}mNqt5rul zvinyLk2=D3hqtR?{`~uPoPIrKDCv_)+K3TPjbK z*DdXZ8s8P4H9PQHC+&R z@pe+z6hvLDiMlk6?hVO5CVbJ+FS9?YCHCu@C!njx-a7K5{~~{HDYUem8{lH%_sKXS z9^FSC>kTl5_TKVSacNhFV~jp}C_h7!&zxX{LT+N@_d@7?-R3von&Y^SFr3l2 zdvvM?*?%4c|GY;L(9Oc%guq)HzWaK*6Z zH|H;5vw%&1JT*pv_L`N~$hc815NDRQrX~gPDNl=@wqh@vfAhzsLWZhGoZo5OuvVT| zAvU0FDyDl2+^K!9iN$t@movJW1#r`?IhBDUgr$*6L3+A;-`8Z*(bN^W{H3!IqIZ@# zDm>L}#2CK$b8s;}IZz-BM6hpz9I5y-H+}iz8 zsN@|uxEDwFFybLN6DO1Ozhe_`Yf)iVS=~8aQzW$LA1JeZED+D!5bDcWrRpOBUh;;< zi7CJ}W_`a8v0i0*-mOu!8pjuzsfTo|e1vd3gt;0Q!iG0ZqLU2?ULMAGD9hxOiVe@i zCj^noDS5A#DUaFDNjn$0OnA!9p~{waP4@1NpRVAEl#XsHV-=r?QX1WzrbXs!DGG&T zL{U<5k@6e_-zI9@!`{C)FDB$o*QV0#HHdF)^TZ?sO_#f^vn&f8grw!H910+g1~mGX zgbrRAz=n@%4ik?myt0YR=gA8%{e_XubgJ+|6KCueso=(k19Jr?MR)ng15U z^k>WZ{Pp{p?_U!_vgoMcWmZ&nG{R-ei@;$9J894dO}HSaHXLOe@&Fo{2xU z{~2*46~m#Po83WcJnIgzc^$mtixbcmT!1t;)qL+1^$Yc8iqXbL`lfVcEV_EIsr6zvsi1+3y~}6qZ0$IvbN8+hsj7)ICBlGhtn{JX7{YWwSjkb3Cpl}W zWi@2UdCm&_udd1ZOXXQA4?0Mk668jLNm9QQl|+s=LT#mZH?{M9O0+Z}=G$E#pSYiN z2i@nM+w0xX%?^?i!-yCSl`rks7Q_#F{qRq_nKybq3UG#S>@Ge)IPZHTN128jP7Cvt z-Y%;Z$2z7_@QO5O_8-iq{Hw!a6|lTRYU1Qc47I@y%F+*kdlPTxs81lB72KFg$yu*6 zB>tq!=a}UHxLVkQsS@Y{Es_^fRh7VL8^Rnl?;?m-^m$)|!N_XoF+Tb?cMp$*Wx|?0 zATSbWEgEq;kXo&*2Lzu2inhP=I5-L7j3kdemxpn4YG1@nMcp4K8e;wVKH;=WXZ)BT z@(#E$HaSG|f9}L|xCAVro-@P`j$xF_K_7uG$<_dNbGOmT9?z0-f< zwREg0OXgWR{j56GzPfGs0ipp13tH!``hG%XW~@fMtO4}r?(RHeXHn&`Jy>ZJ5qBpX zPUgHi_sWPC3IZtRm74C4%3{fn|Do6YG&OI?bd9s5;?3EAmI`=Sj zw(*vvVOb4j^ik0sKHuFUv*aORu%(g&r#I@l0ln;YiHf7;VtIo zg>T0w>74frve?T&aKMGwJ=y+F(p5+FsRSnpxHqpdcSs7^4-;kA#I8sL>uK2?N(&iy z3KAF8jc)UzTqb}bQfB_jCTnE!Je~T`LW%=^nfWFKkpXs>Jyo%uJo;!Q zomN;ip*4wrv|z0=6V$)gz z`Bh%eFEfBQX=J*3n0zHNMspKl--27co4j}f-R-QrU?A!jwsOJjZLs=6&_}2=rriD|7074~C>YKcMwr^qJ z3A5&JkILe>;|itp*0!SoV!)SS&Uw`t&aTQg@+NIJVx^!Ytrt9xF_d@u(oRa5(z+sY z=R2T%Uh=0s$ytsQRwLt8G+;#Qkjw;Mo+`AgPD5dejQj7WO*=(ehPk2?T=Qj}P&~eV zz~10$t(!h>WB(p3OkvauKWCQMzhs)$ER*R|%%mGC7G~n#Rv|;P1ESBNPZ7IT3O!Po zt`F)~#}OSi$X(~qLF-qh`$*W?-eTj;)J&tpDb}ei{-4#F)TR0F6Og~c@?=DlgnlhH z!@oZhVVX2&C|(c7OB5eILATp8Ce!pX1Waarqxt(E($5#`7_TN$F#+KDUz*D{%P%Q1 z3Us40xwtRslm}%ShiWDqqiX%`xy~jv_b!Hp?5MTXiGOGz6=>I*l9_zyrUkn^!ZQ>{ zLWAiVK7hmouMQUbN)5lq*Z z!XJphZGhTkD9dg9_!(h7Pg`ivVP|@FQxqEudleiYRpy4 z&qeP5@vX+HR+J0GME9nAf}`UnXxG@4NCPcGDL-iXlxcWDIGxl^B|2s=>jU&TwWYI& zkbq?F0tzp}?cYTI5n;*lF3?YA%HRD3*6YdoLBSkxrr3nql&c2>qwc&Em?Ja$=-;td z{HYVr_vNU08p>rpRm+er_kgxsj_h*Je1`zBu~Th`)n8HS5~Thj?*bXf^ti zs8<0AnoVprC(by%Mtkf5g%{Zr<|l5Zu)>IucY}`&;v_~yFFI`vGvJNlcsY^8Xy-dW zzEYW)Pet3Om%|d%3m(PeMkQ}IA&>uZ!`gEYIkuUFZpU=cC|W+MnxBVeu5wSW%%a)k ziN<&9IHr(ZH9f#&ab6x6cu(^4U46Pw0sSV7wu^t@9W2}RH3t#kFd)qujCy!ynL#~@9q4|~sZli1g%aNiAnYbM%C{L)bS+(a%ORMua zbf3fPLc#M2HyU$U#hEcoY18HB(1#uT@$W_t@T%!Tude8dCS#TyycE}p0^0u;b0S&p zct%KQ(jY~)i%*3xe$9xxrrNMfyMGmLW8tr$bI2S9B6>Oc(*f`_HKd;zT{j^Oq}%J| zIB{}iSD>q%DJ@AQ5uC-_A7}g_pSSq5qb!Xof(^)X6{=*$lT4V;D`XaU{B|kuPSnb` zA(?mPqRrGQEyhhz9r9_AP+hG94?N!)LY;aX64v3GDydjSv9W@wKgtfnIjLIL?F zdvZK&*D`I2PzmI$D&|I-#sVEP6=*$#XMI%{a`tIXTQo-+KOC_7pTB?&r5&L>eE)cw z_Od`XnrNM=Oeixy3>TIYLc%_yW(rjE-S`S*%V&M7U>vQScx~so*kJmpyam^u(514V zsRScxNcw%l9N?XoHv1-m(u6;OhHPRXVBp<#CwzzY;&`4{?K$*UEvMzDFUj*PCQu^G z0yV(@E(Q^p8}_YH#MB}McL=_;NcsP^rh9pcR8D8Y=V=F?@pf6x?_R7OMdBhhinRY4 z=9n*6j~=Hv@qGP>R*U(ZKY+8#LQW*zY)rmUY4hrPo7P;e-cs@E9*xg`1Fs`~$0==T zJy8?&1|MMjaD#&~Ve*TX{OCQOP!KTTS&PKB(J*H5qfBJqzhMg1)Wggv-l9fu5io5@ z-Ii9cb{GGl=t~{ew~X`Evh6HjH|y+9mQ#hA{goFnPXpQpBn3}mlb+qn>i#(npLl>1 zObQlvI;)Gi3M{UkoOf>hYVVqSvb*M^x4v!d2sIy5Cf}rGZvAVaG5@AkS1dZp?=353f$h)) z0aw{lvNL_IBfLZxd=Xe^VyIeQ;7fIzAW8=Dzr8P{ktc&3#U6E|qxV3phxuQx*cV8G z*P)GBs}40asG;e-)GZr%85y{2-r(Yx)LhcpJVI)W2k|7gg#NF2v}Dd5Ss3lLD5~fFb9?QkcS*dy$^hH@o@nWr)E+%x zdDRa1!-n5f2r!485ccJK>6i-Ghp}D{-l~BMQkL~{6uco_nZ5hp-E2a^Inf~NPS2Z` zf0`K927)i%iRtrBVe)^KIZgU#vAlyn4!di1@s_!bWz(?2_kX2{cbmSj7bK(9j4U~a zu3m%mB}xO4nJ zqy93YOz)iYb(XbHzQB^vnO&h;ov8}M+i9+lOKqG{^8S zCnmIvzK?$!yy18U@`hJ@;u?F%a-GK#rBfC-yTJ294Nys;!CH60QP7#I(a21hQ3mBs zjwj=pf%2(P`V%ZSAydPH_uO9_y7JYX72IIV3Go~ZoEu|*N&C?vIXbzAKRngp-|x-G z)?s(1i3Oqe9h{P^iv`J%$2>AQ8ZWsX_+)h#FCb(q$ao6PrsUXQ@XfUgzpJWP_izy6 zI>iYogd89@E2ZF;$P0+orC}j+cLLTRAmd3(4F6*;Pc=5)uR)`JNK9w0s{xX4-jCIF zQ2bfq%(>6sExjra39}DND8J#I3yq1x6zzxp;m^+^G=n$`MONsmVptKGAzUq3H_2i< z(^clmA-H)E@N{?JWIa6abOr+oYEFvgAi2gg9QGDlMHocs1%Pqs>Z$k)Y*6vlH zaUy<~CFJ!_a9!=n?h|aOs`&OktZ^;q(MIz6%wTSJClbB-V_o~Pl+G=A)&)jCsH;(! z78hDH6dpmN>Bdxo~Vm`O)Tixn=u{u zQE|*gdGtzLKb*hIcKJ?0iP9xI4BW_oXJB01HknnI-wVCU<*{0;QMk8cO2b37amCy! z#t_zcS10<;9N3Zfhd&N5c0>tZ6|9?iE7j{3rdo(4x3pDdWI1$waACd4BV2cBfLTht zOWPo%2)Yi<3LoS{Ztu%I^~`s%FQp^Vj*b&tAr2Cr!hehQ?I1m7ysjV(^?`?NZ$Gp6FK_|t%aAm=i$ z&lD=}!g$2&{Ab~;_}uC%5{+`;$Gi>XjHM)Bw`#IFx_;)AAAgR>*8zpGR~nLKBmMe@5cvQ*lvr-VG?<`Bk#2& zZ(U80_vqOqX_&v_aK4Y)<7mu0hvtTv(M<1D5@;OjnG9wUl=%ZGnn>}d6%zDh3(nCf zvrg8-4A-B}cBHeXJGScYK49(~-7dYs95C9HE*;rLw3WNFHP*7u-oY=c_Y?1j3`gqw zH7rWq>HXQ~eQYuUyLZ@%>Ub3p@|C+jm)TNF*Y~Ka$fdakJc-viMrD?!BUVUYXI`vR zOU5Q`-CO>}2%%EOOnRo6ShOY2Ru@ta+7KsdJteiDbedksXZmN6ujwwl*kj@bIzH#0 z4hMY>)9cjkl(V7Rgw)+g-0qDm|GXnk*^25`bNG5Spmn(vo{o6=p$$`7?S@y#U^c8+ zESMu)8N*)Wm#b1)@Zymg{r>xrCXULie!=x095!`#`DdWe1M-n{d7J0dF7$ zQZbtf1zV7M6il$({UV!#&zTIP2ni$V*W}VV7KpgWdn~9UZCB*v-y)lGE=#YiUFO2a zXy0SZ1$VHTwAue>VD0ZpfIIPRlm? zZf?aE8c^P8L4mj&B}HQw*{ep4{L3)e(mZ8xHXQs8ue%NS;q;BWKQI&n7t>=1OJRywKeYlA8Qk72Wk>(#+$47x4HN+(o zIcCq6ZN--FF7)*e`ptuUMfy$rU5tH}l0jCXRZEE}-SPMzW^R8(+BJQ+KVn=h8N3vz zNlaA{L9Tmrb$x-Q(>k^hTcHu<2CUvmjo5xyMXuhfJ|u_Uy*c(nBWKNsYDB}m8x>K9#x3{FYkN1=#d!>30EBNR~XMZny_fx3Z z#}EFqMZsZC&mw_|lKjN3a(Vpm(v0SJP$r4P>y$j?xw6&etH^&>^KlaP%$q%=P(OFI zO7*cd3lrySlsKzpA2A^7L75xDcB9>?d-N?!icu2d^Syf*f7+v_l-ZN=g_P0dPD<7zDK*{d96yKsvWO|$U!HZ(#L*$UE~~@De?==>4p^`~ zkR7V%uU$17kA=A#uSgN#7>Y!Eu!O7b7mOGAAPH)}*wh7@`{sBZ2L;$8(!KESm*@yH z?DT_=3(kdJxeJzxB7XDjjlZ$CuE1_h+eSxyttcbnG-xhMS+eoqu=`jsR7ctqQ_EUE zxoc@P!89^4Zn8MNxmw%#C>$~V(~LRdt-svQtL3GMA2(J&Whz=DcAC?ojE;I7 zcnCgT8qWob!^JZT^Y)A_?h1cH1&n@aH0eC}x8X?L6r3<-1rXd-)f=)Q$7Nn-HtGM& zOR>%d6l4u9AJfqXX%c!1wwon~I|GaqNg&Ykd!sH?r?^hFt}dU z(wG(&AAYEB=Sjku58sU<3YH7Jr1P;WLZ0C_5NpP-H3WHjKpCUEGflhnv~re-fk1j^*K{-gGamV*D_|A`>v7}eU17Y!{ zO;f97-gr-5{_M-0RQ>0fFeHTvVFj(O$^MVJ!r&sLPy$;FB|rO=A4s`FZgGiNAJ}G= z+v(8DEtoP!{i)pBY1L*z!9^=0eg(xVW|SZ&kV6+7cH`=i@ktS4HKr<|i|aJzQE`x! zSt_8f$6$wtz)>?b5+<);-te*?&7Z=+IT@3vz366};kCUl{I79RcO<~B64?*ck^ThD zpNKoF4IsU)gaR{~1$r5%*ZTQF#(&#($L7#*9{_?M`{XRK%r%t}{DrSo3fY!a6=oCp zeQIaK!Lrw z9r;R9V0$$`Dye)iYjs&sR0(7hUdfr2Ki~1TFsdE=(aq>ipuJk<9r5GdyvJDvivXDZcDnKq%a7souPWB^B~>Pz>DcVQ=_m zqFM0m{;m?Q^9qZk)LD}k!sK5tY%5^gcO~Sq2i3b?GY4pV2YbJV0tH4opHj!oY&sGK4fOLR?NoaD(H13W z#r;WNCB?7y&=`qe^Ps4;m5P~7QOI@M8hopVanpo4axlhN+9QD9X24NI1G~4G7{mdA30Av>VK5R9Rw~w`If*Oj z^2Ud~+mF(^6!J1cLTU@5obW$?Q6AL!JrUt8cXH}`0L?Ezh(Wjj4KWN}`Q z@{_!OJsDw$0h_8}kWJ7v{qG8^+>2uEP*V>t5V<&JuM~@_xe0dfEd@Wpdm6); zt9i^AOosIOo4hCW+XLPP3Lm(MS+`{QuH`rp3k8V*Gd5T?ne<4^+!t?(la}8@96|(l z-?W%p`>HwY+f8vRQ7Rh*|d&@L7 zRr2rE>?FZ^$KT08ru+NfX9j(Gull}!juv)a^nYnlDyT^4r%%hOd-ENuoKI44c*D_9w@tl3}>sKHW^`%?Wx zhO2@9L=r|Ct`K@#hZHZ{)Tiw*utACbvUACb`e^1H;xul+IJb5O)$zqzI$UEAR$6u7}3QGB=4S4m&KOucE!mgFXv3DIR%E965=y z`&3)7CJaS)w|>`Y#Y^WhcWou&jKJV3TUJI_6z*CTwGfPTf@8!-G9p#8|FJ+CV(u6_ zqEV?dM9DTV6qsy+saWM2!$1^CY%H2|^l7w1<;nZs4wCI2Qqmh=Z9nQS!)61Db;T{h z;7DxezFaXy0y|H=?>X$_Q*tq{m+giEyseSsFNx{;xSv8((@fV&^QGxNCqO3x>QSs% z?>pJzg=Z&*L;mesTPaCOrOc{VYwT67El_?7@ZnkZr4uU*dqzJHC&|*OO7K^Yg$qq- z`QCl~7eBsfc@jTrI^a>&K_daXHz`6qkR7JycP`7w$UOx^4p$h~?LV#}uL!We!ON$$ zNTA_AeDPjHplMDOeHI^4*l>BvO&Zc0ph+GQei*Vr5-7qU=9GF&I(E|O=845sJI;Af za4E)K;BeaXOkdTw=M|tEWY5CfE$Kf**qt>Pq0Xe(WGi#2Z!!XpBw$W)@! z#e4%3f1;9R*Y+?81;O$lTbNWSdJRcFT2UV->Z{-W$EzMxwe;D*5 z1jPY4px?@NEhax)7x^o%YX2gMhy5M>oZKw*@^JnqA2;6vac-;Z-XAmLLywOBy`}UE ztgXwJyopp{bm9JhO5DBhfks z&MR8}aSN~fm*ED9G+#9rxRI>mcZD;GYCnjSi%m%{0hiPBCOm>sk`*BjwqHi<8GOow zWQg-;6Q1e5&*IwAQY2@9{CGm6{uA+2q81Y5RON5F$Y^z*@ zkHHc)D9st#az{Dfl@bW5GcH%y6QP=&VKM4?ueMFVP&Q1S582yM;rT}Y5h5EAlLl1o znA*rX_SDbhdNiqW9-PoNiC)qZbcIp49lo-bEeDDo$e{jXUnic2wM=3>z>yiq#JwrL7Z`;0 z3&~T_Jei&o$e({d8h;SLQ*VI8xMm>576`p~QzVP?%g#zOcyRYZPbe2u720+M<#M8y z|2nf^qh4DS|F98JHu5-qtY3KuMs3N-JsYe{ET-XwGr4pp{?#i1)J!eR;VRS0OPw9t zB?6)H5KA?^oD&|P0z^K+!CoNULG$F)qfSC9dk?#%4%`1^yB80a2~i|es|r8Hzzve+ z`@_57euU4=65+5eQoMN~xG=r~r~Alw!`a%idyo^3T`<0;QX)@l; z_G~p?8mT}%ENo0n&1nRJr&%oi3>ti+eOytoCXkqgtzAzuS+{xtMUqv-bHN!W|B$qm zeujyl==lO0@@#W7kFfOKJlQko72odx3E{RsKvn9aK^Z>pssIf+)}DQAiImSg%S`WC zVbG&t0?_eFw{qVQ#Joe6tG@~a{`8CSHZ%5j--KNJ#qZvsXE&iOWQ%e6eDBos0g3rV zc)2jt(GgzDzD0ngktFyvs0af%1J}L3KLv^AiF*b%TQ|{2p<%?5=<$Ac?wVYS9x})9 z#1;8yub5k<4EDJaiFUOaL!< z=#9@&nSBU}rlF&!_coiOksDBd3vvGKia&p<=DohFQnTSN7od0SwnPT<6nLk(N#VH( znZsccTySqS;uiQDxS^ce$`T5`y?1qUdpr94YyHe-*uxC71nm{Q%$hKHe_MEBYEzcb zu;S|YS&bZ%=NZc2$l(i0#WOndVgw0{Av_TBUlr5}fDXz|vU%6eQUjE7dQU zb!DWj&oDX0fLcry4aE(+q<&6xBxTxk*`_mCS_e@N+l7BVeo5#bkA0N=%M7ty=HUgpNgD&SWSoX#m=GhwNnGFJN(>9Npx16)^{N)oX zFL-t5FeXC~d8QsBD*UraBCH*RRL1XR6Gkv(L-=Rj_&vvYjquxnP_3=xlM~OcUqrG? z*P5JPRlJvHQ^YT717~(K`ZCK=SU#F*P1%q<2mbFb#9``fdBsq3f1cYxq7OBs7U`HkODF-r$r z|Ff7S;5vO>!+_Y~9ArZ{#FUy;f>uDw+ZxHlF8p)C%--`fn@u_cJsllzy713?ZE6;( zvY5jMfyv!ZAkPra$6)0LN!pKXeFA(D6;xFhSm@BA!arX}8K1HO`{g#3DUrYYd&)Vh zesK3+=HRoHY2Pk3Xx*_Oa_N*$3FtM~cF=2RMcQo-v7aTk+xZyHi7&@l`)$8J_6iwH z*!|`&%|R5%}0{5jD{Lr_~$~FACyl-;O#V+ zA#FBiLx0=1#0~5G&wz8#Wb|02KePS2#J|rGe<=n_o=65OQY5tJDOFnowfg#OpjgoXB%+YfD6aFl(FZkj3*A7y+oYB;D7eH=2DTc z#bYCIEhe#Cx<{T@z#jd2FBzVNSdn5iO3L$EV##a?ODx$Q-C!_&Hi~y3z^*^$`~biwK9Jv-zLoILj)Ll#-d++THUsugK1* z{i!B#v$^m~0Kx3QP7JWkzWGC!I+Fx*n9D7_I4ae`!UH-5X0t8kirW8B6ch3}`2WUk zBK3bzO928N0~7!N00;oIlZrqxx@LGA4gmnxxB>tQ02lxO0000100030fdBvi0B>+* zZaH`^Xk~a+R0RM7^IwEdb$AN^0R#X5000C40000`O9ci1000010096{0001A4gmlF E0EJd2iU0rr literal 0 HcmV?d00001 diff --git a/src/simpgmspace.cpp b/src/simpgmspace.cpp index 9b88b80e0..92391b9e7 100644 --- a/src/simpgmspace.cpp +++ b/src/simpgmspace.cpp @@ -213,6 +213,11 @@ void eeprom_read_block (void *pointer_ram, } } +uint16_t stack_free() +{ + return 500; +} + #if 0 static void EeFsDump(){ for(int i=0; i> 1) +#define ERSKY9X_RIGHT_MASK (0x20 >> 1) +#define ERSKY9X_DOWN_MASK (0x40 >> 1) +#define ERSKY9X_LEFT_MASK (0x10 >> 1) +#else +#define ERSKY9X_MENU_MASK (0x40) +#define ERSKY9X_EXIT_MASK (0x80000000) +#define ERSKY9X_EXIT_PIO PIOA +#define ERSKY9X_UP_MASK (0x08 >> 1) +#define ERSKY9X_RIGHT_MASK (0x20 >> 1) +#define ERSKY9X_DOWN_MASK (0x10 >> 1) +#define ERSKY9X_LEFT_MASK (0x40 >> 1) +#endif static uint64_t keys1[]={ - KEY_Return, INP_B_KEY_MEN, INP_P_KEY_MEN, (uint64_t)PIOB, 0x40, - KEY_Page_Up, INP_B_KEY_MEN, INP_P_KEY_MEN, (uint64_t)PIOB, 0x40, - KEY_KP_1, INP_B_KEY_MEN, INP_P_KEY_MEN, (uint64_t)PIOB, 0x40, - KEY_Page_Down, INP_B_KEY_EXT, INP_P_KEY_EXT, (uint64_t)PIOA, 0x80000000, - KEY_BackSpace, INP_B_KEY_EXT, INP_P_KEY_EXT, (uint64_t)PIOA, 0x80000000, - KEY_KP_0, INP_B_KEY_EXT, INP_P_KEY_EXT, (uint64_t)PIOA, 0x80000000, - KEY_Down, INP_B_KEY_DWN, INP_P_KEY_DWN, (uint64_t)PIOC, 0x10 >> 1, - KEY_Up, INP_B_KEY_UP, INP_P_KEY_UP, (uint64_t)PIOC, 0x08 >> 1, - KEY_Right, INP_B_KEY_RGT, INP_P_KEY_RGT, (uint64_t)PIOC, 0x20 >> 1, - KEY_Left, INP_B_KEY_LFT, INP_P_KEY_LFT, (uint64_t)PIOC, 0x40 >> 1, + KEY_Return, INP_B_KEY_MEN, INP_P_KEY_MEN, (uint64_t)PIOB, ERSKY9X_MENU_MASK, + KEY_Page_Up, INP_B_KEY_MEN, INP_P_KEY_MEN, (uint64_t)PIOB, ERSKY9X_MENU_MASK, + KEY_KP_1, INP_B_KEY_MEN, INP_P_KEY_MEN, (uint64_t)PIOB, ERSKY9X_MENU_MASK, + KEY_Page_Down, INP_B_KEY_EXT, INP_P_KEY_EXT, (uint64_t)ERSKY9X_EXIT_PIO, ERSKY9X_EXIT_MASK, + KEY_BackSpace, INP_B_KEY_EXT, INP_P_KEY_EXT, (uint64_t)ERSKY9X_EXIT_PIO, ERSKY9X_EXIT_MASK, + KEY_KP_0, INP_B_KEY_EXT, INP_P_KEY_EXT, (uint64_t)ERSKY9X_EXIT_PIO, ERSKY9X_EXIT_MASK, + KEY_Down, INP_B_KEY_DWN, INP_P_KEY_DWN, (uint64_t)PIOC, ERSKY9X_DOWN_MASK, + KEY_Up, INP_B_KEY_UP, INP_P_KEY_UP, (uint64_t)PIOC, ERSKY9X_UP_MASK, + KEY_Right, INP_B_KEY_RGT, INP_P_KEY_RGT, (uint64_t)PIOC, ERSKY9X_RIGHT_MASK, + KEY_Left, INP_B_KEY_LFT, INP_P_KEY_LFT, (uint64_t)PIOC, ERSKY9X_LEFT_MASK, }; pinb &= ~ 0x7e; @@ -291,6 +308,8 @@ void Open9xSim::refreshDiplay() PIOC->PIO_PDSR = 0xFDFFFFFF; PIOB->PIO_PDSR = 0xFFFFFFFF; PIOA->PIO_PDSR = 0xFFFFFFFF; + Temperature = 1000; + maxTemperature = 1500; #endif for(unsigned i=0; igetKeyState(keys1[i])) { diff --git a/src/statistics_views.cpp b/src/statistics_views.cpp index eec53d91c..b82e044ac 100644 --- a/src/statistics_views.cpp +++ b/src/statistics_views.cpp @@ -77,12 +77,7 @@ void menuProcStatistic(uint8_t event) } } -#if defined(PCBARM) && defined(REVB) -uint16_t Current ; -uint32_t Current_sum ; -uint8_t Current_count ; -#endif - +#define MENU_DEBUG_COL_OFS (14*FW) void menuProcDebug(uint8_t event) { TITLE(STR_MENUDEBUG); @@ -107,43 +102,42 @@ void menuProcDebug(uint8_t event) #if !defined(PCBARM) lcd_putsLeft(1*FH, STR_TMR1LATMAXUS); - lcd_outdez8(15*FW , 1*FH, g_tmr1Latency_max/2 ); + lcd_outdez8(MENU_DEBUG_COL_OFS , 1*FH, g_tmr1Latency_max/2 ); lcd_putsLeft(2*FH, STR_TMR1LATMINUS); - lcd_outdez8(15*FW , 2*FH, g_tmr1Latency_min/2 ); + lcd_outdez8(MENU_DEBUG_COL_OFS , 2*FH, g_tmr1Latency_min/2 ); lcd_putsLeft(3*FH, STR_TMR1JITTERUS); - lcd_outdez8(15*FW , 3*FH, (g_tmr1Latency_max - g_tmr1Latency_min) /2 ); + lcd_outdez8(MENU_DEBUG_COL_OFS , 3*FH, (g_tmr1Latency_max - g_tmr1Latency_min) /2 ); #endif lcd_putsLeft(4*FH, STR_TMAINMAXMS); #if defined(PCBARM) - lcd_outdezAtt(15*FW, 4*FH, (g_timeMain)/20, PREC2); + lcd_outdezAtt(MENU_DEBUG_COL_OFS, 4*FH, (g_timeMain)/20, PREC2); #else - lcd_outdezAtt(15*FW, 4*FH, (g_timeMain*100)/16, PREC2); + lcd_outdezAtt(MENU_DEBUG_COL_OFS, 4*FH, (g_timeMain*100)/16, PREC2); #endif -#if defined(PCBARM) && defined(REVB) - // TODO then there are 2 means, is it needed? - Current_sum += anaIn(NUMBER_ANALOG-1) ; - if ( ++Current_count > 49 ) - { - Current = Current_sum / 5 ; - Current_sum = 0 ; - Current_count = 0 ; - } - lcd_putsLeft(6*FH, STR_CURRENT); - lcd_outhex4(10*FW+3, 6*FH, Current ) ; - lcd_outdezAtt(18*FW, 6*FH, Current/22, 0 ) ; +#if defined(PCBARM) +#if defined(REVB) + lcd_putsLeft(2*FH, STR_CURRENT); + putsTelemetryValue(MENU_DEBUG_COL_OFS, 2*FH, getCurrent(), UNIT_MILLIAMPS, 0) ; +#endif + + lcd_putsLeft(3*FH, PSTR("CPU temp.\010>")); + putsTelemetryValue(MENU_DEBUG_COL_OFS, 3*FH, (((((int32_t)Temperature - 838 ) * 621 ) >> 11 ) - 20), UNIT_DEGREES, 0 ) ; + putsTelemetryValue(20*FW+2, 3*FH, (((((int32_t)maxTemperature - 838 ) * 621 ) >> 11 ) - 20), UNIT_DEGREES, 0 ) ; // TODO mAh, Battery from ersky9x? #endif +#if !defined(PCBARM) + lcd_puts( 0*FW, 5*FH, STR_FREESTACKMINB); + lcd_outdezAtt(14*FW, 5*FH, stack_free(), UNSIGN) ; +#endif #ifdef DEBUG - lcd_puts( 0*FW, 5*FH, STR_T10MSUS); - lcd_outdez8(15*FW , 5*FH, g_time_per10/2 ); -#endif -#if !defined(SIMU) && !defined(PCBARM) - lcd_puts( 0*FW, 6*FH, STR_FREESTACKMINB); - lcd_outdezAtt(18*FW-1, 6*FH, stack_free(), UNSIGN) ; + lcd_puts( 0*FW, 6*FH, STR_T10MSUS); + lcd_outdez8(MENU_DEBUG_COL_OFS, 6*FH, g_time_per10/2 ); #endif + + lcd_puts( 3*FW, 7*FH, STR_MENUTORESET); } diff --git a/src/translations/en.h b/src/translations/en.h index cd3a99d72..b930b55eb 100644 --- a/src/translations/en.h +++ b/src/translations/en.h @@ -104,7 +104,7 @@ #define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""A1\0 ""A2\0 ""Tx\0 ""Rx\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""Cell""AccX""AccY""AccZ""Hdg\0""VSpd""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Acc\0""Time" #define LEN_VTELEMUNIT "\003" -#define TR_VTELEMUNIT "v\0 ""A\0 ""-\0 ""kts""kmh""M/h""m\0 ""@\0 ""%\0" +#define TR_VTELEMUNIT "v\0 ""A\0 ""-\0 ""kts""kmh""M/h""m\0 ""@\0 ""%\0 ""mA\0" #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -254,7 +254,7 @@ #define TR_CAL "Cal" #define TR_EEPROMV "EEPROM v" #define TR_VTRIM "Trim- +" -#define TR_BG "BG" +#define TR_BG "BG:" #define TR_MENUTOSTART "[MENU] TO START" #define TR_SETMIDPOINT "SET MIDPOINT" #define TR_MOVESTICKSPOTS "MOVE STICKS/POTS" @@ -266,12 +266,12 @@ #define TR_TM1TM2 "TM1\015TM2" #define TR_THRTHP "THR\015TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "tmr1Lat max\004us" -#define TR_TMR1LATMINUS "tmr1Lat min\004us" -#define TR_TMR1JITTERUS "tmr1 Jitter\004us" -#define TR_TMAINMAXMS "tmain max\006ms" -#define TR_T10MSUS "t10ms\010us" -#define TR_FREESTACKMINB "Free Stack min\004b" +#define TR_TMR1LATMAXUS "Tmr1Lat max\003us" +#define TR_TMR1LATMINUS "Tmr1Lat min\003us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\003us" +#define TR_TMAINMAXMS "Tmain max\005ms" +#define TR_T10MSUS "T10ms\007us" +#define TR_FREESTACKMINB "Free Stack\004b" #define TR_MENUTORESET "[MENU] to reset" #define TR_PPM "PPM" #define TR_CH "CH" @@ -295,7 +295,7 @@ #define TR_MENUTRAINER "TRAINER" #define TR_MENUVERSION "VERSION" #define TR_MENUDIAG "DIAG" -#define TR_MENUANA "ANA" +#define TR_MENUANA "ANAS" #define TR_MENUCALIBRATION "CALIBRATION" #define TR_MENUSERROR "MENUS OVERFLOW" #define TR_TRIMS2OFFSETS "Trims => Offsets" @@ -324,4 +324,6 @@ #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD "Gps Coords" #define TR_SHUTDOWN "SHUTTING DOWN" +#define TR_BATT_CALIB "Battery Calib" +#define TR_CURRENT_CALIB "Current Calib" #define TR_CURRENT "Current" diff --git a/src/translations/fr.h b/src/translations/fr.h index 26f469901..95404ed8e 100644 --- a/src/translations/fr.h +++ b/src/translations/fr.h @@ -104,7 +104,7 @@ #define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""A1\0 ""A2\0 ""Tx\0 ""Rx\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""Cell""AccX""AccY""AccZ""Hdg\0""VSpd""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Acc\0""Time" #define LEN_VTELEMUNIT "\003" -#define TR_VTELEMUNIT "v\0 ""A\0 ""-\0 ""kts""kmh""M/h""m\0 ""@\0 ""%\0" +#define TR_VTELEMUNIT "v\0 ""A\0 ""-\0 ""kts""kmh""M/h""m\0 ""@\0 ""%\0 ""mA\0" #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -255,7 +255,7 @@ #define TR_CAL "Cal" #define TR_EEPROMV "EEPROM v" #define TR_VTRIM "Trim- +" -#define TR_BG "BG" +#define TR_BG "BG:" #define TR_MENUTOSTART "[MENU]POUR DEBUT" #define TR_SETMIDPOINT "SET NEUTRE" #define TR_MOVESTICKSPOTS "BOUGER MANCHES/POTS " @@ -267,12 +267,12 @@ #define TR_TM1TM2 "TM1\015TM2" #define TR_THRTHP "THR\015TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "tmr1Lat max\004us" -#define TR_TMR1LATMINUS "tmr1Lat min\004us" -#define TR_TMR1JITTERUS "tmr1 Jitter\004us" -#define TR_TMAINMAXMS "tmain max\006ms" -#define TR_T10MSUS "t10ms\010us" -#define TR_FREESTACKMINB "Free Stack min\004b" +#define TR_TMR1LATMAXUS "Tmr1Lat max\003us" +#define TR_TMR1LATMINUS "Tmr1Lat min\003us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\003us" +#define TR_TMAINMAXMS "Tmain max\005ms" +#define TR_T10MSUS "T10ms\007us" +#define TR_FREESTACKMINB "Free Stack\004b" #define TR_MENUTORESET "[MENU]pour reset" #define TR_PPM "PPM" #define TR_CH "CH" @@ -296,7 +296,7 @@ #define TR_MENUTRAINER "ECOLAGE" #define TR_MENUVERSION "VERSION" #define TR_MENUDIAG "DIAG" -#define TR_MENUANA "ANA" +#define TR_MENUANA "ANAS" #define TR_MENUCALIBRATION "CALIBRATION" #define TR_MENUSERROR "MENUS OVERFLOW" #define TR_TRIMS2OFFSETS "Trims => Offsets" @@ -325,4 +325,6 @@ #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD "Gps Coords" #define TR_SHUTDOWN "ARRET EN COURS" +#define TR_BATT_CALIB "Battery Calib" +#define TR_CURRENT_CALIB "Current Calib" #define TR_CURRENT "Courant" diff --git a/src/translations/se.h b/src/translations/se.h index 96eaec7eb..d8eec0da9 100644 --- a/src/translations/se.h +++ b/src/translations/se.h @@ -101,10 +101,10 @@ #define TR_FUNCSOUNDS "Varn1 ""Varn2 ""F\200r ""Ring ""SciFi ""Robot ""Pip ""Tada ""Syrsa ""Siren ""Alarm ""Ratata""Tick ""Vibr1 ""Vibr2 ""Vibr3 " #define LEN_VTELEMCHNS "\004" -#define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""A1\0 ""A2\0 ""Tx\0 ""Rx\0 ""H\202jd""Varv""Tank""T1\0 ""T2\0 ""Hast""Avst""Batt""AccX""AccY""AccZ""Hdg\0""VHst""A1-\0""A2-\0""Hjd-""Hjd+""Vrv+""T1+\0""T2+\0""Hst+""Avs+""Acc\0""Tid\0" +#define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""A1\0 ""A2\0 ""Tx\0 ""Rx\0 ""Alt\0""Rpm\0""Tank""T1\0 ""T2\0 ""Spd\0""Dist""Cell""AccX""AccY""AccZ""Hdg\0""VSpd""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Acc\0""Tid\0" #define LEN_VTELEMUNIT "\003" -#define TR_VTELEMUNIT "v\0 ""A\0 ""-\0 ""kts""kmh""M/h""m\0 ""@\0 ""%\0" +#define TR_VTELEMUNIT "v\0 ""A\0 ""-\0 ""kts""kmh""M/h""m\0 ""@\0 ""%\0 ""mA\0" #define STR_V (STR_VTELEMUNIT+1) #define STR_A (STR_VTELEMUNIT+4) @@ -254,7 +254,7 @@ #define TR_CAL "Cal" #define TR_EEPROMV "EEPROM v" #define TR_VTRIM "Trim- +" -#define TR_BG "BG" +#define TR_BG "BG:" #define TR_MENUTOSTART "[MENU] STARTAR" #define TR_SETMIDPOINT " CENTRERA " #define TR_MOVESTICKSPOTS "R\205R SPAKAR/RATTAR" @@ -266,12 +266,12 @@ #define TR_TM1TM2 "TM1\015TM2" #define TR_THRTHP "THR\015TH%" #define TR_TOT "TOT" -#define TR_TMR1LATMAXUS "tmr1Lat max\004us" -#define TR_TMR1LATMINUS "tmr1Lat min\004us" -#define TR_TMR1JITTERUS "tmr1 Jitter\004us" -#define TR_TMAINMAXMS "tmain max\006ms" -#define TR_T10MSUS "t10ms\010us" -#define TR_FREESTACKMINB "Free Stack min\004b" +#define TR_TMR1LATMAXUS "Tmr1Lat max\003us" +#define TR_TMR1LATMINUS "Tmr1Lat min\003us" +#define TR_TMR1JITTERUS "Tmr1 Jitter\003us" +#define TR_TMAINMAXMS "Tmain max\005ms" +#define TR_T10MSUS "T10ms\007us" +#define TR_FREESTACKMINB "Free Stack\004b" #define TR_MENUTORESET "[MENU] NOLLAR " #define TR_PPM "PPM" #define TR_CH "KN" @@ -295,7 +295,7 @@ #define TR_MENUTRAINER "TRAINER (PPM IN)" #define TR_MENUVERSION "VERSION" #define TR_MENUDIAG "DIAGNOS" -#define TR_MENUANA "ANA" +#define TR_MENUANA "ANAS" #define TR_MENUCALIBRATION "KALIBRERING" #define TR_MENUSERROR "FEL I MENU" #define TR_TRIMS2OFFSETS "Trims => Offsets" @@ -324,4 +324,6 @@ #define TR_LONGITUDE "L\201ngdgrad" #define TR_GPSCOORD "GPS-Koord." #define TR_SHUTDOWN "ST\204NGER AV" +#define TR_BATT_CALIB "Battery Calib" +#define TR_CURRENT_CALIB "Current Calib" #define TR_CURRENT "Sp\201nning"