erikkaashoek 2 months ago
commit c3288e6e17

@ -121,6 +121,13 @@ config_recall(void)
/* duplicated saved data onto sram to be able to modify marker/trace */ /* duplicated saved data onto sram to be able to modify marker/trace */
memcpy(dst, src, sizeof(config_t)); memcpy(dst, src, sizeof(config_t));
#ifdef __USE_SD_CARD__
// Migrate from old config without sd_icon_save member
if (config.sd_icon_save == 0)
config.sd_icon_save = SDIS_DEFAULT;
#endif // __USE_SD_CARD__
return 0; return 0;
} }

@ -1237,6 +1237,9 @@ config_t config = {
.overclock = 0, .overclock = 0,
.hide_21MHz = false, .hide_21MHz = false,
#endif #endif
#ifdef __USE_SD_CARD__
.sd_icon_save = SDIS_DEFAULT,
#endif // __USE_SD_CARD__
}; };

@ -801,6 +801,18 @@ float marker_to_value(const int i);
#define _MODE_AUTO_FILENAME 0x10 #define _MODE_AUTO_FILENAME 0x10
#define _MODE_MHZ_CSV 0x20 #define _MODE_MHZ_CSV 0x20
#ifdef __USE_SD_CARD__
// SD Icon Save (SDIS) configuration
#define SDIS_CAPTURE (1 << 0)
#define SDIS_TRACES (1 << 1)
// Validity mask is needed to distinguish disabled SD card icon saving
// from the case with old config that does not have sd_icon_save member
// (the corresponding padding byte was always equal to zero)
#define SDIS_VALID_MASK (1 << 7)
#define SDIS_DEFAULT (SDIS_CAPTURE | SDIS_VALID_MASK)
#define SDIS_IS_ENABLED ((config.sd_icon_save & ~SDIS_VALID_MASK) != 0)
#endif // __USE_SD_CARD__
#pragma pack(push, 4) #pragma pack(push, 4)
typedef struct config { typedef struct config {
int32_t magic; int32_t magic;
@ -882,6 +894,9 @@ typedef struct config {
uint8_t hide_21MHz; uint8_t hide_21MHz;
uint8_t no_audio_agc; uint8_t no_audio_agc;
#endif #endif
#ifdef __USE_SD_CARD__
uint8_t sd_icon_save; // enum
#endif // __USE_SD_CARD__
float sweep_voltage; float sweep_voltage;
float switch_offset; float switch_offset;
int16_t ext_zero_level; int16_t ext_zero_level;

@ -1995,7 +1995,7 @@ static const uint8_t sd_icon [] = {
_BMP16(0b0101010101011000), //14 _BMP16(0b0101010101011000), //14
_BMP16(0b0111111111111000) // _BMP16(0b0111111111111000) //
}; };
if (SD_Inserted()){ if (SD_Inserted() && SDIS_IS_ENABLED) {
ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN); ili9341_set_foreground(LCD_BRIGHT_COLOR_GREEN);
ili9341_blitBitmap(4, SD_CARD_START, 16, 16, sd_icon); ili9341_blitBitmap(4, SD_CARD_START, 16, 16, sd_icon);
// ili9341_drawstring("-SD-", x, SD_CARD_START); // ili9341_drawstring("-SD-", x, SD_CARD_START);

49
ui.c

@ -4368,6 +4368,32 @@ static UI_FUNCTION_ADV_CALLBACK(menu_mhz_csv_acb)
config_save(); config_save();
} }
static UI_FUNCTION_ADV_CALLBACK(menu_sd_icon_save_capture_acb)
{
(void)item;
(void)data;
if (b) {
b->icon = config.sd_icon_save & SDIS_CAPTURE ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
return;
}
config.sd_icon_save ^= SDIS_CAPTURE;
config_save();
}
static UI_FUNCTION_ADV_CALLBACK(menu_sd_icon_save_traces_acb)
{
(void)item;
(void)data;
if (b) {
b->icon = config.sd_icon_save & SDIS_TRACES ? BUTTON_ICON_CHECK : BUTTON_ICON_NOCHECK;
return;
}
config.sd_icon_save ^= SDIS_TRACES;
config_save();
}
#ifdef __SD_FILE_BROWSER__ #ifdef __SD_FILE_BROWSER__
#include "vna_browser.c" #include "vna_browser.c"
#endif #endif
@ -5331,6 +5357,19 @@ static const menuitem_t menu_stimulus[] = {
}; };
#ifdef __USE_SD_CARD__ #ifdef __USE_SD_CARD__
static const menuitem_t menu_storage_sd_icon[] = {
{ MT_ADV_CALLBACK, 0, "SAVE\nCAPTURE", menu_sd_icon_save_capture_acb },
{ MT_ADV_CALLBACK, 0, "SAVE\nTRACES", menu_sd_icon_save_traces_acb },
{ MT_NONE, 0, NULL, menu_back }
};
static const menuitem_t menu_storage_config[] = {
{ MT_ADV_CALLBACK, 0, "AUTO NAME", menu_autoname_acb },
{ MT_ADV_CALLBACK, 0, "MHz\nCSV", menu_mhz_csv_acb },
{ MT_SUBMENU, 0, "SD CARD\nICON", menu_storage_sd_icon },
{ MT_NONE, 0, NULL, menu_back }
};
static const menuitem_t menu_storage[] = { static const menuitem_t menu_storage[] = {
#ifdef __SD_FILE_BROWSER__ #ifdef __SD_FILE_BROWSER__
{ MT_CALLBACK, FMT_BMP_FILE, "LOAD\nCAPTURE", menu_sdcard_browse_cb }, { MT_CALLBACK, FMT_BMP_FILE, "LOAD\nCAPTURE", menu_sdcard_browse_cb },
@ -5338,12 +5377,11 @@ static const menuitem_t menu_storage[] = {
{ MT_CALLBACK, FMT_CMD_FILE, "LOAD\nCMD", menu_sdcard_browse_cb }, { MT_CALLBACK, FMT_CMD_FILE, "LOAD\nCMD", menu_sdcard_browse_cb },
{ MT_CALLBACK, FMT_CFG_FILE, "LOAD\nCONFIG", menu_sdcard_browse_cb }, { MT_CALLBACK, FMT_CFG_FILE, "LOAD\nCONFIG", menu_sdcard_browse_cb },
#endif #endif
{ MT_ADV_CALLBACK, 0, "AUTO NAME", menu_autoname_acb },
{ MT_CALLBACK, FMT_BMP_FILE, "SAVE\nCAPTURE", menu_sdcard_cb}, { MT_CALLBACK, FMT_BMP_FILE, "SAVE\nCAPTURE", menu_sdcard_cb},
{ MT_CALLBACK, FMT_PRS_FILE, "SAVE\nSETTINGS", menu_sdcard_cb}, { MT_CALLBACK, FMT_PRS_FILE, "SAVE\nSETTINGS", menu_sdcard_cb},
{ MT_CALLBACK, FMT_CFG_FILE, "SAVE\nCONFIG", menu_sdcard_cb}, { MT_CALLBACK, FMT_CFG_FILE, "SAVE\nCONFIG", menu_sdcard_cb},
{ MT_ADV_CALLBACK, 0, "MHz\nCSV", menu_mhz_csv_acb },
{ MT_CALLBACK, FMT_CSV_FILE, "SAVE\nTRACES", menu_save_traces_cb}, { MT_CALLBACK, FMT_CSV_FILE, "SAVE\nTRACES", menu_save_traces_cb},
{ MT_SUBMENU, 0, "CONFIG", menu_storage_config },
// { MT_KEYPAD, KM_INTERVAL, "INTERVAL\n\b%s", NULL }, // { MT_KEYPAD, KM_INTERVAL, "INTERVAL\n\b%s", NULL },
{ MT_NONE, 0, NULL, menu_back} // next-> menu_back { MT_NONE, 0, NULL, menu_back} // next-> menu_back
}; };
@ -8073,7 +8111,10 @@ made_screenshot(int touch_x, int touch_y) {
ili9341_set_background(LCD_BG_COLOR); ili9341_set_background(LCD_BG_COLOR);
ili9341_fill(4, SD_CARD_START, 16, 16); ili9341_fill(4, SD_CARD_START, 16, 16);
touch_wait_release(); touch_wait_release();
menu_sdcard_cb(0, FMT_BMP_FILE); if (config.sd_icon_save & SDIS_CAPTURE)
menu_sdcard_cb(0, FMT_BMP_FILE);
if (config.sd_icon_save & SDIS_TRACES)
menu_save_traces_cb(0, 0);
return TRUE; return TRUE;
} }
#endif #endif
@ -8193,7 +8234,7 @@ void ui_process_touch(void)
switch (ui_mode) { switch (ui_mode) {
case UI_NORMAL: case UI_NORMAL:
#ifdef __USE_SD_CARD__ #ifdef __USE_SD_CARD__
if (made_screenshot(touch_x, touch_y)) if (SDIS_IS_ENABLED && made_screenshot(touch_x, touch_y))
break; break;
#endif #endif
if (touch_quick_menu(touch_x, touch_y)) if (touch_quick_menu(touch_x, touch_y))

Loading…
Cancel
Save

Powered by TurnKey Linux.