mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 00:05:17 +03:00
Small flash saving in General Menus (60bytes)
Backlight brightness now supported on ARM SD card archive function continued Simu backlight support for v4
This commit is contained in:
parent
b3113fbcbc
commit
c3ddf66058
13 changed files with 82 additions and 61 deletions
|
@ -529,18 +529,30 @@ bool RlcFile::copy(uint8_t i_fileDst, uint8_t i_fileSrc)
|
|||
#ifdef SDCARD
|
||||
const pm_char * eeArchiveModel(uint8_t i_fileSrc)
|
||||
{
|
||||
char buf[15];
|
||||
char *buf = reusableBuffer.model_name;
|
||||
FIL archiveFile;
|
||||
|
||||
eeLoadModelName(i_fileSrc, buf);
|
||||
FRESULT result = f_mount(0, &g_FATFS_Obj);
|
||||
if (result != FR_OK) {
|
||||
return PSTR("SDCARD F/S ERROR"); // TODO ...
|
||||
}
|
||||
|
||||
FRESULT result = f_open(&archiveFile, buf, FA_OPEN_ALWAYS | FA_WRITE);
|
||||
strcpy_P(buf, PSTR(LOG_PATH "/Twister.bin")); // TODO Not PSTR everywhere ...
|
||||
/* eeLoadModelName(i_fileSrc, &buf[sizeof(LOG_PATH)+1]);
|
||||
uint8_t i = sizeof(LOG_PATH)+1;
|
||||
while (i<sizeof(LOG_PATH)+11 && buf[i]) {
|
||||
buf[i] = idx2char(buf[i]);
|
||||
i++;
|
||||
}
|
||||
strcpy_P(&buf[i], PSTR(".bin")); // TODO Not PSTR everywhere ...
|
||||
*/
|
||||
result = f_open(&archiveFile, buf, FA_OPEN_ALWAYS | FA_WRITE);
|
||||
if (result != FR_OK) {
|
||||
return SDCARD_ERROR(result);
|
||||
}
|
||||
|
||||
EFile theFile2;
|
||||
theFile2.openRd(i_fileSrc);
|
||||
theFile2.openRd(FILE_MODEL(i_fileSrc));
|
||||
|
||||
uint8_t len;
|
||||
while ((len=theFile2.read((uint8_t *)buf, 15)))
|
||||
|
@ -549,7 +561,7 @@ const pm_char * eeArchiveModel(uint8_t i_fileSrc)
|
|||
f_putc(buf[i], &g_oLogFile);
|
||||
}
|
||||
|
||||
f_close(&g_oLogFile);
|
||||
f_close(&archiveFile);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -71,13 +71,18 @@ const MenuFuncP_PROGMEM menuTabDiag[] PROGMEM = {
|
|||
menuProcDiagCalib
|
||||
};
|
||||
|
||||
#define GENERAL_PARAM_OFS 17*FW
|
||||
uint8_t onoffMenuItem( uint8_t value, uint8_t y, const pm_char *s, uint8_t condition, uint8_t event )
|
||||
#define GENERAL_PARAM_OFS (2+16*FW)
|
||||
NOINLINE int8_t selectMenuItem(uint8_t y, const pm_char *label, const pm_char *values, int8_t value, int8_t min, int8_t max, uint8_t condition, uint8_t event)
|
||||
{
|
||||
lcd_putsLeft(y, s);
|
||||
menu_lcd_onoff( GENERAL_PARAM_OFS, y, value, condition ) ;
|
||||
if (condition) CHECK_INCDEC_GENVAR(event, value, 0, 1);
|
||||
return value ;
|
||||
lcd_putsLeft(y, label);
|
||||
lcd_putsiAtt(GENERAL_PARAM_OFS, y, values, value-min, condition ? INVERS:0) ;
|
||||
if (condition) CHECK_INCDEC_GENVAR(event, value, min, max);
|
||||
return value;
|
||||
}
|
||||
|
||||
NOINLINE uint8_t onoffMenuItem(uint8_t value, uint8_t y, const pm_char *label, uint8_t condition, uint8_t event )
|
||||
{
|
||||
return selectMenuItem(y, label, STR_OFFON, value, 0, 1, condition, event);
|
||||
}
|
||||
|
||||
enum menuProcSetupItems {
|
||||
|
@ -141,14 +146,10 @@ void menuProcSetup(uint8_t event)
|
|||
|
||||
uint8_t subN = 1;
|
||||
if(s_pgOfs<subN) {
|
||||
lcd_putsLeft( y, STR_BEEPERMODE);
|
||||
lcd_putsiAtt(GENERAL_PARAM_OFS - 2*FW, y, STR_VBEEPMODE, 2+g_eeGeneral.beeperMode, (sub==subN ? INVERS:0));
|
||||
if(sub==subN) {
|
||||
CHECK_INCDEC_GENVAR(event, g_eeGeneral.beeperMode, -2, 1);
|
||||
g_eeGeneral.beeperMode = selectMenuItem(y, STR_BEEPERMODE, STR_VBEEPMODE, g_eeGeneral.beeperMode, -2, 1, sub==subN, event);
|
||||
#if defined(FRSKY)
|
||||
if (checkIncDec_Ret) FRSKY_setModelAlarms();
|
||||
if (sub==subN && checkIncDec_Ret) FRSKY_setModelAlarms();
|
||||
#endif
|
||||
}
|
||||
if((y+=FH)>7*FH) return;
|
||||
}subN++;
|
||||
|
||||
|
@ -168,9 +169,7 @@ void menuProcSetup(uint8_t event)
|
|||
#endif
|
||||
|
||||
if(s_pgOfs<subN) {
|
||||
lcd_putsLeft( y, STR_BEEPERLEN);
|
||||
lcd_putsiAtt(GENERAL_PARAM_OFS - 2*FW, y, STR_VBEEPLEN, 2+g_eeGeneral.beeperLength, (sub==subN ? INVERS:0));
|
||||
if(sub==subN) CHECK_INCDEC_GENVAR(event, g_eeGeneral.beeperLength, -2, 2);
|
||||
g_eeGeneral.beeperLength = selectMenuItem(y, STR_BEEPERLEN, STR_VBEEPLEN, g_eeGeneral.beeperLength, -2, 2, sub==subN, event);
|
||||
if((y+=FH)>7*FH) return;
|
||||
}subN++;
|
||||
|
||||
|
@ -187,9 +186,7 @@ void menuProcSetup(uint8_t event)
|
|||
|
||||
#ifdef HAPTIC
|
||||
if(s_pgOfs<subN) {
|
||||
lcd_putsLeft( y, STR_HAPTICMODE);
|
||||
lcd_putsiAtt(GENERAL_PARAM_OFS - 2*FW, y, STR_VBEEPMODE, 2+g_eeGeneral.hapticMode, (sub==subN ? INVERS:0));
|
||||
if(sub==subN) CHECK_INCDEC_GENVAR(event, g_eeGeneral.hapticMode, -2, 1);
|
||||
g_eeGeneral.hapticMode = selectMenuItem(y, STR_HAPTICMODE, STR_VBEEPMODE, g_eeGeneral.hapticMode, -2, 1, sub==subN, event);
|
||||
if((y+=FH)>7*FH) return;
|
||||
}subN++;
|
||||
|
||||
|
@ -204,7 +201,7 @@ void menuProcSetup(uint8_t event)
|
|||
|
||||
if(s_pgOfs<subN) {
|
||||
lcd_putsLeft( y, STR_HAPTICLENGTH);
|
||||
lcd_putsiAtt(GENERAL_PARAM_OFS - 2*FW, y, STR_VBEEPLEN, 2+g_eeGeneral.hapticLength, (sub==subN ? INVERS:0));
|
||||
lcd_putsiAtt(GENERAL_PARAM_OFS, y, STR_VBEEPLEN, 2+g_eeGeneral.hapticLength, (sub==subN ? INVERS:0));
|
||||
if(sub==subN) CHECK_INCDEC_GENVAR(event, g_eeGeneral.hapticLength, -2, 2);
|
||||
if((y+=FH)>7*FH) return;
|
||||
}subN++;
|
||||
|
@ -257,9 +254,7 @@ void menuProcSetup(uint8_t event)
|
|||
}subN++;
|
||||
|
||||
if(s_pgOfs<subN) {
|
||||
lcd_putsLeft( y,STR_FILTERADC);
|
||||
lcd_putsiAtt(GENERAL_PARAM_OFS, y, STR_ADCFILTER, g_eeGeneral.filterInput, (sub==subN ? INVERS:0));
|
||||
if(sub==subN) CHECK_INCDEC_GENVAR(event, g_eeGeneral.filterInput, 0, 2);
|
||||
g_eeGeneral.filterInput = selectMenuItem(y, STR_FILTERADC, STR_ADCFILTER, g_eeGeneral.filterInput, 0, 2, sub==subN, event);
|
||||
if((y+=FH)>7*FH) return;
|
||||
}subN++;
|
||||
|
||||
|
@ -318,10 +313,8 @@ void menuProcSetup(uint8_t event)
|
|||
}subN++;
|
||||
|
||||
if(s_pgOfs<subN) {
|
||||
lcd_putsLeft( y, STR_SWITCHWARNING);
|
||||
lcd_putsiAtt(GENERAL_PARAM_OFS, y, STR_WARNSW, 1+g_eeGeneral.switchWarning, (sub==subN ? INVERS:0));
|
||||
if(sub==subN) CHECK_INCDEC_GENVAR(event, g_eeGeneral.switchWarning, -1, 1);
|
||||
if((y+=FH)>7*FH) return;
|
||||
g_eeGeneral.switchWarning = selectMenuItem(y, STR_SWITCHWARNING, STR_WARNSW, g_eeGeneral.switchWarning, -1, 1, sub==subN, event);
|
||||
if((y+=FH)>7*FH) return;
|
||||
}subN++;
|
||||
|
||||
if(s_pgOfs<subN) {
|
||||
|
@ -363,7 +356,7 @@ void menuProcSetup(uint8_t event)
|
|||
uint8_t attr = sub==subN?INVERS:0;
|
||||
lcd_putsLeft( y,STR_RXCHANNELORD);// RAET->AETR
|
||||
for (uint8_t i=1; i<=4; i++)
|
||||
putsChnLetter((16+i)*FW, y, channel_order(i), attr);
|
||||
putsChnLetter(GENERAL_PARAM_OFS - FW + i*FW, y, channel_order(i), attr);
|
||||
if(attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.templateSetup, 0, 23);
|
||||
if((y+=FH)>7*FH) return;
|
||||
}subN++;
|
||||
|
|
|
@ -49,11 +49,11 @@ void initLogs()
|
|||
if (g_oLogFile.fs) f_close(&g_oLogFile);
|
||||
g_logState = 0;
|
||||
|
||||
strcpy_P(g_logFilename, PSTR(LOG_PATH "M00_000.CSV"));
|
||||
strcpy_P(g_logFilename, PSTR(LOG_PATH "/M00_000.CSV"));
|
||||
|
||||
// Set log file model number
|
||||
uint8_t num = g_eeGeneral.currModel + 1;
|
||||
char *n = &g_logFilename[11]; // TODO constant
|
||||
char *n = &g_logFilename[sizeof(LOG_PATH) + 3];
|
||||
*n = (char)((num % 10) + '0');
|
||||
*(--n) = (char)((num / 10) + '0');
|
||||
|
||||
|
@ -74,7 +74,7 @@ void initLogs()
|
|||
f_close(&g_oLogFile);
|
||||
|
||||
// bump log file counter (file extension)
|
||||
n = &g_logFilename[15];
|
||||
n = &g_logFilename[sizeof(LOG_PATH) + 7];
|
||||
if (++*n > '9')
|
||||
{
|
||||
*n='0';
|
||||
|
|
|
@ -242,12 +242,13 @@ void menuProcModelSelect(uint8_t event)
|
|||
killEvents(event);
|
||||
if (g_eeGeneral.currModel != sub) {
|
||||
#if defined(SDCARD)
|
||||
s_menu[s_menu_count++] = STR_LOAD_MODEL;
|
||||
if (eeModelExists(sub)) {
|
||||
s_menu[s_menu_count++] = STR_LOAD_MODEL;
|
||||
s_menu[s_menu_count++] = STR_ARCHIVE_MODEL;
|
||||
s_menu[s_menu_count++] = STR_DELETE_MODEL;;
|
||||
}
|
||||
else {
|
||||
s_menu[s_menu_count++] = STR_CREATE_MODEL;
|
||||
s_menu[s_menu_count++] = STR_RESTORE_MODEL;;
|
||||
}
|
||||
#else
|
||||
|
@ -364,13 +365,16 @@ void menuProcModelSelect(uint8_t event)
|
|||
if (s_sdcard_error) {
|
||||
s_warning = s_sdcard_error;
|
||||
displayWarning(event);
|
||||
s_warning = NULL;
|
||||
if (s_warning)
|
||||
s_warning = NULL;
|
||||
else
|
||||
s_sdcard_error = NULL;
|
||||
}
|
||||
|
||||
if (s_menu_count) {
|
||||
const pm_char * result = displayMenu(event);
|
||||
if (result) {
|
||||
if (result == STR_LOAD_MODEL) {
|
||||
if (result == STR_LOAD_MODEL || result == STR_CREATE_MODEL) {
|
||||
displayPopup(STR_LOADINGMODEL);
|
||||
eeCheck(true); // force writing of current model data before this is changed
|
||||
if (g_eeGeneral.currModel != sub) {
|
||||
|
@ -381,6 +385,8 @@ void menuProcModelSelect(uint8_t event)
|
|||
}
|
||||
else if (result == STR_ARCHIVE_MODEL) {
|
||||
s_sdcard_error = eeArchiveModel(sub);
|
||||
if (!s_sdcard_error)
|
||||
eeDeleteModel(sub); // delete the model, it's archived!
|
||||
}
|
||||
else if (result == STR_RESTORE_MODEL) {
|
||||
// TODO
|
||||
|
|
|
@ -309,6 +309,7 @@ const pm_char STR_CURRENT[] PROGMEM = TR_CURRENT;
|
|||
|
||||
#if defined(SDCARD)
|
||||
const pm_char STR_LOAD_MODEL[] PROGMEM = TR_LOAD_MODEL;
|
||||
const pm_char STR_CREATE_MODEL[] PROGMEM = TR_CREATE_MODEL;
|
||||
const pm_char STR_ARCHIVE_MODEL[] PROGMEM = TR_ARCHIVE_MODEL;
|
||||
const pm_char STR_DELETE_MODEL[] PROGMEM = TR_DELETE_MODEL;
|
||||
const pm_char STR_RESTORE_MODEL[] PROGMEM = TR_RESTORE_MODEL;
|
||||
|
|
|
@ -368,6 +368,7 @@ extern const pm_char STR_CURRENT[];
|
|||
|
||||
#if defined(SDCARD)
|
||||
extern const pm_char STR_LOAD_MODEL[];
|
||||
extern const pm_char STR_CREATE_MODEL[];
|
||||
extern const pm_char STR_ARCHIVE_MODEL[];
|
||||
extern const pm_char STR_DELETE_MODEL[];
|
||||
extern const pm_char STR_RESTORE_MODEL[];
|
||||
|
|
|
@ -583,7 +583,7 @@ extern uint8_t s_eeDirtyMsk;
|
|||
|
||||
#if defined (PCBARM)
|
||||
#ifndef SIMU
|
||||
#define BACKLIGHT_ON (PWM->PWM_CH_NUM[0].PWM_CDTY = 0/*TODO g_eeGeneral.bright*/)
|
||||
#define BACKLIGHT_ON (PWM->PWM_CH_NUM[0].PWM_CDTY = g_eeGeneral.backlightBright)
|
||||
#define BACKLIGHT_OFF (PWM->PWM_CH_NUM[0].PWM_CDTY = 100)
|
||||
#else
|
||||
#define BACKLIGHT_ON
|
||||
|
@ -835,10 +835,10 @@ union ReusableBuffer
|
|||
{
|
||||
#if !defined(PCBARM)
|
||||
uint8_t eefs_buffer[BLOCKS]; // used by EeFsck
|
||||
|
||||
char model_name[sizeof(g_model.name)]; // used by menuProcModelSelect
|
||||
#endif
|
||||
|
||||
char model_name[42]; // used by menuProcModelSelect and for SD card archive / restore
|
||||
|
||||
struct
|
||||
{
|
||||
int16_t midVals[7];
|
||||
|
|
|
@ -247,8 +247,13 @@ void Open9xSim::refreshDiplay()
|
|||
{
|
||||
if (lcd_refresh) {
|
||||
lcd_refresh = false;
|
||||
#if defined(PCBV4)
|
||||
if(portc & 1<<OUT_C_LIGHT) bmf->setOffColor(FXRGB(150,200,152));
|
||||
else bmf->setOffColor(FXRGB(200,200,200));
|
||||
#else
|
||||
if(portb & 1<<OUT_B_LIGHT) bmf->setOffColor(FXRGB(150,200,152));
|
||||
else bmf->setOffColor(FXRGB(200,200,200));
|
||||
#endif
|
||||
|
||||
for(int x=0;x<W;x++){
|
||||
for(int y=0;y<H;y++)
|
||||
|
|
BIN
src/snapshot_01.png
Normal file
BIN
src/snapshot_01.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
src/snapshot_02.png
Normal file
BIN
src/snapshot_02.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -8,11 +8,11 @@
|
|||
#define LEN_NCHANNELS "\004"
|
||||
#define TR_NCHANNELS "4CH 6CH 8CH 10CH12CH14CH16CH"
|
||||
|
||||
#define LEN_VBEEPMODE "\006"
|
||||
#define TR_VBEEPMODE "Quiet ""Alarms""NoKey ""All "
|
||||
#define LEN_VBEEPMODE "\005"
|
||||
#define TR_VBEEPMODE "Quiet""Alarm""NoKey""All "
|
||||
|
||||
#define LEN_VBEEPLEN "\006"
|
||||
#define TR_VBEEPLEN "xShort""Short ""Normal""Long ""xLong "
|
||||
#define LEN_VBEEPLEN "\005"
|
||||
#define TR_VBEEPLEN "xShrt""Short""Norml""Long ""xLong"
|
||||
|
||||
#define LEN_ADCFILTER "\004"
|
||||
#define TR_ADCFILTER "SING""OSMP""FILT"
|
||||
|
@ -258,16 +258,16 @@
|
|||
#define TR_HAPTICLENGTH "Haptic Length"
|
||||
#define TR_CONTRAST "Contrast"
|
||||
#define TR_BATTERYWARNING "Battery Warning"
|
||||
#define TR_INACTIVITYALARM "Inactivity alarm"
|
||||
#define TR_INACTIVITYALARM "Inactivity alrm"
|
||||
#define TR_FILTERADC "Filter ADC"
|
||||
#define TR_THROTTLEREVERSE "Throttle reverse"
|
||||
#define TR_THROTTLEREVERSE "Thr reverse"
|
||||
#define TR_MINUTEBEEP "Minute beep"
|
||||
#define TR_BEEPCOUNTDOWN "Beep countdown"
|
||||
#define TR_FLASHONBEEP "Flash on beep"
|
||||
#define TR_LIGHTSWITCH "Light switch"
|
||||
#define TR_LIGHTOFFAFTER "Light off after"
|
||||
#define TR_SPLASHSCREEN "Splash screen"
|
||||
#define TR_THROTTLEWARNING "Throttle Warning"
|
||||
#define TR_THROTTLEWARNING "Thr Warning"
|
||||
#define TR_SWITCHWARNING "Switch Warning"
|
||||
#define TR_MEMORYWARNING "Memory Warning"
|
||||
#define TR_ALARMWARNING "Alarm Warning"
|
||||
|
@ -355,6 +355,7 @@
|
|||
#define TR_CURRENT_CALIB "Current Calib"
|
||||
#define TR_CURRENT "Current"
|
||||
#define TR_LOAD_MODEL "Load Model"
|
||||
#define TR_CREATE_MODEL "Create Model"
|
||||
#define TR_ARCHIVE_MODEL "Archive Model"
|
||||
#define TR_DELETE_MODEL "Delete Model" // TODO merged into DELETEMODEL?
|
||||
#define TR_RESTORE_MODEL "Restore Model"
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
#define LEN_NCHANNELS "\004"
|
||||
#define TR_NCHANNELS "4CH 6CH 8CH 10CH12CH14CH16CH"
|
||||
|
||||
#define LEN_VBEEPMODE "\006"
|
||||
#define TR_VBEEPMODE "Quiet ""Alarms""NoKey ""Tout "
|
||||
#define LEN_VBEEPMODE "\005"
|
||||
#define TR_VBEEPMODE "Quiet""Alarm""NoKey""Tout "
|
||||
|
||||
#define LEN_VBEEPLEN "\006"
|
||||
#define TR_VBEEPLEN "xShort""Short ""Normal""Long ""xLong "
|
||||
#define LEN_VBEEPLEN "\005"
|
||||
#define TR_VBEEPLEN "xShrt""Short""Norml""Long ""xLong"
|
||||
|
||||
#define LEN_ADCFILTER "\004"
|
||||
#define TR_ADCFILTER "SING""OSMP""FILT"
|
||||
|
@ -258,14 +258,14 @@
|
|||
#define TR_HAPTICLENGTH "Length Vibreur"
|
||||
#define TR_CONTRAST "Contraste"
|
||||
#define TR_BATTERYWARNING "Alarme Batterie"
|
||||
#define TR_INACTIVITYALARM "Alarme Inactivite"
|
||||
#define TR_INACTIVITYALARM "Alarme Inactiv."
|
||||
#define TR_FILTERADC "Filtre ADC"
|
||||
#define TR_THROTTLEREVERSE "Inversion Gaz"
|
||||
#define TR_MINUTEBEEP "Bip t.minutes"
|
||||
#define TR_BEEPCOUNTDOWN "Bip a rebours"
|
||||
#define TR_FLASHONBEEP "Flash quand bip"
|
||||
#define TR_LIGHTSWITCH "Inter eclairage"
|
||||
#define TR_LIGHTOFFAFTER "Eclair. off apres"
|
||||
#define TR_LIGHTOFFAFTER "Duree eclairage"
|
||||
#define TR_SPLASHSCREEN "Ecran d'accueil"
|
||||
#define TR_THROTTLEWARNING "Alerte Gaz"
|
||||
#define TR_SWITCHWARNING "Alerte Inter"
|
||||
|
@ -306,7 +306,7 @@
|
|||
#define TR_MODEL "MODELE"
|
||||
#define TR_FP "PV"
|
||||
#define TR_EEPROMLOWMEM "EEPROM low mem"
|
||||
#define TR_ALERT "ALERTE"
|
||||
#define TR_ALERT "\007ALERTE"
|
||||
#define TR_PRESSANYKEYTOSKIP "Touche pour ignorer"
|
||||
#define TR_THROTTLENOTIDLE "Gaz pas a zero"
|
||||
#define TR_RESETTHROTTLE "Reinitialisez le"
|
||||
|
@ -352,10 +352,11 @@
|
|||
#define TR_LONGITUDE "Longitude"
|
||||
#define TR_GPSCOORD "Gps Coords"
|
||||
#define TR_SHUTDOWN "ARRET EN COURS"
|
||||
#define TR_BATT_CALIB "Battery Calib"
|
||||
#define TR_CURRENT_CALIB "Current Calib"
|
||||
#define TR_BATT_CALIB "Calib. Batterie"
|
||||
#define TR_CURRENT_CALIB "Calib. Amperage"
|
||||
#define TR_CURRENT "Courant"
|
||||
#define TR_LOAD_MODEL "Charger Modele"
|
||||
#define TR_CREATE_MODEL "Creer Modele"
|
||||
#define TR_ARCHIVE_MODEL "Archiver Modele"
|
||||
#define TR_DELETE_MODEL "Supprimer Modele"
|
||||
#define TR_RESTORE_MODEL "Restorer Modele"
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
#define LEN_NCHANNELS "\004"
|
||||
#define TR_NCHANNELS "4CH 6KN 8KN 10KN12KN14KN16KN"
|
||||
|
||||
#define LEN_VBEEPMODE "\006"
|
||||
#define TR_VBEEPMODE "Tyst ""Alarm ""Ej Knp""Alla "
|
||||
#define LEN_VBEEPMODE "\005"
|
||||
#define TR_VBEEPMODE "Tyst ""Alarm""EjKnp""Alla "
|
||||
|
||||
#define LEN_VBEEPLEN "\006"
|
||||
#define TR_VBEEPLEN "xKort ""Kort ""Normal""L\200ng ""xL\200ng "
|
||||
#define LEN_VBEEPLEN "\005"
|
||||
#define TR_VBEEPLEN "xKort""Kort ""Norml""L\200ng ""xL\200ng"
|
||||
|
||||
#define LEN_ADCFILTER "\004"
|
||||
#define TR_ADCFILTER "SING""OSMP""FILT"
|
||||
|
@ -355,6 +355,7 @@
|
|||
#define TR_CURRENT_CALIB "Current Calib"
|
||||
#define TR_CURRENT "Sp\201nning"
|
||||
#define TR_LOAD_MODEL "Load Model"
|
||||
#define TR_CREATE_MODEL "Create Model"
|
||||
#define TR_ARCHIVE_MODEL "Archive Model"
|
||||
#define TR_DELETE_MODEL "Delete Model"
|
||||
#define TR_RESTORE_MODEL "Restore Model"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue