SETTING_MAGIC and STORE slot name

pwm
erikkaashoek 3 years ago
parent 2f63e1c5cc
commit 41afcfab5e

@ -138,7 +138,7 @@ caldata_save(uint16_t id)
dst = (uint16_t*)(SAVE_PROP_CONFIG_ADDR + id * SAVE_PROP_CONFIG_SIZE); dst = (uint16_t*)(SAVE_PROP_CONFIG_ADDR + id * SAVE_PROP_CONFIG_SIZE);
setting.magic = CONFIG_MAGIC; setting.magic = SETTING_MAGIC;
setting.checksum = 0x12345678; setting.checksum = 0x12345678;
setting.checksum = checksum( setting.checksum = checksum(
&setting, &setting,
@ -188,7 +188,7 @@ caldata_pointer(uint16_t id)
// point to saved area on the flash memory // point to saved area on the flash memory
src = (setting_t*)(SAVE_PROP_CONFIG_ADDR + id * SAVE_PROP_CONFIG_SIZE); src = (setting_t*)(SAVE_PROP_CONFIG_ADDR + id * SAVE_PROP_CONFIG_SIZE);
if (src->magic != CONFIG_MAGIC) if (src->magic != SETTING_MAGIC)
return NULL; return NULL;
// if (SDU1.config->usbp->state == USB_ACTIVE) shell_printf("Checksum %x\r\n", src->checksum); // if (SDU1.config->usbp->state == USB_ACTIVE) shell_printf("Checksum %x\r\n", src->checksum);
if (checksum(src, if (checksum(src,
@ -211,7 +211,7 @@ caldata_recall(uint16_t id)
// point to saved area on the flash memory // point to saved area on the flash memory
src = (setting_t*)(SAVE_PROP_CONFIG_ADDR + id * SAVE_PROP_CONFIG_SIZE); src = (setting_t*)(SAVE_PROP_CONFIG_ADDR + id * SAVE_PROP_CONFIG_SIZE);
if (src->magic != CONFIG_MAGIC) if (src->magic != SETTING_MAGIC)
return -1; return -1;
// if (SDU1.config->usbp->state == USB_ACTIVE) shell_printf("Checksum %x\r\n", src->checksum); // if (SDU1.config->usbp->state == USB_ACTIVE) shell_printf("Checksum %x\r\n", src->checksum);
if (checksum(src, if (checksum(src,
@ -255,7 +255,7 @@ caldata_ref(int id)
return NULL; return NULL;
src = (const setting_t*)saveareas[id]; src = (const setting_t*)saveareas[id];
if (src->magic != CONFIG_MAGIC) if (src->magic != SETTING_MAGIC)
return NULL; return NULL;
if (checksum(src, sizeof *src - sizeof src->checksum) != src->checksum) if (checksum(src, sizeof *src - sizeof src->checksum) != src->checksum)
return NULL; return NULL;

@ -1078,7 +1078,7 @@ static const marker_t def_markers[MARKERS_MAX] = {
void load_LCD_properties(void) void load_LCD_properties(void)
{ {
//Magic add on caldata_save //Magic add on caldata_save
//setting.magic = CONFIG_MAGIC; //setting.magic = SETTING_MAGIC;
setting._sweep_points = POINTS_COUNT; setting._sweep_points = POINTS_COUNT;
setting.trace_scale = 10.0; setting.trace_scale = 10.0;
setting.trace_refpos = 0; setting.trace_refpos = 0;

@ -1387,6 +1387,7 @@ typedef struct properties {
//sizeof(properties_t) == 0x1200 //sizeof(properties_t) == 0x1200
#define CONFIG_MAGIC 0x434f4e60 /* 'CONF' */ #define CONFIG_MAGIC 0x434f4e60 /* 'CONF' */
#define SETTING_MAGIC 0x434f4e60
extern int16_t lastsaveid; extern int16_t lastsaveid;
//extern properties_t *active_props; //extern properties_t *active_props;

@ -4760,7 +4760,7 @@ again: // Spur redu
// pureRSSI_t rssi = (RSSI>0 ? RSSI + correct_RSSI + correct_RSSI_freq : IGNORE_RSSI); // add correction // pureRSSI_t rssi = (RSSI>0 ? RSSI + correct_RSSI + correct_RSSI_freq : IGNORE_RSSI); // add correction
pureRSSI_t rssi = RSSI; pureRSSI_t rssi = RSSI;
if (false) { if (false) {
abort: // abort:
rssi = 0; rssi = 0;
} }
return rssi; return rssi;

12
ui.c

@ -1889,7 +1889,15 @@ static UI_FUNCTION_ADV_CALLBACK(menu_store_preset_acb)
{ {
(void)item; (void)item;
if(b){ if(b){
#if 1
setting_t *p = caldata_pointer(data);
if (p)
plot_printf(b->text, sizeof(b->text), "%.6FHz\n%.6FHz", (float)p->frequency0, (float)p->frequency1);
else
plot_printf(b->text, sizeof(b->text), "STORE %d", (int)data);
#else
b->param_1.u = data; b->param_1.u = data;
#endif
return; return;
} }
if (data >= 100) { if (data >= 100) {
@ -3708,7 +3716,7 @@ static const menuitem_t menu_back[] = {
static const menuitem_t menu_store_preset[] = static const menuitem_t menu_store_preset[] =
{ {
{ MT_ADV_CALLBACK, 0, "STORE AS\nSTARTUP",menu_store_preset_acb}, { MT_ADV_CALLBACK, 0, "STORE AS\nSTARTUP",menu_store_preset_acb},
{ MT_ADV_CALLBACK |MT_REPEATS, DATA_STARTS_REPEATS(1,4), "STORE %d", menu_store_preset_acb}, { MT_ADV_CALLBACK |MT_REPEATS, DATA_STARTS_REPEATS(1,4), MT_CUSTOM_LABEL, menu_store_preset_acb},
#ifdef TINYSA4 #ifdef TINYSA4
{ MT_CALLBACK, FMT_PRS_FILE, "STORE\n"S_RARROW"SD", menu_sdcard_cb}, { MT_CALLBACK, FMT_PRS_FILE, "STORE\n"S_RARROW"SD", menu_sdcard_cb},
#endif #endif
@ -6927,7 +6935,7 @@ static void sa_save_file(uint8_t format) {
{ {
uint16_t *src = (uint16_t*)&setting; uint16_t *src = (uint16_t*)&setting;
int total = sizeof(setting_t); int total = sizeof(setting_t);
setting.magic = CONFIG_MAGIC; setting.magic = SETTING_MAGIC;
setting.checksum = 0x12345678; setting.checksum = 0x12345678;
setting.checksum = checksum( setting.checksum = checksum(
&setting, &setting,

@ -252,7 +252,7 @@ finish:
uint32_t total = sizeof(setting_t) - sizeof(magic); uint32_t total = sizeof(setting_t) - sizeof(magic);
// Compare file size and try read magic header, if all OK load it // Compare file size and try read magic header, if all OK load it
if (fno.fsize == sizeof(setting) && f_read(fs_file, &magic, sizeof(magic), &size) == FR_OK && if (fno.fsize == sizeof(setting) && f_read(fs_file, &magic, sizeof(magic), &size) == FR_OK &&
magic == CONFIG_MAGIC && f_read(fs_file, src, total, &size) == FR_OK) { magic == SETTING_MAGIC && f_read(fs_file, src, total, &size) == FR_OK) {
// TODO remove code duplication with flash.c // TODO remove code duplication with flash.c
update_min_max_freq(); update_min_max_freq();

Loading…
Cancel
Save

Powered by TurnKey Linux.