[X9D] New 4 bits logo (thanks to Michael Byrne
[X9D] Model COPY / MOVE operations fixed [X9D] New navigation system [X9D] Pulses driver [X9D] Watch dog [all] es translations
This commit is contained in:
+1
-1
@@ -490,7 +490,7 @@ endif
|
||||
ifeq ($(PCB), X9D)
|
||||
# X9D radio
|
||||
OPT = 2
|
||||
CPPDEFS += -DPCBX9D -DCPUARM -DEEPROM_VARIANT=0 -DAUDIO -DPXX -DDSM2 -DDSM2_PPM
|
||||
CPPDEFS += -DPCBX9D -DCPUARM -DEEPROM_VARIANT=0 -DAUDIO -DPXX
|
||||
EXTRAINCDIRS += CoOS/kernel CoOS/portable
|
||||
EXTRAINCDIRS += x9d/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/STM32F2xx_StdPeriph_Driver/inc x9d/STM32F2xx_StdPeriph_Lib_V1.1.0/Libraries/CMSIS/Device/ST/STM32F2xx/Include
|
||||
BOARDSRC = x9d/board_x9d.cpp
|
||||
|
||||
@@ -970,3 +970,25 @@ void eeCheck(bool immediately)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(CPUARM)
|
||||
bool eeCopyModel(uint8_t dst, uint8_t src)
|
||||
{
|
||||
if (theFile.copy(FILE_MODEL(dst), FILE_MODEL(src))) {
|
||||
memcpy(modelNames[dst], modelNames[src], sizeof(g_model.name));
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void eeSwapModels(uint8_t id1, uint8_t id2)
|
||||
{
|
||||
EFile::swap(FILE_MODEL(id1), FILE_MODEL(id2));
|
||||
|
||||
char tmp[sizeof(g_model.name)];
|
||||
memcpy(tmp, modelNames[id1], sizeof(g_model.name));
|
||||
memcpy(modelNames[id1], modelNames[id2], sizeof(g_model.name));
|
||||
memcpy(modelNames[id2], tmp, sizeof(g_model.name));
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -238,8 +238,14 @@ inline void eeFlush() { theFile.flush(); }
|
||||
uint16_t evalChkSum();
|
||||
|
||||
#define eeDeleteModel(x) EFile::rm(FILE_MODEL(x))
|
||||
|
||||
#if defined(CPUARM)
|
||||
bool eeCopyModel(uint8_t dst, uint8_t src);
|
||||
void eeSwapModels(uint8_t id1, uint8_t id2);
|
||||
#else
|
||||
#define eeCopyModel(dst, src) theFile.copy(FILE_MODEL(dst), FILE_MODEL(src))
|
||||
#define eeSwapModels(id1, id2) EFile::swap(FILE_MODEL(id1), FILE_MODEL(id2))
|
||||
#endif
|
||||
|
||||
#if defined(SDCARD)
|
||||
const pm_char * eeBackupModel(uint8_t i_fileSrc);
|
||||
|
||||
@@ -162,7 +162,7 @@ void menuGeneralSetup(uint8_t event)
|
||||
}
|
||||
#endif
|
||||
|
||||
MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, IF_RTCLOCK(2) IF_RTCLOCK(2) LABEL(SOUND), 0, 0, IF_AUDIO(0) IF_VOICE(0) IF_HAPTIC(LABEL(HAPTIC)) IF_HAPTIC(0) IF_HAPTIC(0) IF_HAPTIC(0) IF_PCBSKY9X(0) IF_9X(0) LABEL(ALARMS), 0, IF_PCBSKY9X(0) IF_CPUARM(0) 0, 0, 0, IF_ROTARY_ENCODERS(0) 0, LABEL(TIMER_EVENTS), 0, 0, LABEL(BACKLIGHT), 0, 0, 0, IF_SPLASH(0) IF_FRSKY(0) IF_FRSKY(0) 0, LABEL(TX_MODE), IF_PCBX9D(0) 1/*to force edit mode*/});
|
||||
MENU(STR_MENURADIOSETUP, menuTabDiag, e_Setup, ITEM_SETUP_MAX+1, {0, IF_RTCLOCK(2) IF_RTCLOCK(2) LABEL(SOUND), 0, 0, IF_AUDIO(0) IF_VOICE(0) IF_HAPTIC(LABEL(HAPTIC)) IF_HAPTIC(0) IF_HAPTIC(0) IF_HAPTIC(0) IF_PCBSKY9X(0) IF_9X(0) LABEL(ALARMS), 0, IF_PCBSKY9X(0) IF_CPUARM(0) 0, 0, 0, IF_ROTARY_ENCODERS(0) 0, LABEL(TIMER_EVENTS), 0, 0, LABEL(BACKLIGHT), 0, 0, 0, IF_SPLASH(0) IF_FRSKY(0) IF_FRSKY(0) 0, LABEL(TX_MODE), CASE_PCBX9D(0) 1/*to force edit mode*/});
|
||||
|
||||
uint8_t sub = m_posVert - 1;
|
||||
|
||||
|
||||
+5
-19
@@ -298,7 +298,7 @@ TEST(Phases, nullFadeOut_posFadeIn)
|
||||
g_model.phaseData[1].swtch = DSW(SW_ID1);
|
||||
g_model.phaseData[1].fadeIn = 15;
|
||||
perMain();
|
||||
setSwitch(DSW(SW_ID1));
|
||||
simuSetSwitch(3, 0);
|
||||
perMain();
|
||||
}
|
||||
|
||||
@@ -315,7 +315,7 @@ TEST(Mixer, Cascaded3Channels)
|
||||
g_model.mixData[2].destCh = 2;
|
||||
g_model.mixData[2].srcRaw = MIXSRC_ID1;
|
||||
g_model.mixData[2].weight = 100;
|
||||
setSwitch(DSW(SW_ID1));
|
||||
simuSetSwitch(3, 0);
|
||||
perOut(e_perout_mode_normal, 0);
|
||||
EXPECT_EQ(chans[0], 102400);
|
||||
EXPECT_EQ(chans[1], 102400);
|
||||
@@ -332,7 +332,7 @@ TEST(Mixer, CascadedOrderedChannels)
|
||||
g_model.mixData[1].destCh = 1;
|
||||
g_model.mixData[1].srcRaw = MIXSRC_CH1;
|
||||
g_model.mixData[1].weight = 100;
|
||||
setSwitch(DSW(SW_ID1));
|
||||
simuSetSwitch(3, 0);
|
||||
perOut(e_perout_mode_normal, 0);
|
||||
EXPECT_EQ(chans[0], 102400);
|
||||
EXPECT_EQ(chans[1], 102400);
|
||||
@@ -357,35 +357,21 @@ TEST(Mixer, Cascaded5Channels)
|
||||
g_model.mixData[4].destCh = 4;
|
||||
g_model.mixData[4].srcRaw = MIXSRC_ID1;
|
||||
g_model.mixData[4].weight = 100;
|
||||
int32_t lastVal = 0;
|
||||
for (uint8_t i=0; i<10; i++) {
|
||||
setSwitch(DSW(SW_ID1));
|
||||
doMixerCalculations();
|
||||
EXPECT_EQ(chans[0], lastVal);
|
||||
EXPECT_EQ(chans[1], lastVal);
|
||||
EXPECT_EQ(chans[2], 102400);
|
||||
EXPECT_EQ(chans[3], 102400);
|
||||
EXPECT_EQ(chans[4], 102400);
|
||||
simuSetSwitch(3, 0);
|
||||
doMixerCalculations();
|
||||
EXPECT_EQ(chans[0], 102400);
|
||||
EXPECT_EQ(chans[1], 102400);
|
||||
EXPECT_EQ(chans[2], 102400);
|
||||
EXPECT_EQ(chans[3], 102400);
|
||||
EXPECT_EQ(chans[4], 102400);
|
||||
setSwitch(DSW(SW_ID0));
|
||||
doMixerCalculations();
|
||||
EXPECT_EQ(chans[0], 102400);
|
||||
EXPECT_EQ(chans[1], 102400);
|
||||
EXPECT_EQ(chans[2], -102400);
|
||||
EXPECT_EQ(chans[3], -102400);
|
||||
EXPECT_EQ(chans[4], -102400);
|
||||
simuSetSwitch(3, -1);
|
||||
doMixerCalculations();
|
||||
EXPECT_EQ(chans[0], -102400);
|
||||
EXPECT_EQ(chans[1], -102400);
|
||||
EXPECT_EQ(chans[2], -102400);
|
||||
EXPECT_EQ(chans[3], -102400);
|
||||
EXPECT_EQ(chans[4], -102400);
|
||||
lastVal = -102400;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+46
-14
@@ -76,7 +76,7 @@ void displayScrollbar(xcoord_t x, uint8_t y, uint8_t h, uint16_t offset, uint16_
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
#if defined(PCBX9D) || defined(ROTARY_ENCODER_NAVIGATION)
|
||||
int8_t scrollRE;
|
||||
int16_t p1valdiff;
|
||||
int8_t lastCursorMove;
|
||||
@@ -128,7 +128,7 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui
|
||||
newval = !val;
|
||||
}
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION) || defined(NAVIGATION_POT1)
|
||||
#if defined(PCBX9D) || defined(ROTARY_ENCODER_NAVIGATION) || defined(NAVIGATION_POT1)
|
||||
//change values based on P1
|
||||
newval -= p1valdiff;
|
||||
p1valdiff = 0;
|
||||
@@ -287,21 +287,20 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
|
||||
uint8_t maxcol = MAXCOL(l_posVert);
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
|
||||
#if defined(PCBX9D)
|
||||
if (!(s_warning || s_menu_count || s_editMode<0))
|
||||
if (!(s_warning || s_menu_count/* || s_editMode<0*/))
|
||||
CHECK_ROTARY_ENCODER(event);
|
||||
#else
|
||||
#elif defined(ROTARY_ENCODER_NAVIGATION)
|
||||
if (!(s_warning || s_menu_count))
|
||||
CHECK_ROTARY_ENCODER(event);
|
||||
#endif
|
||||
|
||||
if (l_posVert < 0 && (event==EVT_KEY_BREAK(RE_NAV_ENTER) || event==EVT_KEY_BREAK(KEY_MENU))) {
|
||||
popMenu();
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION) || defined(PCBX9D)
|
||||
if (IS_RE_NAVIGATION_ENABLE() && event==EVT_KEY_BREAK(RE_NAV_ENTER) && s_editMode != EDIT_MODIFY_STRING) {
|
||||
scrollRE = 0;
|
||||
if (s_editMode++ > 0) s_editMode = 0;
|
||||
@@ -342,6 +341,29 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
if (menuTab) {
|
||||
uint8_t attr = 0;
|
||||
|
||||
#if defined(PCBX9D)
|
||||
int8_t cc = curr;
|
||||
switch(event) {
|
||||
case EVT_KEY_LONG(KEY_PAGE):
|
||||
if (curr > 0)
|
||||
cc = curr - 1;
|
||||
else
|
||||
cc = menuTabSize-1;
|
||||
killEvents(event);
|
||||
break;
|
||||
|
||||
case EVT_KEY_BREAK(KEY_PAGE):
|
||||
if (curr < (menuTabSize-1))
|
||||
cc = curr + 1;
|
||||
else
|
||||
cc = 0;
|
||||
break;
|
||||
}
|
||||
if (cc != curr) {
|
||||
chainMenu((MenuFuncP)pgm_read_adr(&menuTab[cc]));
|
||||
return false;
|
||||
}
|
||||
#else
|
||||
if (l_posVert==0 && !s_noScroll) {
|
||||
attr = INVERS;
|
||||
|
||||
@@ -377,6 +399,7 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
attr = INVERS|BLINK;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
s_noScroll = 0;
|
||||
displayScreenIndex(curr, menuTabSize, attr);
|
||||
@@ -404,9 +427,14 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
l_posHorz = limit((int8_t)0, (int8_t)(l_posHorz - scrollLR), (int8_t)maxcol);
|
||||
}
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION) || defined(PCBX9D)
|
||||
lastCursorMove = 0;
|
||||
while (!s_editMode && scrollRE) {
|
||||
#if defined(PCBX9D)
|
||||
// TODO remove that
|
||||
while (s_editMode<=0 && scrollRE) {
|
||||
#else
|
||||
while (s_editMode==0 && scrollRE) {
|
||||
#endif
|
||||
if (scrollRE > 0) {
|
||||
--scrollRE;
|
||||
maxcol = MAXCOL(l_posVert);
|
||||
@@ -421,7 +449,7 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
}
|
||||
else {
|
||||
#if defined(PCBX9D)
|
||||
l_posVert = 0;
|
||||
l_posVert = (menuTab ? 1 : 0);
|
||||
l_posHorz = 0;
|
||||
#else
|
||||
--l_posHorz;
|
||||
@@ -438,7 +466,7 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
--l_posVert;
|
||||
} while(MAXCOL(l_posVert) == (uint8_t)-1);
|
||||
#if defined(PCBX9D)
|
||||
if (l_posVert < (menuTab ? 0 : -1)) {
|
||||
if (l_posVert < (menuTab ? 1 : 0)) {
|
||||
l_posVert = maxrow;
|
||||
l_posHorz = MAXCOL(l_posVert);
|
||||
}
|
||||
@@ -466,7 +494,11 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
switch(event)
|
||||
{
|
||||
case EVT_ENTRY:
|
||||
#if defined(PCBX9D)
|
||||
l_posVert = (menuTab ? 1 : 0);
|
||||
#else
|
||||
l_posVert = 0;
|
||||
#endif
|
||||
l_posHorz = 0;
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
if (menuTab) {
|
||||
@@ -475,7 +507,7 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
}
|
||||
// no break
|
||||
#else
|
||||
s_editMode = -1;
|
||||
s_editMode = -1; // TODO why not 0?
|
||||
break;
|
||||
#endif
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
@@ -501,7 +533,7 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
s_editMode = 0;
|
||||
break;
|
||||
}
|
||||
if (l_posVert==0 || !menuTab) {
|
||||
if (IF_PCBX9D() || l_posVert==0 || !menuTab) {
|
||||
popMenu(); // beeps itself
|
||||
return false;
|
||||
}
|
||||
@@ -690,7 +722,7 @@ int8_t switchMenuItem(uint8_t x, uint8_t y, int8_t value, LcdFlags attr, uint8_t
|
||||
int8_t gvarMenuItem(uint8_t x, uint8_t y, int8_t value, int8_t min, int8_t max, LcdFlags attr, uint8_t event)
|
||||
{
|
||||
bool invers = attr&INVERS;
|
||||
if (invers && event == EVT_KEY_LONG(KEY_MENU)) {
|
||||
if (invers && event == EVT_KEY_LONG(KEY_ENTER)) {
|
||||
s_editMode = !s_editMode;
|
||||
value = ((value >= 126 || value <= -126) ? GET_GVAR(value, min, max, s_perout_flight_phase) : 126);
|
||||
eeDirty(EE_MODEL);
|
||||
|
||||
+18
-18
@@ -91,7 +91,7 @@ void drawPotsBars();
|
||||
void doMainScreenGraphics();
|
||||
void menuMainView(uint8_t event);
|
||||
void menuGeneralDiagAna(uint8_t event);
|
||||
#ifdef FRSKY
|
||||
#if defined(FRSKY)
|
||||
void menuTelemetryFrsky(uint8_t event);
|
||||
#endif
|
||||
void menuGeneralSetup(uint8_t event);
|
||||
@@ -102,29 +102,29 @@ void menuModelCustomFunctions(uint8_t event);
|
||||
void menuStatisticsView(uint8_t event);
|
||||
void menuStatisticsDebug(uint8_t event);
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
extern int8_t scrollRE;
|
||||
extern int16_t p1valdiff;
|
||||
extern int8_t lastCursorMove;
|
||||
#if defined(PCBX9D) || defined(ROTARY_ENCODER_NAVIGATION)
|
||||
extern int8_t scrollRE;
|
||||
extern int16_t p1valdiff; // TODO 0 in case of PCBX9D?
|
||||
extern int8_t lastCursorMove;
|
||||
#elif defined(NAVIGATION_POT1)
|
||||
extern int16_t p1valdiff;
|
||||
extern int16_t p1valdiff;
|
||||
#else
|
||||
#define p1valdiff 0
|
||||
#define p1valdiff 0
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
#define IS_RE_NAVIGATION_ENABLE() true
|
||||
#define NAVIGATION_RE_IDX() 0
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (event==type(KEY_ENTER))
|
||||
#define IS_RE_NAVIGATION_EVT(event) (EVT_KEY_MASK(event)==KEY_ENTER)
|
||||
#define IS_RE_NAVIGATION_ENABLE() true
|
||||
#define NAVIGATION_RE_IDX() 0
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (event==type(KEY_ENTER))
|
||||
#define IS_RE_NAVIGATION_EVT(event) (EVT_KEY_MASK(event)==KEY_ENTER)
|
||||
#elif defined(ROTARY_ENCODERS)
|
||||
#define NAVIGATION_RE_IDX() (g_eeGeneral.reNavigation - 1)
|
||||
#define IS_RE_NAVIGATION_ENABLE() g_eeGeneral.reNavigation
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (g_eeGeneral.reNavigation && event==type(BTN_REa + g_eeGeneral.reNavigation - 1))
|
||||
#define IS_RE_NAVIGATION_EVT(event) (g_eeGeneral.reNavigation && EVT_KEY_MASK(event)==(BTN_REa + g_eeGeneral.reNavigation - 1))
|
||||
#define NAVIGATION_RE_IDX() (g_eeGeneral.reNavigation - 1)
|
||||
#define IS_RE_NAVIGATION_ENABLE() g_eeGeneral.reNavigation
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (g_eeGeneral.reNavigation && event==type(BTN_REa + g_eeGeneral.reNavigation - 1))
|
||||
#define IS_RE_NAVIGATION_EVT(event) (g_eeGeneral.reNavigation && EVT_KEY_MASK(event)==(BTN_REa + g_eeGeneral.reNavigation - 1))
|
||||
#else
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (0)
|
||||
#define IS_RE_NAVIGATION_EVT(event) (0)
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (0)
|
||||
#define IS_RE_NAVIGATION_EVT(event) (0)
|
||||
#endif
|
||||
|
||||
extern int8_t checkIncDec_Ret; // global helper vars
|
||||
@@ -275,7 +275,7 @@ void menuChannelsMonitor(uint8_t event);
|
||||
|
||||
#define LABEL(...) (uint8_t)-1
|
||||
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
#if defined(ROTARY_ENCODERS) || defined(PCBX9D)
|
||||
#define CURSOR_MOVED_LEFT(event) (EVT_KEY_MASK(event) == KEY_LEFT || lastCursorMove < 0)
|
||||
#define CURSOR_MOVED_RIGHT(event) (EVT_KEY_MASK(event) == KEY_RIGHT || lastCursorMove > 0)
|
||||
#define REPEAT_LAST_CURSOR_MOVE() if (lastCursorMove) lastCursorMove *= 2; else m_posHorz = 0
|
||||
|
||||
+21
-34
@@ -241,15 +241,8 @@ void menuModelSelect(uint8_t event)
|
||||
#endif
|
||||
uint8_t _event_ = (IS_RE_NAVIGATION_EVT(event) ? 0 : event);
|
||||
|
||||
if (s_copyMode
|
||||
/* TODO how is it possible? || !eeModelExists(g_eeGeneral.currModel)*/
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
|| s_editMode >= 0
|
||||
#endif
|
||||
) {
|
||||
if ((event & 0x1f) == KEY_EXIT)
|
||||
_event_ -= KEY_EXIT;
|
||||
}
|
||||
if (s_copyMode && (event & 0x1f) == KEY_EXIT)
|
||||
_event_ -= KEY_EXIT;
|
||||
|
||||
int8_t oldSub = m_posVert;
|
||||
if (!check_submenu_simple(_event_, MAX_MODELS-1)) return;
|
||||
@@ -303,12 +296,6 @@ void menuModelSelect(uint8_t event)
|
||||
sub = m_posVert = (s_copyMode == MOVE_MODE || s_copySrcRow<0) ? (MAX_MODELS+sub+s_copyTgtOfs) % MAX_MODELS : s_copySrcRow;
|
||||
s_copyMode = 0;
|
||||
}
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
else {
|
||||
m_posVert = sub = g_eeGeneral.currModel;
|
||||
s_editMode = -1;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
@@ -324,12 +311,6 @@ void menuModelSelect(uint8_t event)
|
||||
#endif
|
||||
case EVT_KEY_LONG(KEY_ENTER):
|
||||
case EVT_KEY_BREAK(KEY_ENTER):
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
if (s_editMode < 0) {
|
||||
s_editMode = 0;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
s_editMode = 0;
|
||||
if (s_copyMode && (s_copyTgtOfs || s_copySrcRow>=0)) {
|
||||
displayPopup(s_copyMode==COPY_MODE ? STR_COPYINGMODEL : STR_MOVINGMODEL);
|
||||
@@ -399,7 +380,18 @@ void menuModelSelect(uint8_t event)
|
||||
}
|
||||
break;
|
||||
|
||||
#if !defined(PCBX9D) && !defined(PCBACT)
|
||||
#if defined(PCBX9D)
|
||||
// TODO merge with lines below
|
||||
case EVT_KEY_BREAK(KEY_PAGE):
|
||||
case EVT_KEY_LONG(KEY_PAGE):
|
||||
if (sub == g_eeGeneral.currModel) {
|
||||
chainMenu(event == EVT_KEY_BREAK(KEY_PAGE) ? menuModelSetup : menuTabModel[DIM(menuTabModel)-1]);
|
||||
killEvents(event);
|
||||
return;
|
||||
}
|
||||
AUDIO_WARNING2();
|
||||
break;
|
||||
#else
|
||||
case EVT_KEY_FIRST(KEY_LEFT):
|
||||
case EVT_KEY_FIRST(KEY_RIGHT):
|
||||
if (sub == g_eeGeneral.currModel) {
|
||||
@@ -412,12 +404,6 @@ void menuModelSelect(uint8_t event)
|
||||
|
||||
case EVT_KEY_FIRST(KEY_MOVE_UP):
|
||||
case EVT_KEY_FIRST(KEY_MOVE_DOWN):
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
if (s_editMode == -1) {
|
||||
chainMenu(event == EVT_KEY_FIRST(KEY_RIGHT) ? menuModelSetup : menuTabModel[DIM(menuTabModel)-1]);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
if (s_copyMode) {
|
||||
int8_t next_ofs = (event == EVT_KEY_FIRST(KEY_MOVE_UP) ? s_copyTgtOfs+1 : s_copyTgtOfs-1);
|
||||
if (next_ofs == MAX_MODELS || next_ofs == -MAX_MODELS)
|
||||
@@ -585,7 +571,7 @@ void editName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, uin
|
||||
}
|
||||
|
||||
switch (event) {
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION) || defined(PCBX9D)
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
case EVT_KEY_BREAK(KEY_ENTER):
|
||||
#else
|
||||
@@ -611,7 +597,7 @@ void editName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, uin
|
||||
if (cur<size-1) cur++;
|
||||
break;
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION) || defined(PCBX9D)
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_LONG(BTN_REa):
|
||||
case EVT_KEY_LONG(BTN_REb):
|
||||
@@ -664,7 +650,7 @@ void editSingleName(uint8_t x, uint8_t y, const pm_char *label, char *name, uint
|
||||
|
||||
enum menuModelSetupItems {
|
||||
ITEM_MODEL_NAME,
|
||||
IF_PCBX9D(ITEM_MODEL_BITMAP)
|
||||
CASE_PCBX9D(ITEM_MODEL_BITMAP)
|
||||
ITEM_MODEL_TIMER1,
|
||||
ITEM_MODEL_TIMER2,
|
||||
ITEM_MODEL_EXTENDED_LIMITS,
|
||||
@@ -714,7 +700,7 @@ void menuModelSetup(uint8_t event)
|
||||
s_rangecheck_mode = 0;
|
||||
#endif
|
||||
|
||||
MENU(STR_MENUSETUP, menuTabModel, e_Model, ((protocol<=PROTO_PPMSIM||IS_DSM2_PROTOCOL(protocol)||IS_PXX_PROTOCOL(protocol)) ? 1+ITEM_MODEL_SETUP_MAX : ITEM_MODEL_SETUP_MAX), {0,0,IF_PCBX9D(0) FIELD_TIMER_MAX,FIELD_TIMER_MAX,0,0,0,0,0,0,0,NUM_STICKS+NUM_POTS+NUM_ROTARY_ENCODERS-1,1,2});
|
||||
MENU(STR_MENUSETUP, menuTabModel, e_Model, ((protocol<=PROTO_PPMSIM||IS_DSM2_PROTOCOL(protocol)||IS_PXX_PROTOCOL(protocol)) ? 1+ITEM_MODEL_SETUP_MAX : ITEM_MODEL_SETUP_MAX), {0,0,CASE_PCBX9D(0) FIELD_TIMER_MAX,FIELD_TIMER_MAX,0,0,0,0,0,0,0,NUM_STICKS+NUM_POTS+NUM_ROTARY_ENCODERS-1,1,2});
|
||||
|
||||
uint8_t sub = m_posVert - 1;
|
||||
int8_t editMode = s_editMode;
|
||||
@@ -1981,7 +1967,7 @@ void menuModelMixOne(uint8_t event)
|
||||
if (attr && m_posHorz==1 && editMode>0) md2->noExpo = !checkIncDecModel(event, !md2->noExpo, 0, 1);
|
||||
}
|
||||
else if (attr) {
|
||||
m_posHorz = 0;
|
||||
REPEAT_LAST_CURSOR_MOVE();
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2343,7 +2329,8 @@ void menuModelExposAll(uint8_t event)
|
||||
|
||||
void menuModelMixAll(uint8_t event)
|
||||
{
|
||||
#if defined(PCBX9D)
|
||||
#if 0
|
||||
// TODO
|
||||
if (event == EVT_KEY_LONG(KEY_PAGE)) {
|
||||
pushMenu(menuChannelsMonitor);
|
||||
killEvents(event);
|
||||
|
||||
@@ -1217,7 +1217,11 @@ void backlightOn()
|
||||
inline void Splash()
|
||||
{
|
||||
lcd_clear();
|
||||
#if defined(PCBX9D)
|
||||
lcd_bmp(0, 0, splash_lbm);
|
||||
#else
|
||||
lcd_img(0, 0, splash_lbm, 0, 0);
|
||||
#endif
|
||||
lcdRefresh();
|
||||
}
|
||||
|
||||
|
||||
+7
-3
@@ -53,9 +53,11 @@
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#define IF_PCBX9D(x) x,
|
||||
#define IF_PCBX9D() true
|
||||
#define CASE_PCBX9D(x) x,
|
||||
#else
|
||||
#define IF_PCBX9D(x)
|
||||
#define IF_PCBX9D() false
|
||||
#define CASE_PCBX9D(x)
|
||||
#endif
|
||||
|
||||
#if defined(CPUARM)
|
||||
@@ -148,7 +150,7 @@
|
||||
#define IF_GVARS(x)
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9D) || defined(PCBACT) || ROTARY_ENCODERS > 0
|
||||
#if defined(PCBACT) || ROTARY_ENCODERS > 0
|
||||
#define ROTARY_ENCODER_NAVIGATION
|
||||
#endif
|
||||
|
||||
@@ -1233,6 +1235,8 @@ char * strcat_zchar(char * dest, char * name, uint8_t size, const char *defaultN
|
||||
#define ZLEN(s) zlen(s, sizeof(s))
|
||||
#endif
|
||||
|
||||
// TODO perhaps better in menus.h ?
|
||||
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
#define KEY_MOVE_UP KEY_PLUS
|
||||
#define KEY_MOVE_DOWN KEY_MINUS
|
||||
|
||||
+92
-48
@@ -38,11 +38,17 @@ uint8_t s_pulses_paused = 0;
|
||||
uint8_t s_current_protocol = 255;
|
||||
uint8_t pxxFlag = 0 ;
|
||||
|
||||
uint16_t Pulses[18] = { 2000, 2200, 2400, 2600, 2800, 3000, 3200, 3400, 9000, 0, 0, 0,0,0,0,0,0, 0 } ;
|
||||
volatile uint32_t Pulses_index = 0 ; // Modified in interrupt routine
|
||||
uint16_t ppmStream[20] = { 2000, 2200, 2400, 2600, 2800, 3000, 3200, 3400, 9000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ;
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
volatile uint32_t Pulses_index = 0 ; // Modified in interrupt routine
|
||||
uint8_t Bit_pulses[64] ; // Likely more than we need
|
||||
uint8_t *Pulses2MHzptr ;
|
||||
#else
|
||||
uint16_t pxxStream[400] ; // Transisitions
|
||||
uint16_t *pxxStreamPtr ;
|
||||
uint16_t PxxValue ;
|
||||
#endif
|
||||
|
||||
// DSM2 control bits
|
||||
#define DSM2_CHANS 6
|
||||
@@ -57,33 +63,34 @@ uint8_t Serial_bit_count;
|
||||
uint8_t Serial_byte_count ;
|
||||
|
||||
void setupPulses();
|
||||
void setupPulsesPPM();
|
||||
void setupPulsesDsm2(uint8_t chns);
|
||||
void setupPulsesPXX();
|
||||
|
||||
void startPulses()
|
||||
{
|
||||
// TODO a single call to setupPulses() should be ok!
|
||||
#if defined(PCBSKY9X)
|
||||
init_main_ppm(3000, 1) ; // Default for now, initial period 1.5 mS, output on
|
||||
#else
|
||||
init_main_ppm();
|
||||
#endif
|
||||
}
|
||||
|
||||
void setupPulsesPPM() // Don't enable interrupts through here
|
||||
{
|
||||
#if !defined(PCBX9D) && !defined(PCBACT)
|
||||
#if defined(PCBSKY9X)
|
||||
register Pwm *pwmptr = PWM;
|
||||
#endif
|
||||
|
||||
// Now set up pulses
|
||||
|
||||
int16_t PPM_range = g_model.extendedLimits ? 640 * 2 : 512 * 2; //range of 0.7..1.7msec
|
||||
uint32_t numCh = 8 + g_model.ppmNCH * 2; //Channels *2
|
||||
|
||||
//Total frame length = 22.5msec
|
||||
//each pulse is 0.7..1.7ms long with a 0.3ms stop tail
|
||||
//The pulse ISR is 2mhz that's why everything is multiplied by 2
|
||||
uint16_t *ptr;
|
||||
ptr = Pulses;
|
||||
uint32_t p = 8 + g_model.ppmNCH * 2; //Channels *2
|
||||
// Total frame length = 22.5msec
|
||||
// each pulse is 0.7..1.7ms long with a 0.3ms stop tail
|
||||
// The pulse ISR is 2mhz that's why everything is multiplied by 2
|
||||
uint16_t * ptr = ppmStream;
|
||||
|
||||
#if !defined(PCBX9D) && !defined(PCBACT)
|
||||
#if defined(PCBSKY9X)
|
||||
pwmptr->PWM_CH_NUM[3].PWM_CDTYUPD = (g_model.ppmDelay * 50 + 300) * 2; //Stoplen *2
|
||||
if (g_model.pulsePol)
|
||||
pwmptr->PWM_CH_NUM[3].PWM_CMR |= 0x00000200 ; // CPOL
|
||||
@@ -93,28 +100,18 @@ void setupPulsesPPM() // Don't enable interrupts through here
|
||||
|
||||
uint32_t rest = 22500u * 2; //Minimum Framelen=22.5 ms
|
||||
rest += (int32_t(g_model.ppmFrameLength)) * 1000;
|
||||
for (uint32_t i = 0; i < p; i++) { //NUM_CHNOUT
|
||||
for (uint32_t i = 0; i < numCh; i++) { //NUM_CHNOUT
|
||||
int16_t v = limit((int16_t)-PPM_range, g_chans512[i], (int16_t)PPM_range) + 2*PPM_CH_CENTER(i);
|
||||
rest -= (v);
|
||||
rest -= v;
|
||||
*ptr++ = v; /* as Pat MacKenzie suggests */
|
||||
}
|
||||
*ptr = rest;
|
||||
*(ptr + 1) = 0;
|
||||
}
|
||||
|
||||
void put_serial_bit( uint8_t bit )
|
||||
{
|
||||
Serial_byte >>= 1 ;
|
||||
if ( bit & 1 )
|
||||
{
|
||||
Serial_byte |= 0x80 ;
|
||||
}
|
||||
if ( ++Serial_bit_count >= 8 )
|
||||
{
|
||||
*Pulses2MHzptr++ = Serial_byte ;
|
||||
Serial_bit_count = 0 ;
|
||||
Serial_byte_count += 1 ;
|
||||
}
|
||||
#if defined(PCBX9D)
|
||||
TIM1->CCR2 = rest - 1000 ; // Update time
|
||||
TIM1->CCR1 = (g_model.ppmDelay*50+300)*2 ;
|
||||
#endif
|
||||
}
|
||||
|
||||
const uint16_t CRCTable[]=
|
||||
@@ -163,6 +160,22 @@ void crc( uint8_t data )
|
||||
PcmCrc=(PcmCrc>>8)^(CRCTable[(PcmCrc^data) & 0xFF]);
|
||||
}
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
void put_serial_bit( uint8_t bit )
|
||||
{
|
||||
Serial_byte >>= 1 ;
|
||||
if ( bit & 1 )
|
||||
{
|
||||
Serial_byte |= 0x80 ;
|
||||
}
|
||||
if ( ++Serial_bit_count >= 8 )
|
||||
{
|
||||
*Pulses2MHzptr++ = Serial_byte ;
|
||||
Serial_bit_count = 0 ;
|
||||
Serial_byte_count += 1 ;
|
||||
}
|
||||
}
|
||||
|
||||
// 8uS/bit 01 = 0, 001 = 1
|
||||
void putPcmPart( uint8_t value )
|
||||
{
|
||||
@@ -181,6 +194,23 @@ void putPcmFlush()
|
||||
put_serial_bit( 1 ) ; // Line idle level
|
||||
}
|
||||
}
|
||||
#else
|
||||
void putPcmPart( uint8_t value )
|
||||
{
|
||||
PxxValue += 18 ; // Output 1 for this time
|
||||
*pxxStreamPtr++ = PxxValue ;
|
||||
PxxValue += 14 ;
|
||||
if ( value ) {
|
||||
PxxValue += 16 ;
|
||||
}
|
||||
*pxxStreamPtr++ = PxxValue ; // Output 0 for this time
|
||||
}
|
||||
|
||||
void putPcmFlush()
|
||||
{
|
||||
*pxxStreamPtr++ = 18010 ; // Past the 18000 of the ARR
|
||||
}
|
||||
#endif
|
||||
|
||||
void putPcmBit( uint8_t bit )
|
||||
{
|
||||
@@ -202,14 +232,11 @@ void putPcmBit( uint8_t bit )
|
||||
|
||||
void putPcmByte( uint8_t byte )
|
||||
{
|
||||
uint8_t i ;
|
||||
crc(byte);
|
||||
|
||||
crc( byte ) ;
|
||||
|
||||
for ( i = 0 ; i < 8 ; i += 1 )
|
||||
{
|
||||
putPcmBit( byte & 0x80 ) ;
|
||||
byte <<= 1 ;
|
||||
for (uint8_t i=0; i<8; i++) {
|
||||
putPcmBit(byte & 0x80);
|
||||
byte <<= 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -229,23 +256,27 @@ void putPcmHead()
|
||||
|
||||
void setupPulsesPXX()
|
||||
{
|
||||
uint8_t i ;
|
||||
uint16_t chan ;
|
||||
uint16_t chan_1 ;
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
Serial_byte = 0 ;
|
||||
Serial_bit_count = 0 ;
|
||||
Serial_byte_count = 0 ;
|
||||
Pulses2MHzptr = Bit_pulses ;
|
||||
#else
|
||||
pxxStreamPtr = pxxStream ;
|
||||
PxxValue = 0 ;
|
||||
#endif
|
||||
|
||||
PcmCrc = 0 ;
|
||||
PcmOnesCount = 0 ;
|
||||
putPcmHead( ) ; // sync byte
|
||||
putPcmByte( g_model.ppmNCH ) ; // putPcmByte( g_model.rxnum ) ; //
|
||||
putPcmByte( g_model.ppmNCH ) ; // TODO should be RX NUM ??? putPcmByte( g_model.rxnum ) ; //
|
||||
putPcmByte( pxxFlag ) ; // First byte of flags
|
||||
putPcmByte( 0 ) ; // Second byte of flags
|
||||
pxxFlag = 0; // reset flag after send
|
||||
for ( i = 0 ; i < 8 ; i += 2 ) // First 8 channels only
|
||||
{ // Next 8 channels would have 2048 added
|
||||
for (uint32_t i=0; i<8; i+=2) { // First 8 channels only // Next 8 channels would have 2048 added
|
||||
chan = g_chans512[i] *3 / 4 + 2250 ;
|
||||
chan_1 = g_chans512[i+1] *3 / 4 + 2250 ;
|
||||
// if ( chan > 2047 )
|
||||
@@ -267,6 +298,7 @@ void setupPulsesPXX()
|
||||
putPcmFlush() ;
|
||||
}
|
||||
|
||||
#if defined(DSM2)
|
||||
#define BITLEN_DSM2 (8*2) //125000 Baud => 8uS per bit
|
||||
void sendByteDsm2(uint8_t b) //max 10changes 0 10 10 10 10 1
|
||||
{
|
||||
@@ -312,11 +344,7 @@ void setupPulsesDsm2(uint8_t chns)
|
||||
break;
|
||||
}
|
||||
}
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
// TODO
|
||||
#else
|
||||
if ((dsmDat[0] & BIND_BIT) && (!switchState(SW_TRN))) dsmDat[0] &= ~BIND_BIT; // clear bind bit if trainer not pulled
|
||||
#endif
|
||||
|
||||
// TODO find a way to do that, FUNC SWITCH: if ((!(dsmDat[0] & BIND_BIT)) && getSwitch(MAX_DRSWITCH-1, 0, 0)) dsmDat[0] |= RANGECHECK_BIT; // range check function
|
||||
// else dsmDat[0] &= ~RANGECHECK_BIT;
|
||||
@@ -337,8 +365,9 @@ void setupPulsesDsm2(uint8_t chns)
|
||||
put_serial_bit( 1 ) ; // 16 extra stop bits
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(SIMU) && !defined(PCBX9D)
|
||||
#if defined(PCBSKY9X) && !defined(SIMU)
|
||||
extern "C" void PWM_IRQHandler(void)
|
||||
{
|
||||
register Pwm *pwmptr;
|
||||
@@ -397,8 +426,8 @@ extern "C" void PWM_IRQHandler(void)
|
||||
break;
|
||||
|
||||
default:
|
||||
pwmptr->PWM_CH_NUM[3].PWM_CPDRUPD = Pulses[Pulses_index++]; // Period in half uS
|
||||
if (Pulses[Pulses_index] == 0) {
|
||||
pwmptr->PWM_CH_NUM[3].PWM_CPDRUPD = ppmStream[Pulses_index++]; // Period in half uS
|
||||
if (ppmStream[Pulses_index] == 0) {
|
||||
Pulses_index = 0;
|
||||
setupPulses();
|
||||
}
|
||||
@@ -421,11 +450,13 @@ void setupPulses()
|
||||
|
||||
switch (s_current_protocol) { // stop existing protocol hardware
|
||||
case PROTO_PXX:
|
||||
disable_ssc();
|
||||
disable_pxx();
|
||||
break;
|
||||
#if defined(DSM2)
|
||||
case PROTO_DSM2:
|
||||
disable_ssc();
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
disable_main_ppm();
|
||||
break;
|
||||
@@ -433,6 +464,16 @@ void setupPulses()
|
||||
|
||||
s_current_protocol = required_protocol;
|
||||
|
||||
#if defined(PCBX9D)
|
||||
switch (required_protocol) {
|
||||
case PROTO_PXX:
|
||||
init_pxx();
|
||||
break;
|
||||
default:
|
||||
init_main_ppm();
|
||||
break;
|
||||
}
|
||||
#elif defined(PCBSKY9X)
|
||||
switch (required_protocol) { // Start new protocol hardware here
|
||||
case PROTO_PXX:
|
||||
init_main_ppm(5000, 0); // Initial period 2.5 mS, output off
|
||||
@@ -449,6 +490,7 @@ void setupPulses()
|
||||
init_main_ppm(3000, 1); // Initial period 1.5 mS, output on
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
// Set up output data here
|
||||
@@ -456,9 +498,11 @@ void setupPulses()
|
||||
case PROTO_PXX:
|
||||
setupPulsesPXX();
|
||||
break;
|
||||
#if defined(DSM2)
|
||||
case PROTO_DSM2:
|
||||
setupPulsesDsm2(6);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
setupPulsesPPM(); // Don't enable interrupts through here
|
||||
break ;
|
||||
|
||||
@@ -43,11 +43,4 @@ inline bool pulsesStarted() { return s_current_protocol != 255; }
|
||||
inline void pausePulses() { s_pulses_paused = true; }
|
||||
inline void resumePulses() { s_pulses_paused = false; }
|
||||
|
||||
void init_main_ppm(uint32_t period, uint32_t out_enable);
|
||||
void disable_main_ppm();
|
||||
|
||||
void init_ssc();
|
||||
void disable_ssc();
|
||||
|
||||
#endif
|
||||
/*eof*/
|
||||
|
||||
@@ -156,6 +156,13 @@ extern uint16_t sessionTimer;
|
||||
|
||||
void setSticksGain(uint8_t gains);
|
||||
|
||||
// Pulses driver
|
||||
void init_main_ppm(uint32_t period, uint32_t out_enable);
|
||||
void disable_main_ppm();
|
||||
void init_ssc();
|
||||
void disable_ssc();
|
||||
#define disable_pxx() disable_ssc()
|
||||
|
||||
// SD driver
|
||||
#if !defined(SIMU)
|
||||
#define sdPoll10ms()
|
||||
|
||||
+8
-8
@@ -1,9 +1,9 @@
|
||||
212,64,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfb,0xe3,0x03,0x03,0x03,0x03,0x1f,0xff,0xff,0xff,0x7f,0x3f,0x0f,0x07,0x03,0x03,0x83,0xe3,0xf3,0xfb,0xff,0x7f,0x1f,0x0f,0x07,0x07,0x83,0x83,0xc3,0xc3,0xc3,0x03,0x07,0x07,0x0f,0x1f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x03,0x03,0x03,0x03,0x83,0x83,0x83,0x83,0x83,0x03,0x07,0x07,0x07,0x0f,0x1f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x0f,0x07,0x03,0x01,0x81,0xe0,0xe0,0xf0,0xf0,0xf0,0xe0,0xc0,0x01,0x01,0x03,0x07,0x0f,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x80,0xe3,0xe1,0xf1,0xf0,0xf0,0xc0,0x00,0x00,0x01,0x03,0x0f,0xff,0xff,0xff,0x3f,0x0f,0x07,0x03,0x03,0x81,0xe0,0xe0,0xf0,0xf0,0xf0,0xe0,0xe0,0x01,0x01,0x03,0x07,0x1f,0xff,0xff,0xff,0xff,0x7f,0x03,0x00,0x00,0x00,0x00,0xc0,0xe3,0xf1,0xf0,0xf0,0x40,0x00,0x00,0x00,0x01,0x03,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0x60,0x00,0x00,0x00,0x03,0x00,0x80,0xe0,0xf0,0xf8,0xfe,0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x3c,0xff,0xff,0xff,0xff,0x3f,0x0f,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0x3f,0x01,0x00,0x00,0x00,0x00,0xfc,0xff,0xff,0xff,0xff,0xff,0xff,0x7e,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x3e,0x7f,0xff,0xff,0xff,0x7f,0x7f,0x3f,0x07,0x00,0x00,0x00,0x80,0xf0,0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x3c,0xff,0xff,0xff,0x7f,0x7f,0x3f,0x07,0x00,0x00,0x00,0xc0,0xf8,0xff,0xff,0x80,0x00,0x00,0x00,0x00,0x30,0x70,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x70,0x70,0xf0,0xf0,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0xe0,0xff,0xff,0xff,0x3f,0x1f,0x0f,0x07,0x03,0x00,0xc0,0xe0,0xf0,0xe0,0x00,0x00,0x00,0x03,0x1f,0x7f,0xff,0xff,0xff,0xff,0xff,0x7f,0x7f,0xfc,0xf8,0xf8,0xf0,0xf0,0xf0,0x70,0x30,0x18,0x08,0x00,0x00,0x80,0xe0,0xf8,0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x70,0x7f,0x7f,0x7f,0x7f,0x3f,0x1f,0x1f,0x07,0x00,0x00,0x80,0xc0,0xf8,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf8,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf8,0xf8,0xfc,0xfe,0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00,0xf8,0xf8,0xf8,0xf8,0xf0,0xf0,0xf0,0xf0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf8,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf8,0xf8,0xfc,0xff,0xff,0xff,0xff,0xf1,0xf0,0xf0,0xf0,0xf0,0xfc,0xff,0xff,0xff,0xff,0xff,0xf0,0xf0,0xf0,0xf0,0xf0,0xfc,0xf7,0xf3,0xf1,0xf0,0xf0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xf0,0xf0,0xf0,0xf0,0xf3,0xff,0xff,0xff,0xf8,0xf8,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf8,0xf8,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf1,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf8,0xf8,0xfc,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x18,0x18,0x18,0x18,0x18,0x1e,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,0x1f,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,0x18,0xe0,0x00,0xff,
|
||||
0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0x7f,0xff,0x00,0xff,0x7f,0x7f,0x00,0xff,0xff,0xff,0x80,0x7f,0x7f,0xff,0x80,0x7f,0x7f,0xff,0x80,0x7f,0x7f,0xff,0x80,0x7f,0x7f,0x7f,0x00,0xff,0x7f,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,
|
||||
0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0xff,0xff,0x00,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x3f,0xbf,0x40,0xff,0x7f,0x7f,0x40,0x3f,0x1f,0x1f,0x20,0x1f,0x1f,0x1f,0x10,0x0f,0x07,0x0f,0x00,0x0f,0x07,0x07,0x08,0x07,0x03,0x07,0x00,0x07,0x03,0x07,0x04,0x03,0x07,0x07,0x00,0x03,0x07,0x03,0x80,0x03,0x03,0x83,0x80,0x03,0x03,0x83,0x80,0x03,0x07,0x03,0x80,0x03,0x07,0x07,0x00,0x03,0x03,0x07,0x04,0x03,0x07,0x03,0x00,0x07,0x07,0x07,0x08,0x07,0x07,0x0f,0x00,0x0f,0x1f,0x1f,0x10,0x0f,0x1f,0x1f,0x20,0x1f,0x7f,0x7f,0x40,0x3f,0x7f,0xff,0x00,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x03,0xff,0xfc,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x43,0xc0,0x83,0x03,0x43,0xc0,0x83,0xc3,0x83,0x40,0x83,0x43,0x03,0x80,0x83,0x07,0x07,0x80,0x03,0x07,0x07,0x00,0x03,0x03,0x07,0x04,0x03,0x0f,0x07,0x00,0x07,0x07,0x07,0x00,0x0f,0x3f,0x0f,0x00,0x1f,0x3f,0xbf,0x80,0x7f,0x7f,0x7f,0x80,0xff,0xff,0xff,0x00,0xff,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x43,0x83,0x80,0x03,0x43,0x43,0x80,0x83,0xc3,0xc3,0x00,0x83,0x43,0x43,0x80,0x83,0x43,0x43,0x80,0x83,0x43,0x43,0x80,0x83,0x43,0x43,0x80,0x83,0x7f,0x7f,0x80,0xff,0x3f,0x3f,0xc0,0xff,0x7f,0x7f,0x80,0xff,0x03,0xff,0xfc,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x07,0x07,0x04,0x03,0x17,0x1f,0x00,0x0f,0x1f,0x3f,0x20,0x1f,0x7f,0xbf,0x00,0x7f,0xff,0xff,0x00,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0x03,0x00,0x03,0x03,0xff,0xfc,0x03,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x03,0xff,0x00,0xff,0xff,0xfb,0xf8,0x07,0xf7,0xff,0xf0,0x0f,0xdf,0xdf,0xc0,0x3f,0xbf,0xbf,0x80,0x7f,0xff,0x7f,0x00,0xff,0x7f,0x7f,0x80,0xff,0x7d,0x7f,0x80,0xff,0x7d,0x7d,0x84,0xf9,0x61,0x71,0x88,0xf1,0x51,0x41,0x80,0xe1,0xc1,0x81,0x40,0x81,0x81,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x03,0x03,0x00,0x01,0x0b,0x03,0x00,0x07,0x0f,0x1f,0x10,0x0f,0x3f,0x3f,0x40,0x3f,0xff,0x7f,0x00,0xff,0xff,0xff,0x00,0xff,0x3f,0x7f,0x40,0x3f,0x3f,0x1f,0x10,0x0f,0x0b,0x0f,0x00,0x07,0x03,0x01,0x02,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x41,0xc1,0x00,0x81,0x41,0x61,0xa0,0xc1,0x69,0x79,0x80,0xf1,0x79,0x7d,0x84,0xf9,0x7f,0x7d,0x80,0xff,0x7f,0xff,0x80,0x7f,0x0f,0x3f,0x20,0x1f,0x0f,0x17,0x00,0x0f,0x07,0x03,0x00,0x07,0x01,0x07,0x00,0x03,0x01,0x03,0x02,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x80,0x00,0x40,0x40,0x80,0x80,0x40,0x40,0xc0,0x80,0x40,0x40,0x80,0xc0,0x40,0x40,0x80,0xc0,0x40,0x00,0x80,0xc0,0x00,0x40,0xc0,0x80,0x80,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x01,0x03,0x03,0x00,0x01,0x01,0x03,0x00,0x03,0x07,0x03,0x00,0x07,0x1f,0x07,0x00,0x0f,0x1f,0x3f,0x20,0x1f,0x7f,0xff,0x80,0x7f,0xff,0xff,0x00,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x80,0x00,0x00,0x00,0x80,0x81,0x81,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x03,0x02,0x01,0x01,0x03,0x00,0x03,0x07,0x07,0x04,0x03,0x07,0x07,0x08,0x07,0x0f,0x0f,0x10,0x0f,0x1f,0x1f,0x20,0x1f,0x7f,0x7f,0x40,0x3f,0xff,0xff,0x00,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0xbf,0xbf,0x40,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x3f,0x3f,0xc0,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,0x7f,0x7f,0x80,0xff,
|
||||
0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0xbc,0xb6,0xcd,0x03,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0xc4,0xb0,0x78,0x80,0x02,0xfe,0xfc,0x80,0x00,0xff,0xfe,0x81,0x01,0xfe,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0xc0,0x00,0xff,0xff,0x81,0x01,0xfe,0xff,0x80,0x00,0xff,0xfe,0x80,0x02,0xfe,0xfc,0xc4,0xc4,0xb0,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x3c,0xb6,0xcd,0x03,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x1f,0x00,0x00,0x1f,0x1f,0x00,0x00,0x1f,0x1f,0x00,0x00,0x0f,0x1f,0x00,0x01,0x06,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x40,0x00,0xc0,0x80,0xaf,0x37,0xd8,0xe0,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x07,0x07,0x00,0x08,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0x08,0x08,0x07,0x07,0xf8,0xf0,0x0f,0x07,0x80,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x00,0xf8,0xf0,0x80,0x30,0xc0,0xe0,0x80,0x40,0xc0,0x80,0x00,0x00,0x80,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x03,0x0c,0x0c,0x03,0x07,0x00,0x10,0x1f,0x0f,0x00,0x60,0x1f,0x3f,0x00,0x80,0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x00,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0xfc,0xff,0x00,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xfe,0xff,0xfe,0x01,0xfa,0xfa,0xf9,0x07,0xf4,0xf4,0xf3,0x0f,0xf0,0xe0,0xef,0x1f,0xc0,0x60,0x5f,0xbf,0x80,0x00,0xff,0xff,0x80,0x00,0xfe,0xff,0x86,0x04,0xfa,0xfc,0x8c,0x00,0xf0,0xf8,0xb0,0x20,0xd0,0xe0,0x80,0x60,0x80,0xc0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0x80,0xc0,0xa0,0x20,0xd0,0xe0,0x80,0x00,0xf0,0xf8,0x82,0x06,0xf8,0xfc,0x80,0x01,0xff,0xfe,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x62,0xa0,0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2d,0x12,0x12,0x0c,0x40,0x00,0x7f,0x3f,0x80,0x80,0x7f,0x7f,0x00,0x00,0x7f,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x80,0x7f,0xff,0x00,0x80,0xff,0x7f,0x00,0x40,0x3f,0x7f,0x00,0x21,0x3f,0x1e,0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xd0,0x61,0x80,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xfe,0xff,0x82,0x02,0xfc,0xfe,0x84,0x00,0xf8,0xfc,0x88,0x38,0xd0,0xe0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x06,0x0d,0x03,0xe0,0x20,0x1f,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,0x80,0x00,0xff,0xff,
|
||||
0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3e,0xc0,0xfe,0xff,0x3c,0xc8,0xf4,0xf8,0x28,0xc0,0xe0,0xf0,0x20,0xc0,0xe0,0xc0,0x40,0xc0,0xc0,0x80,0x80,0x80,0x00,0x80,0x81,0x80,0x00,0x00,0x03,0x00,0x03,0x01,0x03,0x00,0x07,0x03,0x07,0x04,0x03,0x07,0x07,0x00,0x0f,0x07,0x0f,0x08,0x0f,0x07,0x0f,0x08,0x0f,0x07,0x07,0x00,0x0f,0x07,0x07,0x04,0x03,0x07,0x03,0x00,0x07,0x03,0x03,0x00,0x03,0x01,0x81,0x80,0x00,0x00,0x80,0x80,0x00,0x80,0x40,0xc0,0xc0,0x80,0x20,0xc0,0xe0,0xc0,0x20,0xc0,0xe0,0xf0,0x3c,0xc8,0xf4,0xf8,0x3e,0xc0,0xfe,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3e,0xc2,0xfe,0xfc,0x3e,0xc2,0xfe,0xfc,0x3e,0xc2,0xfe,0xfc,0x1e,0xe2,0xfe,0xfc,0x3e,0xc2,0xfe,0xfc,0x3e,0xc0,0xfc,0xfe,0x3e,0xc0,0xfe,0xfe,0x3e,0xc1,0xff,0xfe,0x3e,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x1f,0xe0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x0f,0x0f,0x00,0x1f,0x10,0x0f,0x0f,0x1f,0x10,0x0f,0x0f,0x1f,0x10,0x0f,0x0f,0x1f,0x10,0x0f,0x0f,0x1f,0x10,0x0f,0x0f,0x1f,0x10,0x0f,0x0f,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3e,0xc0,0xff,0xff,0x3c,0xc0,0xfc,0xfe,0x30,0xc4,0xfc,0xf8,0x30,0xd8,0xe0,0xf0,0x20,0xe0,0xe0,0xc0,0xc0,0x40,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0x00,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x0f,0x0f,0xf0,0xff,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x7f,0x7f,0x7f,0x80,0xff,0x3f,0xbf,0xc0,0x3f,0xff,0xdf,0xe0,0x27,0xc7,0xf7,0xf8,0x3b,0xc7,0xfb,0xfc,0x3e,0xc2,0xfc,0xff,0x1e,0xe0,0xff,0xff,0x3f,0x40,0x7f,0xff,0x1f,0x00,0x7f,0x3f,0x2f,0x10,0x0f,0x1f,0x0f,0x08,0x0f,0x07,0x07,0x06,0x01,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x00,0xc0,0x80,0xc0,0x40,0xc0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x00,0x01,0x06,0x01,0x03,0x0f,0x08,0x0f,0x07,0x1f,0x30,0x0f,0x1f,0x5f,0x60,0x7f,0x3f,0xbf,0xc0,0x7f,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xfc,0xfe,0x38,0xc4,0xfc,0xf8,0x30,0xc0,0xf8,0xf0,0x20,0xd0,0xf0,0xe0,0x00,0xc0,0xe0,0xe0,0x20,0xc0,0xe0,0xc0,0x20,0xc0,0xc0,0xc0,0x00,0x80,0xc0,0xc0,0x00,0xc0,0x80,0xc0,0x00,0xc0,0x80,0xc0,0x00,0xc0,0xc0,0xc0,0x80,0x60,0xc0,0x40,0x40,0x60,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x40,0xc0,0xc0,0x80,0x20,0xf0,0xc0,0xe0,0x34,0xc0,0xf0,0xf8,0x3c,0xc1,0xfc,0xfe,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0xbf,0x40,0xff,0xff,0xbf,0x40,0x7f,0xff,0x3f,0x40,0xff,0x7f,0x7f,0x40,0x3f,0x7f,0x7f,0x00,0x3f,0x3f,0x0f,0x10,0x0f,0x1f,0x09,0x0a,0x01,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0xc0,0x80,0x00,0xc0,0xe8,0xf0,0x3d,0xc0,0xfe,0xff,0x3f,0xc0,0xff,0xff,0x1f,0xe0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x3f,0xc0,0xff,0xff,0x1f,0xe0,0xff,0xff,
|
||||
0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0x00,0x0f,0x1f,0xff,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xf0,0xfe,0xef,0x1f,0xe1,0xef,0xff,0x1e,0xe1,0xef,0xfe,0x1e,0xe1,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe1,0xee,0xfe,0x1e,0xe1,0xef,0xfe,0x1e,0xe1,0xef,0xff,0x1e,0xe0,0xee,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe1,0xef,0xff,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xf0,0xff,0xef,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe1,0xef,0xff,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe0,0xef,0xff,0x1f,0xe1,0xee,0xfe,0x1f,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe0,0xee,0xfe,0x1e,0xe1,0x0f,0x1f,0xfe,0xf0,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xc0,0xe0,0xff,0xff,0xe7,0xe7,0xf7,0xf8,0xff,0xf3,0xfb,0xfc,0xe1,0xff,0xfd,0xfe,0xe0,0xfe,0xff,0xff,0x40,0x7f,0xff,0xff,0xa0,0x3f,0x3f,0x7f,0x30,0x0f,0x3f,0x1f,0x10,0x0f,0x07,0x0f,0x00,0x07,0x07,0x03,0x00,0x02,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x80,0xe0,0xa0,0xc0,0xc0,0xf0,0xf0,0xf0,0xe0,0xe8,0xfc,0xf0,0xf8,0xf4,0xfa,0xfe,0xfc,0xe0,0xff,0xfe,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xfe,0xff,0xf4,0xf8,0xfe,0xfc,0xe4,0xf0,0xf0,0xf8,0xe0,0xc0,0xf0,0xe0,0x80,0x80,0x80,0xc0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x02,0x03,0x01,0x00,0x0f,0x03,0x07,0x08,0x17,0x1f,0x0f,0x40,0x3f,0x1f,0x3f,0xa0,0x7f,0xff,0x7f,0xf0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0x60,0x7f,0xff,0xff,0xe0,0x3f,0x3f,0x7f,0x00,0x1f,0x1f,0x3f,0x18,0x07,0x1f,0x0f,0x00,0x0b,0x07,0x07,0x02,0x03,0x01,0x03,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0xc0,0xc0,0x80,0xf0,0xc0,0xc0,0xe0,0xe0,0xe8,0xf0,0xf0,0xe0,0xfc,0xfc,0xf8,0xe2,0xfc,0xfc,0xfe,0xf0,0xfe,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xc0,0x80,0xc0,0xc0,0xc0,0x80,0x80,0xc0,0x80,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xe0,0xd0,0xe0,0xe0,0xe0,0xf0,0xe0,0xe0,0xf0,0xe8,0xf0,0xf8,0xf0,0xe4,0xf8,0xfc,0xf8,0xe2,0xfc,0xfe,0xfc,0xe0,0xfe,0xfe,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xf0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,0xe0,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
|
||||
|
||||
+282
-218
@@ -18,13 +18,13 @@
|
||||
#define TR_VRENAVIG "No REaREb"
|
||||
|
||||
#define LEN_VBLMODE "\004"
|
||||
#define TR_VBLMODE "OFF ""Keys""Stks""Dos ""ON\0"
|
||||
#define TR_VBLMODE "OFF ""Keys""Stks""Both""ON\0"
|
||||
|
||||
#define LEN_TRNMODE "\003"
|
||||
#define TR_TRNMODE "off"" +="" :="
|
||||
#define TR_TRNMODE "OFF"" +="" :="
|
||||
|
||||
#define LEN_TRNCHN "\003"
|
||||
#define TR_TRNCHN "ch1ch2ch3ch4"
|
||||
#define TR_TRNCHN "CH1CH2CH3CH4"
|
||||
|
||||
#define LEN_DATETIME "\005"
|
||||
#define TR_DATETIME "DATA:""HORA:"
|
||||
@@ -32,36 +32,43 @@
|
||||
#define LEN_VLCD "\006"
|
||||
#define TR_VLCD "NormalOptrex"
|
||||
|
||||
#define LEN_VTRIMINC "\006"
|
||||
#define TR_VTRIMINC "Expo ""ExFino""Fino ""Medio ""Grueso"
|
||||
#define LEN_VTRIMINC TR("\006","\013")
|
||||
#define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso","Exponencial""Extra Fino ""Fino ""Medio ""Grueso ")
|
||||
|
||||
#define LEN_RETA123 "\001"
|
||||
|
||||
#if defined(PCBGRUVIN9X)
|
||||
#if ROTARY_ENCODERS > 2
|
||||
#define TR_RETA123 "RETA123abcd"
|
||||
#if ROTARY_ENCODERS > 2
|
||||
#define TR_RETA123 "RETA123abcd"
|
||||
#else
|
||||
#define TR_RETA123 "RETA123ab"
|
||||
#endif
|
||||
#elif defined(PCBX9D)
|
||||
#define TR_RETA123 "RETA12LR"
|
||||
#else
|
||||
#define TR_RETA123 "RETA123ab"
|
||||
#endif
|
||||
#else
|
||||
#define TR_RETA123 "RETA123"
|
||||
#define TR_RETA123 "RETA123"
|
||||
#endif
|
||||
|
||||
#define LEN_VPROTOS "\006"
|
||||
#ifdef PXX
|
||||
#define TR_PXX "PXX\0 "
|
||||
|
||||
#if defined(PXX)
|
||||
#define TR_PXX "PXX\0 "
|
||||
#else
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#define TR_PXX "[PXX]\0"
|
||||
#endif
|
||||
#ifdef DSM2
|
||||
#define TR_DSM2 "DSM2\0 "
|
||||
|
||||
#if defined(DSM2)
|
||||
#define TR_DSM2 "DSM2\0 "
|
||||
#else
|
||||
#define TR_DSM2 "[DSM2]"
|
||||
#define TR_DSM2 "[DSM2]"
|
||||
#endif
|
||||
#ifdef IRPROTOS
|
||||
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
|
||||
|
||||
#if defined(IRPROTOS)
|
||||
#define TR_IRPROTOS "SILV TRAC09PICZ SWIFT\0"
|
||||
#else
|
||||
#define TR_IRPROTOS
|
||||
#define TR_IRPROTOS
|
||||
#endif
|
||||
|
||||
#define TR_VPROTOS "PPM\0 ""PPM16\0""PPMsim" TR_PXX TR_DSM2 TR_IRPROTOS
|
||||
|
||||
#define LEN_POSNEG "\003"
|
||||
@@ -71,7 +78,7 @@
|
||||
#define TR_VCURVEFUNC "---""x>0""x<0""|x|""f>0""f<0""|f|"
|
||||
|
||||
#define LEN_VMLTPX "\010"
|
||||
#define TR_VMLTPX "A\201adir ""Multipl.""Cambiar "
|
||||
#define TR_VMLTPX "Agregar ""Multipl.""Cambiar "
|
||||
|
||||
#define LEN_VMLTPX2 "\002"
|
||||
#define TR_VMLTPX2 "+=""*="":="
|
||||
@@ -82,70 +89,85 @@
|
||||
#define LEN_VCSWFUNC "\006"
|
||||
#define TR_VCSWFUNC "---\0 ""v1>x\0 ""v1<x\0 ""|v1|>x""|v1|<x""AND\0 ""OR\0 ""XOR\0 ""v1==v2""v1!=v2""v1>v2\0""v1<v2\0""v1>=v2""v1<=v2""d>=x\0 ""|d|>=x"
|
||||
|
||||
#define LEN_VFSWFUNC "\015"
|
||||
#define LEN_VFSWFUNC "\013"
|
||||
|
||||
#if defined(VARIO)
|
||||
#define TR_VVARIO "Vario "
|
||||
#define TR_VVARIO "Vario\0 "
|
||||
#else
|
||||
#define TR_VVARIO "[Vario] "
|
||||
#define TR_VVARIO "[Vario]\0 "
|
||||
#endif
|
||||
|
||||
#if defined(AUDIO)
|
||||
#define TR_SOUND "Oir Sonido\0 "
|
||||
#define TR_SOUND "Oir sonido\0"
|
||||
#else
|
||||
#define TR_SOUND "Beep\0 "
|
||||
#define TR_SOUND "Beep\0 "
|
||||
#endif
|
||||
|
||||
#if defined(HAPTIC)
|
||||
#define TR_HAPTIC "Vibrar\0 "
|
||||
#define TR_HAPTIC "Tactil\0 "
|
||||
#else
|
||||
#define TR_HAPTIC "[Vibrar]\0 "
|
||||
#define TR_HAPTIC "[Tactil]\0 "
|
||||
#endif
|
||||
|
||||
#if defined(VOICE)
|
||||
#define TR_PLAY_TRACK "Oir Pista \0 "
|
||||
#define TR_PLAY_VALUE "Oir Valor \0 "
|
||||
#define TR_PLAY_TRACK "Oir pista \0"
|
||||
#define TR_PLAY_VALUE "Oir valor \0"
|
||||
#else
|
||||
#define TR_PLAY_TRACK "[Oir Pista] \0"
|
||||
#define TR_PLAY_VALUE "[Oir Valor] \0"
|
||||
#define TR_PLAY_TRACK "[Oir pista]"
|
||||
#define TR_PLAY_VALUE "[Oir Valor]"
|
||||
#endif
|
||||
#if defined(PCBSKY9X)
|
||||
#if defined(SDCARD)
|
||||
#define TR_SDCLOGS "SDCARD Logo\0 "
|
||||
#else
|
||||
#define TR_SDCLOGS "[SDCARD Logo]"
|
||||
#endif
|
||||
#define TR_FSW_VOLUME "Volumen\0 "
|
||||
|
||||
#if defined(CPUARM)
|
||||
#if defined(SDCARD)
|
||||
#define TR_SDCLOGS "SD Logs\0 "
|
||||
#else
|
||||
#define TR_SDCLOGS "[SD Logs]\0 "
|
||||
#endif
|
||||
#define TR_FSW_VOLUME "Volumen\0 "
|
||||
#define TR_FSW_BG_MUSIC "BgMusica\0 ""BgMusica||\0"
|
||||
#elif defined(PCBGRUVIN9X)
|
||||
#if defined(SDCARD)
|
||||
#define TR_SDCLOGS "SDCARD Logo "
|
||||
#if defined(SDCARD)
|
||||
#define TR_SDCLOGS "SD Logs\0 "
|
||||
#else
|
||||
#define TR_SDCLOGS "[SD Logs]\0 "
|
||||
#endif
|
||||
#define TR_FSW_VOLUME
|
||||
#define TR_FSW_BG_MUSIC
|
||||
#else
|
||||
#define TR_SDCLOGS "[SDCARD Logo]"
|
||||
#define TR_SDCLOGS
|
||||
#define TR_FSW_VOLUME
|
||||
#define TR_FSW_BG_MUSIC
|
||||
#endif
|
||||
#define TR_FSW_VOLUME
|
||||
#else
|
||||
#define TR_SDCLOGS
|
||||
#define TR_FSW_VOLUME
|
||||
|
||||
#ifdef GVARS
|
||||
#define TR_FSW_ADJUST_GVAR "Ajuste \0 "
|
||||
#else
|
||||
#define TR_FSW_ADJUST_GVAR
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
#define TR_TEST "Test\0"
|
||||
#define TR_FSW_TEST "Test\0"
|
||||
#else
|
||||
#define TR_TEST
|
||||
#define TR_FSW_TEST
|
||||
#endif
|
||||
#define TR_VFSWFUNC "Seguro\0 ""Aprendiz \0 ""Ajuste Rapido" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_VALUE TR_SDCLOGS TR_FSW_VOLUME "Panel Luz\0 " TR_TEST
|
||||
|
||||
#define LEN_VFSWRESET "\006"
|
||||
#define TR_VFSWRESET "Reloj1""Reloj2""Todo ""Telem."
|
||||
#define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Inst. Trim\0" TR_SOUND TR_HAPTIC "Reset\0 " TR_VVARIO TR_PLAY_TRACK TR_PLAY_VALUE TR_SDCLOGS TR_FSW_VOLUME "Panel luz\0 " TR_FSW_BG_MUSIC TR_FSW_ADJUST_GVAR TR_FSW_TEST
|
||||
|
||||
#define LEN_VFSWRESET TR("\006","\012")
|
||||
#define TR_VFSWRESET "Reloj 1 ""Reloj 2 ""Todo ""Telemetr."
|
||||
|
||||
#define LEN_FUNCSOUNDS "\006"
|
||||
#define TR_FUNCSOUNDS "Pito1 ""Pito2 ""Pito3 ""Avis1 ""Avis2 ""Pio ""Ring ""SciFi ""Robot ""Gorjeo""Tada ""Crickt""Sirena""Alarma""Ratata""Tictac"
|
||||
#define TR_FUNCSOUNDS "Beep1 ""Beep2 ""Beep3 ""Aviso1""Aviso2""Cheep ""Ring ""SciFi ""Robot ""Gorjeo""Tada ""Crickt""Sirena""Alarma""Ratata""Tictac"
|
||||
|
||||
#define LEN_VTELEMCHNS "\004"
|
||||
#define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""Tx\0 ""Rx\0 ""A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VVel""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cur+""Acc\0""Hora"
|
||||
#define TR_VTELEMCHNS "---\0""Tmr1""Tmr2""Tx\0 ""Rx\0 ""A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cur+""Acc\0""Hora"
|
||||
|
||||
#ifdef IMPERIAL_UNITS
|
||||
#define LENGTH_UNIT "ft\0"
|
||||
#define SPEED_UNIT "kts"
|
||||
#define LENGTH_UNIT "ft\0"
|
||||
#define SPEED_UNIT "kts"
|
||||
#else
|
||||
#define LENGTH_UNIT "m\0 "
|
||||
#define SPEED_UNIT "kmh"
|
||||
#define LENGTH_UNIT "m\0 "
|
||||
#define SPEED_UNIT "kmh"
|
||||
#endif
|
||||
|
||||
#define LEN_VTELEMUNIT "\003"
|
||||
@@ -160,7 +182,7 @@
|
||||
#define TR_VALARMFN "<>"
|
||||
|
||||
#define LEN_VTELPROTO "\007"
|
||||
#define TR_VTELPROTO "Nada\0 ""Hub\0 ""WSHHigh""Halcyon"
|
||||
#define TR_VTELPROTO "Nada\0 ""Hub\0 ""WSHHigh"
|
||||
|
||||
#define LEN_VOLTSRC "\003"
|
||||
#define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel"
|
||||
@@ -176,50 +198,72 @@
|
||||
|
||||
#define LEN2_VTEMPLATES 13
|
||||
#define LEN_VTEMPLATES "\015"
|
||||
#define TR_VTEMPLATES "Elim Mezcla\0\0""Simple 4-CH \0""Anular Motor\0""V-Tail \0""Elevon\\Delta\0""eCCPM \0""Heli Setup \0""Servo Test \0"
|
||||
#define TR_VTEMPLATES "Elim Mezcla\0\0""Simple 4-CH \0""Anular Motor\0""Cola en V \0""Elevon\\Delta\0""eCCPM \0""Heli Setup \0""Servo Test \0"
|
||||
|
||||
#define LEN_VSWASHTYPE "\004"
|
||||
#define TR_VSWASHTYPE "--- ""120 ""120X""140 ""90\0"
|
||||
|
||||
#define LEN_VKEYS "\005"
|
||||
#define TR_VKEYS " Menu""Salir""Abajo""Arrib""Drcha"" Izqda"
|
||||
#define TR_VKEYS " Menu""Salir""Abajo""Arrib""Dcha.""Izqd."
|
||||
|
||||
#define LEN_VRENCODERS "\003"
|
||||
#define TR_VRENCODERS "REa""REb"
|
||||
|
||||
#define LEN_VSWITCHES "\003"
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_VSWITCHES "THR""RUD""ELE""ID0""ID1""ID2""AIL""GEA""TRN""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW"" ON"
|
||||
|
||||
#if 0
|
||||
#define TR_EXTRA_3POS_SWITCHES "ID3""ID4""ID5"
|
||||
#else
|
||||
#define TR_VSWITCHES "THR""RUD""ELE""ID0""ID1""ID2""AIL""GEA""TRN""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC"" ON"
|
||||
#define TR_EXTRA_3POS_SWITCHES
|
||||
#endif
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW"" ON"
|
||||
#elif defined(PCBSKY9X)
|
||||
#define TR_VSWITCHES "ACE""DIR""ELE""ID0""ID1""ID2" TR_EXTRA_3POS_SWITCHES "ALE""GEA""TRN""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC""CSD""CSE""CSF""CSG""CSH""CSI""CSJ""CSK""CSL""CSM""CSN""CSO""CSP""CSQ""CSR""CSS""CST""CSU""CSV""CSW"" ON"
|
||||
#else
|
||||
#define TR_VSWITCHES "ACE""DIR""ELE""ID0""ID1""ID2" TR_EXTRA_3POS_SWITCHES "ALE""GEA""TRN""CS1""CS2""CS3""CS4""CS5""CS6""CS7""CS8""CS9""CSA""CSB""CSC"" ON"
|
||||
#endif
|
||||
|
||||
#define LEN_VSRCRAW "\004"
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW "REa "
|
||||
#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS > 2
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb ""REc ""REd "
|
||||
#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS <= 2
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb "
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#define TR_POTS_VSRCRAW "S1\0 ""S2\0 ""LS\0 ""RS\0 "
|
||||
#define TR_SW_VSRCRAW "SA\0 ""SB\0 ""SC\0 ""SD\0 ""SE\0 ""SF\0 ""SG\0 ""SH\0 "
|
||||
#elif EXTRA_3POS == 1
|
||||
#define TR_POTS_VSRCRAW "3PO2""P2\0 ""P3\0 "
|
||||
#define TR_SW_VSRCRAW "3PO1"
|
||||
#elif EXTRA_3POS == 2
|
||||
#define TR_POTS_VSRCRAW "P1\0 ""3PO2""P3\0 "
|
||||
#define TR_SW_VSRCRAW "3PO1"
|
||||
#elif EXTRA_3POS == 3
|
||||
#define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""3PO2"
|
||||
#define TR_SW_VSRCRAW "3PO1"
|
||||
#else
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW
|
||||
#endif
|
||||
#if defined(HELI)
|
||||
#define TR_CYC_VSRCRAW "CYC1""CYC2""CYC3"
|
||||
#else
|
||||
#define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]"
|
||||
#define TR_POTS_VSRCRAW "P1\0 ""P2\0 ""P3\0 "
|
||||
#define TR_SW_VSRCRAW "3POS"
|
||||
#endif
|
||||
|
||||
#if EXTRA_3POS == 1
|
||||
#define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""3PO2""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW
|
||||
#elif EXTRA_3POS == 2
|
||||
#define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""P1 ""3PO2""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW
|
||||
#elif EXTRA_3POS == 3
|
||||
#define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""P1 ""P2 ""3PO2" TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3PO1" TR_CYC_VSRCRAW
|
||||
#if defined(PCBX9D)
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW
|
||||
#elif defined(PCBSKY9X)
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW "REa "
|
||||
#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS > 2
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb ""REc ""REd "
|
||||
#elif defined(PCBGRUVIN9X) && ROTARY_ENCODERS <= 2
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW "REa ""REb "
|
||||
#else
|
||||
#define TR_VSRCRAW "Dir ""Ele ""Acel""Ail ""P1 ""P2 ""P3 " TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX ""3POS" TR_CYC_VSRCRAW
|
||||
#define TR_ROTARY_ENCODERS_VSRCRAW
|
||||
#endif
|
||||
|
||||
#if defined(HELI)
|
||||
#define TR_CYC_VSRCRAW "CYC1""CYC2""CYC3"
|
||||
#else
|
||||
#define TR_CYC_VSRCRAW "[C1]""[C2]""[C3]"
|
||||
#endif
|
||||
|
||||
#define TR_VSRCRAW "Dir\0""Ele\0""Ace\0""Ale\0" TR_POTS_VSRCRAW TR_ROTARY_ENCODERS_VSRCRAW "TrmR" "TrmE" "TrmT" "TrmA" "MAX " TR_SW_VSRCRAW TR_CYC_VSRCRAW
|
||||
|
||||
#define LEN_VTMRMODES "\003"
|
||||
#define TR_VTMRMODES "OFF""ABS""THs""TH%""THt"
|
||||
|
||||
@@ -231,110 +275,126 @@
|
||||
#define LEN_INDENT 1
|
||||
#define INDENT_WIDTH (FW/2)
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#define TR_POPUPS "[INTRO]\010[SALIR]"
|
||||
#else
|
||||
#define TR_POPUPS "[MENU]\010[SALIR]"
|
||||
#endif
|
||||
#define OFS_EXIT 7
|
||||
#define TR_MENUWHENDONE CENTER"\006[MENU]AL FINAL"
|
||||
#define TR_FREE "Libre"
|
||||
#define TR_DELETEMODEL "BORRA MODELO"
|
||||
#define TR_COPYINGMODEL "Copiando modelo."
|
||||
#if defined(PCBX9D)
|
||||
#define TR_MENUWHENDONE CENTER"\006[INTRO]AL ACABAR"
|
||||
#else
|
||||
#define TR_MENUWHENDONE CENTER"\006[MENU]AL ACABAR"
|
||||
#endif
|
||||
#define TR_FREE "libre"
|
||||
#define TR_DELETEMODEL "BORRAR MODELO"
|
||||
#define TR_COPYINGMODEL "Copiando modelo.."
|
||||
#define TR_MOVINGMODEL "Mover modelo..."
|
||||
#define TR_LOADINGMODEL "Cargar modelo..."
|
||||
#define TR_NAME "Nombre"
|
||||
#define TR_TIMER "Reloj"
|
||||
#define TR_ELIMITS "F.Limites"
|
||||
#define TR_ETRIMS "F.Ajustes"
|
||||
#define TR_TRIMINC "Modo Ajte"
|
||||
#define TR_TTRACE "T-Rastro"
|
||||
#define TR_TTRIM "T-Ajuste"
|
||||
#define TR_BEEPCTR "Pitido en"
|
||||
#define TR_PROTO INDENT"Protocolo"
|
||||
#define TR_PPMFRAME "Medida PPM"
|
||||
#define TR_MODELNAME "Nom.Modelo"
|
||||
#define TR_PHASENAME "Nom. Fase"
|
||||
#define TR_MIXNAME "Nom.Mezcla"
|
||||
#define TR_EXPONAME "Nom. Expo"
|
||||
#define TR_BITMAP "Imagen Modelo"
|
||||
#define TR_TIMER TR("Reloj","Reloj ")
|
||||
#define TR_ELIMITS TR("E.Limite","Ampliar Limites")
|
||||
#define TR_ETRIMS TR("E.Trims","Ampliar Trims")
|
||||
#define TR_TRIMINC "Trim Step"
|
||||
#define TR_TTRACE TR("T-Source","Fuente Acelerad.")
|
||||
#define TR_TTRIM TR("T-Trim","Trim Acelerad.")
|
||||
#define TR_BEEPCTR TR("Ctr Beep","Center Beep")
|
||||
#define TR_PROTO TR(INDENT"Proto",INDENT"Protocolo")
|
||||
#define TR_PPMFRAME "Trama PPM"
|
||||
#define TR_MS "ms"
|
||||
#define TR_SWITCH "Llave"
|
||||
#define TR_TRIMS "Ajustes"
|
||||
#define TR_FADEIN "Aparecer"
|
||||
#define TR_FADEOUT "Ocultar"
|
||||
#define TR_DEFAULT "(p/defecto)"
|
||||
#define TR_CHECKTRIMS "\006Check\012Ajtes"
|
||||
#define OFS_CHECKTRIMS (9*FW)
|
||||
#define TR_SWASHTYPE "Ciclico Tipo"
|
||||
#define TR_SWITCH "Interr"
|
||||
#define TR_TRIMS "Trims"
|
||||
#define TR_FADEIN "Inicio"
|
||||
#define TR_FADEOUT "Final"
|
||||
#define TR_DEFAULT "(defecto)"
|
||||
#define TR_CHECKTRIMS CENTER"\006Check\012Trims"
|
||||
#define OFS_CHECKTRIMS CENTER_OFS+(9*FW)
|
||||
#define TR_SWASHTYPE "Tipo Ciclico"
|
||||
#define TR_COLLECTIVE "Colectivo"
|
||||
#define TR_BITMAP "Bitmap"
|
||||
#define TR_SWASHRING "Anillo Cvo"
|
||||
#define TR_SWASHRING "Ciclico"
|
||||
#define TR_ELEDIRECTION "ELE Direccion"
|
||||
#define TR_AILDIRECTION "ALE Direccion"
|
||||
#define TR_AILDIRECTION "AIL Direccion"
|
||||
#define TR_COLDIRECTION "COL Direccion"
|
||||
#define TR_MODE "Modo"
|
||||
#define TR_MODE INDENT"Modo"
|
||||
#define TR_NOFREEEXPO "No free expo!"
|
||||
#define TR_NOFREEMIXER "No free mixer!"
|
||||
#define TR_INSERTMIX "INSERT MIX "
|
||||
#define TR_EDITMIX "EDIT MIX "
|
||||
#define TR_INSERTMIX "INSERTAR MIX"
|
||||
#define TR_EDITMIX "EDITAR MIX"
|
||||
#define TR_SOURCE INDENT"Fuente"
|
||||
#define TR_WEIGHT "Cantidad"
|
||||
#define TR_EXPO "Expo"
|
||||
#define TR_SIDE "Lado"
|
||||
#define TR_DIFFERENTIAL "Diferir"
|
||||
#define TR_DIFFERENTIAL "Diferenc"
|
||||
#define TR_OFFSET INDENT"Offset"
|
||||
#define TR_TRIM "Ajte"
|
||||
#define TR_TRIM "Trim"
|
||||
#define TR_DREX "DRex"
|
||||
#define TR_CURVE "Curva"
|
||||
#define TR_FPHASE "Fase"
|
||||
#define TR_MIXWARNING "Aviso"
|
||||
#define TR_OFF "OFF"
|
||||
#define TR_MULTPX "Multipl"
|
||||
#define TR_MULTPX "Multpx"
|
||||
#define TR_DELAYDOWN "Delay Dn"
|
||||
#define TR_DELAYUP "Delay Up"
|
||||
#define TR_SLOWDOWN "Slow Dn"
|
||||
#define TR_SLOWUP "Slow Up"
|
||||
#define TR_MIXER "MEZCLA"
|
||||
#define TR_MIXER "Mezclas"
|
||||
#define TR_CV "CV"
|
||||
#define TR_GV "GV"
|
||||
#define TR_ACHANNEL "A\004Canal"
|
||||
#define TR_RANGE INDENT"Range"
|
||||
#define TR_ACHANNEL "A\004canal"
|
||||
#define TR_RANGE INDENT"Alcance"
|
||||
#define TR_BAR "Bar"
|
||||
#define TR_ALARM INDENT"Alarma"
|
||||
#define TR_USRDATA "UsrData"
|
||||
#define TR_BLADES INDENT"Palas"
|
||||
#define TR_SCREEN "Screen "
|
||||
#define TR_SOUND_LABEL "Sound"
|
||||
#define TR_LENGTH INDENT"Length"
|
||||
#define TR_SPKRPITCH "Speaker Pitch"
|
||||
#define TR_HAPTIC_LABEL "Haptic"
|
||||
#define TR_HAPTICSTRENGTH INDENT"Strength"
|
||||
#define TR_SCREEN "Pantalla"
|
||||
#define TR_SOUND_LABEL "Sonido"
|
||||
#define TR_LENGTH INDENT"Longitud"
|
||||
#define TR_SPKRPITCH INDENT"Tono"
|
||||
#define TR_HAPTIC_LABEL "Tactil"
|
||||
#define TR_HAPTICSTRENGTH INDENT"Intensidad"
|
||||
#define TR_CONTRAST "Contraste"
|
||||
#define TR_ALARMS_LABEL "Alarms"
|
||||
#define TR_BATTERYWARNING "Aviso Bateria"
|
||||
#define TR_INACTIVITYALARM "Alarma Reposo"
|
||||
#define TR_RENAVIG "Navig RotEnc"
|
||||
#define TR_THROTTLEREVERSE "Inversion Acel."
|
||||
#define TR_BEEP_LABEL "Timer events"
|
||||
#define TR_MINUTEBEEP "Pitido/minuto"
|
||||
#define TR_BEEPCOUNTDOWN "Pitido ctaatras"
|
||||
#define TR_BACKLIGHT_LABEL "Backlight"
|
||||
#define TR_FLASHONBEEP "Flash al pitido"
|
||||
#define TR_BLMODE "Modo P.Luminoso"
|
||||
#define TR_BLDELAY "Tiempo de Luz"
|
||||
#define TR_SPLASHSCREEN "Pantalla Inicio"
|
||||
#define TR_THROTTLEWARNING "A Acel"
|
||||
#define TR_SWITCHWARNING "A Llaves"
|
||||
#define TR_MEMORYWARNING "Aviso Memoria"
|
||||
#define TR_ALARMWARNING "Aviso de alarma"
|
||||
#define TR_TIMEZONE "Zona Horaria"
|
||||
#define TR_RXCHANNELORD "Rx Ord Canal"
|
||||
#define TR_ALARMS_LABEL "Alarmas"
|
||||
#define TR_BATTERYWARNING INDENT"Bateria Baja"
|
||||
#define TR_INACTIVITYALARM INDENT"Inactividad"
|
||||
#define TR_MEMORYWARNING INDENT"Memoria Baja"
|
||||
#define TR_ALARMWARNING INDENT"Sin Sonido"
|
||||
#define TR_RENAVIG "RotEnc Naveg"
|
||||
#define TR_THROTTLEREVERSE TR("Acel Invert","Invertir Acel.")
|
||||
#define TR_BEEP_LABEL "Pitos Reloj"
|
||||
#define TR_MINUTEBEEP TR(INDENT"Minuto",INDENT"Cada minuto")
|
||||
#define TR_BEEPCOUNTDOWN INDENT"Cuentaatras"
|
||||
#define TR_BACKLIGHT_LABEL "Luz Fondo"
|
||||
#define TR_BLDELAY INDENT"Duracion"
|
||||
#define TR_SPLASHSCREEN "Ptalla. Inicio"
|
||||
#define TR_THROTTLEWARNING TR("A-Aviso","Aviso Aceler.")
|
||||
#define TR_SWITCHWARNING TR("I-Aviso","Aviso Intrrptor")
|
||||
#define TR_TIMEZONE TR("Zona Hora","GPS Zona Horar.")
|
||||
#define TR_RXCHANNELORD TR("Rx Channel Ord","Orden habitual canales")
|
||||
#define TR_SLAVE "Esclavo"
|
||||
#define TR_MODESRC "modo\006% src"
|
||||
#define TR_MODESRC "Modo\006% Fuente"
|
||||
#define TR_MULTIPLIER "Multiplicar"
|
||||
#define TR_CAL "Cal"
|
||||
#define TR_VTRIM "Ajte- +"
|
||||
#define TR_VTRIM "Trim- +"
|
||||
#define TR_BG "BG:"
|
||||
#define TR_MENUTOSTART CENTER"\007[MENU] INICIAR"
|
||||
#define TR_SETMIDPOINT CENTER"\006AJUSTAR CENTROS"
|
||||
#define TR_MOVESTICKSPOTS CENTER"\005MOVER STICK/POT"
|
||||
|
||||
#if defined(PCBX9D)
|
||||
#define TR_MENUTOSTART CENTER"\006[INTRO] EMPEZAR"
|
||||
#else
|
||||
#define TR_MENUTOSTART CENTER"\006[MENU] EMPEZAR"
|
||||
#endif
|
||||
|
||||
#define TR_SETMIDPOINT CENTER"\003STICKS AL CENTRO"
|
||||
#define TR_MOVESTICKSPOTS CENTER"\006MOVER STICKS/POTS"
|
||||
#define TR_RXBATT "Rx Batt:"
|
||||
#define TR_TXnRX "Tx:\0Rx:"
|
||||
#define OFS_RX 4
|
||||
#define TR_ACCEL "Acc:"
|
||||
#define TR_NODATA "si"
|
||||
#define TR_NODATA "SIN DATOS"
|
||||
#define TR_TM1TM2 "TM1\032TM2"
|
||||
#define TR_THRTHP "THR\032TH%"
|
||||
#define TR_TOT "TOT"
|
||||
@@ -342,126 +402,130 @@
|
||||
#define STR_US (STR_TMR1LATMAXUS+12)
|
||||
#define TR_TMR1LATMINUS "Tmr1Lat min\006us"
|
||||
#define TR_TMR1JITTERUS "Tmr1 Jitter\006us"
|
||||
#if defined(PCBSKY9X)
|
||||
#define TR_TMIXMAXMS "Tmix max\012ms"
|
||||
|
||||
#if defined(CPUARM)
|
||||
#define TR_TMIXMAXMS "Tmix max\012ms"
|
||||
#else
|
||||
#define TR_TMIXMAXMS "Tmix max\014ms"
|
||||
#define TR_TMIXMAXMS "Tmix max\014ms"
|
||||
#endif
|
||||
|
||||
#define TR_T10MSUS "T10ms\016us"
|
||||
#define TR_FREESTACKMINB "Pila libre\010b"
|
||||
#define TR_MENUTORESET "[MENU] Reinicia"
|
||||
#define TR_MENUTORESET "[MENU] Resetea"
|
||||
#define TR_PPM "PPM"
|
||||
#define TR_CH "CH"
|
||||
#define TR_MODEL "MODELO"
|
||||
#define TR_FP "FP"
|
||||
#define TR_MIX "MIX"
|
||||
#define TR_EEPROMLOWMEM "EEPROM Baja mem"
|
||||
#define TR_EEPROMLOWMEM "EEPROM Mem. baja"
|
||||
#define TR_ALERT "\016ALERTA"
|
||||
#define TR_PRESSANYKEYTOSKIP "Pulsa tecla x omitir"
|
||||
#define TR_THROTTLENOTIDLE "Acelerador activado"
|
||||
#define TR_ALARMSDISABLED "Alarmas Desact."
|
||||
#define TR_PRESSANYKEY "\010Pulse una tecla"
|
||||
#define TR_BADEEPROMDATA "Datos EEprom mal"
|
||||
#define TR_EEPROMFORMATTING "Formateo EEPROM"
|
||||
#define TR_EEPROMOVERFLOW "Desborde EEPROM"
|
||||
#define TR_MENURADIOSETUP "AJUSTAR RADIO"
|
||||
#define TR_PRESSANYKEYTOSKIP CENTER"Pulsar tecla omitir"
|
||||
#define TR_THROTTLENOTIDLE CENTER"Aceler. Activado "
|
||||
#define TR_ALARMSDISABLED CENTER"Alarmas Desact."
|
||||
#define TR_PRESSANYKEY TR("\010Pulsa una tecla",CENTER"Pulsa una tecla")
|
||||
#define TR_BADEEPROMDATA CENTER"Datos EEprom mal"
|
||||
#define TR_EEPROMFORMATTING CENTER"Formateando EEPROM"
|
||||
#define TR_EEPROMOVERFLOW CENTER"Desborde EEPROM"
|
||||
#define TR_MENURADIOSETUP "CONFIGURACION"
|
||||
#define TR_MENUDATEANDTIME "FECHA Y HORA"
|
||||
#define TR_MENUTRAINER "APRENDIZAJE"
|
||||
#define TR_MENUTRAINER "APRENDIZ"
|
||||
#define TR_MENUVERSION "VERSION"
|
||||
#define TR_MENUDIAG "DIAGNOST."
|
||||
#define TR_MENUANA "ANALOGICOS"
|
||||
#define TR_MENUDIAG "DIAG"
|
||||
#define TR_MENUANA "ANAS"
|
||||
#define TR_MENUCALIBRATION "CALIBRACION"
|
||||
#define TR_TRIMS2OFFSETS "\006Trims => Offsets"
|
||||
#define TR_MENUMODELSEL "MODELSEL"
|
||||
#define TR_MENUSETUP "AJUSTE"
|
||||
#define TR_MENUFLIGHTPHASE "FASE DE VUELO"
|
||||
#define TR_MENUFLIGHTPHASES "FASES DE VUELO"
|
||||
#define TR_MENUHELISETUP "AJUSTE HELI"
|
||||
#if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ...
|
||||
#define TR_MENUDREXPO "STICKS"
|
||||
#define TR_MENULIMITS "SALIDAS"
|
||||
#define TR_MENUMODELSEL TR("MODELSEL","SELECION MODELO")
|
||||
#define TR_MENUSETUP TR("CONF.","CONF. MODELO")
|
||||
#define TR_MENUFLIGHTPHASE "FASE VUELO"
|
||||
#define TR_MENUFLIGHTPHASES "FASES VUELO"
|
||||
#define TR_MENUHELISETUP "CONF.HELI"
|
||||
|
||||
#if defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // Los titulos del menu derecho para gurus ...
|
||||
#define TR_MENUDREXPO "STICKS"
|
||||
#define TR_MENULIMITS "SALIDAS"
|
||||
#else
|
||||
#define TR_MENUDREXPO "DR/EXPO"
|
||||
#define TR_MENULIMITS "LIMITES"
|
||||
#define TR_MENUDREXPO "DR/EXPO"
|
||||
#define TR_MENULIMITS "LIMITES"
|
||||
#endif
|
||||
|
||||
#define TR_MENUCURVES "CURVAS"
|
||||
#define TR_MENUCURVE "CURVA"
|
||||
#define TR_MENUCUSTOMSWITCH "AJUSTES PROPIOS"
|
||||
#define TR_MENUCUSTOMSWITCHES "AJUSTE PROPIO"
|
||||
#define TR_MENUCUSTOMFUNC "AJUSTAR FUNCIONES"
|
||||
#define TR_MENUCUSTOMSWITCH "AJTE.INTERUP."
|
||||
#define TR_MENUCUSTOMSWITCHES "AJTE.INTERUPTS"
|
||||
#define TR_MENUCUSTOMFUNC "AJTE.FUNCIONES"
|
||||
#define TR_MENUTELEMETRY "TELEMETRIA"
|
||||
#define TR_MENUTEMPLATES "PLANTILLAS"
|
||||
#define TR_MENUSTAT "REGISTRO"
|
||||
#define TR_MENUDEBUG "DEPURAR"
|
||||
#define TR_RXNUM "RxNum"
|
||||
#define TR_MENUSTAT "STATS"
|
||||
#define TR_MENUDEBUG "DEBUG"
|
||||
#define TR_RXNUM TR("RxNum","Numero Receptor")
|
||||
#define TR_SYNCMENU "Sync [MENU]"
|
||||
#define TR_BACK "Atras"
|
||||
#define TR_LIMIT INDENT "Limit"
|
||||
#define TR_LIMIT INDENT"Limite"
|
||||
#define TR_MINRSSI "Min Rssi"
|
||||
#define TR_LATITUDE "Latitud"
|
||||
#define TR_LONGITUDE "Longitud"
|
||||
#define TR_GPSCOORD "Gps Coords"
|
||||
#define TR_VARIO "Vario"
|
||||
#define TR_GPSCOORD TR("GPS Coords","GPS formatear coords.")
|
||||
#define TR_VARIO TR("Vario","Variometro")
|
||||
#define TR_SHUTDOWN "APAGANDO"
|
||||
#define TR_BATT_CALIB "Bateria Calib"
|
||||
#define TR_CURRENT_CALIB "Actual Calib"
|
||||
#define TR_VOLTAGE "Voltaje"
|
||||
#define TR_CURRENT "Actual"
|
||||
#define TR_BATT_CALIB "Calib.bateria"
|
||||
#define TR_CURRENT_CALIB "Calib.Actual"
|
||||
#define TR_VOLTAGE INDENT"Voltaje"
|
||||
#define TR_CURRENT INDENT"Actual"
|
||||
#define TR_SELECT_MODEL "Selec Modelo"
|
||||
#define TR_CREATE_MODEL "Crear Modelo"
|
||||
#define TR_BACKUP_MODEL "Salvar Model"
|
||||
#define TR_DELETE_MODEL "Borrar Model"
|
||||
#define TR_RESTORE_MODEL "Recupr.Model"
|
||||
#define TR_BACKUP_MODEL "Backup Modelo"
|
||||
#define TR_DELETE_MODEL "Borrar Modelo"
|
||||
#define TR_RESTORE_MODEL "Recuper Modelo"
|
||||
#define TR_SDCARD_ERROR "SDCARD Error"
|
||||
#define TR_NO_SDCARD "No SDCARD"
|
||||
#define TR_INCOMPATIBLE "Inconpatible"
|
||||
#define TR_INCOMPATIBLE "Incompatible"
|
||||
#define TR_WARNING "AVISO"
|
||||
#define TR_EEPROMWARN "EEPROM"
|
||||
#define TR_THROTTLEWARN "ACELERAD"
|
||||
#define TR_THROTTLEWARN "ACELERADOR"
|
||||
#define TR_ALARMSWARN "ALARMAS"
|
||||
#define TR_SWITCHWARN "LLAVE"
|
||||
#define TR_INVERT_THR "Invert acel?"
|
||||
#define TR_SPEAKER_VOLUME "Volume Altavoz"
|
||||
#define TR_SWITCHWARN "INTERPTOR"
|
||||
#define TR_INVERT_THR TR("Invertir Acel?","Invertir Acel.?")
|
||||
#define TR_SPEAKER_VOLUME INDENT"Volumen"
|
||||
#define TR_LCD "LCD"
|
||||
#define TR_BRIGHTNESS "Brillo"
|
||||
#define TR_CPU_TEMP "CPU Temp.\016>"
|
||||
#define TR_CPU_CURRENT "Actual\022>"
|
||||
#define TR_CPU_MAH "Consum."
|
||||
#define TR_CPU_MAH "Consumpt."
|
||||
#define TR_COPROC "CoProc."
|
||||
#define TR_COPROC_TEMP "MB Temp. \016>"
|
||||
#define TR_CAPAWARNING INDENT "Capacidad Low"
|
||||
#define TR_TEMPWARNING INDENT "Temperat High"
|
||||
#define TR_FUNC "Funcion"
|
||||
#define TR_CAPAWARNING INDENT"Capacidad Baja"
|
||||
#define TR_TEMPWARNING TR(INDENT"Temp. Alta",INDENT"Temperatura Alta")
|
||||
#define TR_FUNC "Func"
|
||||
#define TR_V1 "V1"
|
||||
#define TR_V2 "V2"
|
||||
#define TR_DURATION "Duracion"
|
||||
#define TR_DELAY "Retardo"
|
||||
#define TR_SD_CARD "SD Card"
|
||||
#define TR_SDHC_CARD "SD-HC Card"
|
||||
#define TR_NO_SOUNDS_ON_SD "No Sonido en SD"
|
||||
#define TR_NO_MODELS_ON_SD "No Modelos en SD"
|
||||
#define TR_DELAY "Atraso"
|
||||
#define TR_SD_CARD "SD CARD"
|
||||
#define TR_SDHC_CARD "SD-HC CARD"
|
||||
#define TR_NO_SOUNDS_ON_SD "Sin Sonidos en SD"
|
||||
#define TR_NO_MODELS_ON_SD "Sin Modelos en SD"
|
||||
#define TR_NO_BITMAPS_ON_SD "Sin imagenes en SD"
|
||||
#define TR_PLAY_FILE "Play"
|
||||
#define TR_DELETE_FILE "Borrar"
|
||||
#define TR_COPY_FILE "Copiar"
|
||||
#define TR_RENAME_FILE "Renomb"
|
||||
#define TR_REMOVED "borrado"
|
||||
#define TR_SD_INFO "Infos"
|
||||
#define TR_SD_FORMAT "Formateo"
|
||||
#define TR_RENAME_FILE "Renombrar"
|
||||
#define TR_REMOVED " borrado"
|
||||
#define TR_SD_INFO "Informacion"
|
||||
#define TR_SD_FORMAT "Formatear"
|
||||
#define TR_NA "N/A"
|
||||
#define TR_HARDWARE "HARDWARE"
|
||||
#define TR_FORMATTING "Formatting..."
|
||||
#define TR_HARDWARE "COMPONENTES"
|
||||
#define TR_FORMATTING "Formateando."
|
||||
#define TR_TEMP_CALIB "Temp. Calib"
|
||||
#define TR_TIME "Time"
|
||||
#define TR_TIME "Hora"
|
||||
#define TR_BAUDRATE "BT Baudrate"
|
||||
#define TR_SD_INFO_TITLE "SD INFO"
|
||||
#define TR_SD_TYPE "Type:"
|
||||
#define TR_SD_SPEED "Speed:"
|
||||
#define TR_SD_SECTORS "Sectors:"
|
||||
#define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD"
|
||||
#define TR_SD_SIZE "Size:"
|
||||
#define TR_CURVE_TYPE "Type"
|
||||
#define TR_SD_TYPE "Tipo:"
|
||||
#define TR_SD_SPEED "Velocidad:"
|
||||
#define TR_SD_SECTORS "Sectores:"
|
||||
#define TR_SD_SIZE "Medida:"
|
||||
#define TR_CURVE_TYPE "Tipo"
|
||||
#define TR_GLOBAL_VARS "Global Variables"
|
||||
#define TR_OWN "Own"
|
||||
#define TR_DATE "Date"
|
||||
#define TR_OWN "Propio"
|
||||
#define TR_DATE "Fecha"
|
||||
#define TR_ROTARY_ENCODER "R.Encs"
|
||||
#define TR_CHANNELS_MONITOR "CHANNELS MONITOR"
|
||||
#define TR_CHANNELS_MONITOR "MONITOR CANALES"
|
||||
|
||||
@@ -118,6 +118,16 @@ void usbMassStorage()
|
||||
{
|
||||
}
|
||||
|
||||
void watchdogInit()
|
||||
{
|
||||
IWDG->KR = 0x5555 ; // Unlock registers
|
||||
IWDG->PR = 3 ; // Divide by 32 => 1kHz clock
|
||||
IWDG->KR = 0x5555 ; // Unlock registers
|
||||
IWDG->RLR = 1500 ; // 1.5 seconds nominal
|
||||
IWDG->KR = 0xAAAA ; // reload
|
||||
IWDG->KR = 0xCCCC ; // start
|
||||
}
|
||||
|
||||
// Starts TIMER at 200Hz, 5mS period
|
||||
void init5msTimer()
|
||||
{
|
||||
|
||||
+13
-5
@@ -79,9 +79,6 @@ extern uint16_t sessionTimer;
|
||||
void delaysInit();
|
||||
void debugInit();
|
||||
|
||||
void init_trainer_ppm();
|
||||
void init_trainer_capture();
|
||||
|
||||
#define DEBUG_UART_BAUDRATE 115200
|
||||
|
||||
void uartInit(void);
|
||||
@@ -102,6 +99,16 @@ void sdPoll10ms();
|
||||
uint32_t sdMounted();
|
||||
#endif
|
||||
|
||||
// Pulses driver
|
||||
void init_main_ppm();
|
||||
void disable_main_ppm();
|
||||
void init_pxx();
|
||||
void disable_pxx();
|
||||
|
||||
// Trainer driver
|
||||
void init_trainer_ppm();
|
||||
void init_trainer_capture();
|
||||
|
||||
// Keys driver
|
||||
void keysInit();
|
||||
uint32_t readKeys();
|
||||
@@ -114,8 +121,9 @@ uint32_t readKeys();
|
||||
// WDT driver
|
||||
#if !defined(SIMU)
|
||||
#define wdt_disable()
|
||||
#define wdt_enable(x)
|
||||
#define wdt_reset()
|
||||
void watchdogInit();
|
||||
#define wdt_enable(x) watchdogInit()
|
||||
#define wdt_reset() IWDG->KR = 0xAAAA
|
||||
#endif
|
||||
|
||||
// ADC driver
|
||||
|
||||
@@ -88,6 +88,8 @@
|
||||
#define PIN_TR_PPM_OUT GPIO_Pin_9 //PC.09
|
||||
|
||||
// TODO merge these constants
|
||||
#define PIN_PER_1 0x0010
|
||||
#define PIN_PORTA 0x0000
|
||||
#define PIN_PER_3 0x030
|
||||
// #define PIN_OS2 0x0000
|
||||
#define PIN_OS25 0x2000
|
||||
|
||||
+128
-5
@@ -34,20 +34,143 @@
|
||||
|
||||
#include "../open9x.h"
|
||||
|
||||
void init_main_ppm( uint32_t period, uint32_t out_enable )
|
||||
// TODO not here!
|
||||
void setupPulses();
|
||||
void setupPulsesPPM();
|
||||
void setupPulsesPXX();
|
||||
|
||||
uint16_t *ppmStreamPtr;
|
||||
extern uint16_t ppmStream[20];
|
||||
extern uint16_t pxxStream[400] ;
|
||||
|
||||
void init_pxx()
|
||||
{
|
||||
// Timer1
|
||||
setupPulsesPXX() ; // TODO not here!
|
||||
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock
|
||||
configure_pins( 0x0100, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_1 | PIN_OS25 | PIN_PUSHPULL ) ;
|
||||
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN ; // Enable clock
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_DMA2EN ; // Enable DMA1 clock
|
||||
|
||||
TIM1->CR1 &= ~TIM_CR1_CEN ;
|
||||
TIM1->ARR = 18000 ; // 9mS
|
||||
TIM1->CCR2 = 15000 ; // Update time
|
||||
TIM1->PSC = (PERI2_FREQUENCY * TIMER_MULT_APB2) / 2000000 - 1 ; // 0.5uS from 30MHz
|
||||
TIM1->CCER = TIM_CCER_CC1E | TIM_CCER_CC1P ;
|
||||
TIM1->CR2 = TIM_CR2_OIS1 ; // O/P idle high
|
||||
TIM1->BDTR = TIM_BDTR_MOE ; // Enable outputs
|
||||
TIM1->CCR1 = pxxStream[0] ;
|
||||
TIM1->CCMR1 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0 ; // Force O/P high
|
||||
TIM1->EGR = 1 ; // Restart
|
||||
|
||||
// TIM1->SR &= ~TIM_SR_UIF ; // Clear flag
|
||||
// TIM1->SR &= ~TIM_SR_CC2IF ; // Clear flag
|
||||
TIM1->DIER |= TIM_DIER_CC1DE ; // Enable DMA on CC1 match
|
||||
TIM1->DCR = 13 ; // DMA to CC1
|
||||
|
||||
// TIM1->CR1 = TIM_CR1_OPM ; // Just run once
|
||||
// Enable the DMA channel here, DMA2 stream 1, channel 6
|
||||
DMA2_Stream1->CR &= ~DMA_SxCR_EN ; // Disable DMA
|
||||
DMA2->LIFCR = DMA_LIFCR_CTCIF1 | DMA_LIFCR_CHTIF1 | DMA_LIFCR_CTEIF1 | DMA_LIFCR_CDMEIF1 | DMA_LIFCR_CFEIF1 ; // Write ones to clear bits
|
||||
DMA2_Stream1->CR = DMA_SxCR_CHSEL_1 | DMA_SxCR_CHSEL_2 | DMA_SxCR_PL_0 | DMA_SxCR_MSIZE_0
|
||||
| DMA_SxCR_PSIZE_0 | DMA_SxCR_MINC | DMA_SxCR_DIR_0 | DMA_SxCR_PFCTRL ;
|
||||
DMA2_Stream1->PAR = (uint32_t) &TIM1->DMAR ;
|
||||
DMA2_Stream1->M0AR = (uint32_t) &pxxStream[1] ;
|
||||
// DMA2_Stream1->FCR = 0x05 ; //DMA_SxFCR_DMDIS | DMA_SxFCR_FTH_0 ;
|
||||
// DMA2_Stream1->NDTR = 100 ;
|
||||
DMA2_Stream1->CR |= DMA_SxCR_EN ; // Enable DMA
|
||||
|
||||
TIM1->CCMR1 = TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0 ; // Toggle CC1 o/p
|
||||
TIM1->SR &= ~TIM_SR_CC2IF ; // Clear flag
|
||||
TIM1->DIER |= TIM_DIER_CC2IE ; // Enable this interrupt
|
||||
TIM1->CR1 |= TIM_CR1_CEN ;
|
||||
NVIC_EnableIRQ(TIM1_CC_IRQn) ;
|
||||
}
|
||||
|
||||
void disable_pxx()
|
||||
{
|
||||
NVIC_DisableIRQ(TIM1_CC_IRQn) ;
|
||||
TIM1->DIER &= ~TIM_DIER_CC2IE ;
|
||||
TIM1->CR1 &= ~TIM_CR1_CEN ;
|
||||
}
|
||||
|
||||
|
||||
// PPM output
|
||||
// Timer 1, channel 1 on PA8 for prototype
|
||||
// Pin is AF1 function for timer 1
|
||||
void init_main_ppm()
|
||||
{
|
||||
// Timer1
|
||||
setupPulsesPPM() ;
|
||||
ppmStreamPtr = ppmStream ;
|
||||
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN ; // Enable portA clock
|
||||
configure_pins( 0x0100, PIN_PERIPHERAL | PIN_PORTA | PIN_PER_1 | PIN_OS25 | PIN_PUSHPULL ) ;
|
||||
RCC->APB2ENR |= RCC_APB2ENR_TIM1EN ; // Enable clock
|
||||
|
||||
TIM1->ARR = *ppmStreamPtr++ ;
|
||||
TIM1->PSC = (PERI2_FREQUENCY * TIMER_MULT_APB2) / 2000000 - 1 ; // 0.5uS from 30MHz
|
||||
TIM1->CCER = TIM_CCER_CC1E ;
|
||||
TIM1->CCMR1 = TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC2PE ; // PWM mode 1
|
||||
TIM1->CCR1 = 600 ; // 300 uS pulse
|
||||
TIM1->BDTR = TIM_BDTR_MOE ;
|
||||
TIM1->EGR = 1 ;
|
||||
TIM1->DIER = TIM_DIER_UDE ;
|
||||
|
||||
TIM1->SR &= ~TIM_SR_UIF ; // Clear flag
|
||||
TIM1->SR &= ~TIM_SR_CC2IF ; // Clear flag
|
||||
TIM1->DIER |= TIM_DIER_CC2IE ;
|
||||
TIM1->DIER |= TIM_DIER_UIE ;
|
||||
|
||||
TIM1->CR1 = TIM_CR1_CEN ;
|
||||
NVIC_EnableIRQ(TIM1_CC_IRQn) ;
|
||||
NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn) ;
|
||||
}
|
||||
|
||||
void disable_main_ppm()
|
||||
{
|
||||
NVIC_DisableIRQ(TIM1_CC_IRQn) ;
|
||||
NVIC_DisableIRQ(TIM1_UP_TIM10_IRQn) ;
|
||||
TIM1->DIER &= ~TIM_DIER_CC2IE & ~TIM_DIER_UIE ;
|
||||
TIM1->CR1 &= ~TIM_CR1_CEN ;
|
||||
}
|
||||
|
||||
// Initialise the SSC to allow PXX output.
|
||||
// TD is on PA17, peripheral A
|
||||
void init_ssc()
|
||||
extern "C" void TIM1_CC_IRQHandler()
|
||||
{
|
||||
TIM1->DIER &= ~TIM_DIER_CC2IE ; // stop this interrupt
|
||||
TIM1->SR &= ~TIM_SR_CC2IF ; // Clear flag
|
||||
|
||||
setupPulses() ;
|
||||
|
||||
if (s_current_protocol == PROTO_PPM)
|
||||
{
|
||||
ppmStreamPtr = ppmStream ;
|
||||
|
||||
TIM1->DIER |= TIM_DIER_UDE ;
|
||||
|
||||
TIM1->SR &= ~TIM_SR_UIF ; // Clear this flag
|
||||
TIM1->DIER |= TIM_DIER_UIE ; // Enable this interrupt
|
||||
}
|
||||
else if (s_current_protocol == PROTO_PXX)
|
||||
{
|
||||
DMA2_Stream1->CR &= ~DMA_SxCR_EN ; // Disable DMA
|
||||
DMA2->LIFCR = DMA_LIFCR_CTCIF1 | DMA_LIFCR_CHTIF1 | DMA_LIFCR_CTEIF1 | DMA_LIFCR_CDMEIF1 | DMA_LIFCR_CFEIF1 ; // Write ones to clear bits
|
||||
DMA2_Stream1->M0AR = (uint32_t) &pxxStream[1] ;
|
||||
DMA2_Stream1->CR |= DMA_SxCR_EN ; // Enable DMA
|
||||
TIM1->CCR1 = pxxStream[0] ;
|
||||
TIM1->DIER |= TIM_DIER_CC2IE ; // Enable this interrupt
|
||||
}
|
||||
}
|
||||
|
||||
void disable_ssc()
|
||||
extern "C" void TIM1_UP_TIM10_IRQHandler()
|
||||
{
|
||||
TIM1->SR &= ~TIM_SR_UIF ; // Clear flag
|
||||
|
||||
TIM1->ARR = *ppmStreamPtr++ ;
|
||||
if ( *ppmStreamPtr == 0 )
|
||||
{
|
||||
TIM1->SR &= ~TIM_SR_CC2IF ; // Clear this flag
|
||||
TIM1->DIER |= TIM_DIER_CC2IE ; // Enable this interrupt
|
||||
}
|
||||
}
|
||||
|
||||
+19
-1
@@ -34,6 +34,24 @@ elif sys.argv[3] == "img":
|
||||
value += 1 << z
|
||||
f.write("0x%02x," % value)
|
||||
f.write("\n")
|
||||
elif sys.argv[3] == "bmp":
|
||||
rows = 1
|
||||
colors = []
|
||||
if len(sys.argv) > 4:
|
||||
rows = int(sys.argv[4])
|
||||
f.write("%d,%d,\n" % (width, height/rows))
|
||||
for y in range(0, height, 8):
|
||||
for x in range(width):
|
||||
values = [255, 255, 255, 255]
|
||||
for z in range(8):
|
||||
if y+z < height:
|
||||
gray = Qt.qGray(image.pixel(x, y+z))
|
||||
for i in range(4):
|
||||
if (gray & (1<<(4+i))):
|
||||
values[i] -= 1 << z
|
||||
for value in values:
|
||||
f.write("0x%02x," % value)
|
||||
f.write("\n")
|
||||
elif sys.argv[3] == "3x5":
|
||||
for y in range(0, height, 5):
|
||||
for x in range(width):
|
||||
@@ -80,6 +98,6 @@ elif sys.argv[3] == "10x14":
|
||||
if image.pixel(x, y+l+z) == Qt.qRgb(0, 0, 0):
|
||||
value += 1 << z
|
||||
f.write("0x%02x," % value)
|
||||
f.write("\n")
|
||||
f.write("\n")
|
||||
else:
|
||||
print "wrong argument", sys.argv[3]
|
||||
|
||||
Reference in New Issue
Block a user