From fe7a1ac4deb72547cc80eff0b6a941e754188d2e Mon Sep 17 00:00:00 2001 From: TT Date: Thu, 14 May 2020 06:53:52 +0900 Subject: [PATCH 1/4] fix: keep freq mode in each save slot --- main.c | 13 +++++++------ nanovna.h | 9 +++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/main.c b/main.c index 91f475c..2deacf2 100644 --- a/main.c +++ b/main.c @@ -779,7 +779,6 @@ config_t config = { .trace_color = { DEFAULT_TRACE_1_COLOR, DEFAULT_TRACE_2_COLOR, DEFAULT_TRACE_3_COLOR, DEFAULT_TRACE_4_COLOR }, // .touch_cal = { 693, 605, 124, 171 }, // 2.4 inch LCD panel .touch_cal = { 338, 522, 153, 192 }, // 2.8 inch LCD panel - .freq_mode = FREQ_MODE_START_STOP, .harmonic_freq_threshold = 300000000, .vbat_offset = 500 }; @@ -819,6 +818,8 @@ void load_default_properties(void) current_props._active_marker = 0; current_props._domain_mode = 0; current_props._marker_smith_format = MS_RLC; + current_props._freq_mode = FREQ_MODE_START_STOP; + //Checksum add on caldata_save //current_props.checksum = 0; } @@ -1003,7 +1004,7 @@ set_sweep_frequency(int type, uint32_t freq) ensure_edit_config(); switch (type) { case ST_START: - config.freq_mode &= ~FREQ_MODE_CENTER_SPAN; + freq_mode &= ~FREQ_MODE_CENTER_SPAN; if (frequency0 != freq) { frequency0 = freq; // if start > stop then make start = stop @@ -1011,7 +1012,7 @@ set_sweep_frequency(int type, uint32_t freq) } break; case ST_STOP: - config.freq_mode &= ~FREQ_MODE_CENTER_SPAN; + freq_mode &= ~FREQ_MODE_CENTER_SPAN; if (frequency1 != freq) { frequency1 = freq; // if start > stop then make start = stop @@ -1019,7 +1020,7 @@ set_sweep_frequency(int type, uint32_t freq) } break; case ST_CENTER: - config.freq_mode |= FREQ_MODE_CENTER_SPAN; + freq_mode |= FREQ_MODE_CENTER_SPAN; uint32_t center = frequency0 / 2 + frequency1 / 2; if (center != freq) { uint32_t span = frequency1 - frequency0; @@ -1034,7 +1035,7 @@ set_sweep_frequency(int type, uint32_t freq) } break; case ST_SPAN: - config.freq_mode |= FREQ_MODE_CENTER_SPAN; + freq_mode |= FREQ_MODE_CENTER_SPAN; if (frequency1 - frequency0 != freq) { uint32_t center = frequency0 / 2 + frequency1 / 2; if (center < START_MIN + freq / 2) { @@ -1048,7 +1049,7 @@ set_sweep_frequency(int type, uint32_t freq) } break; case ST_CW: - config.freq_mode |= FREQ_MODE_CENTER_SPAN; + freq_mode |= FREQ_MODE_CENTER_SPAN; if (frequency0 != freq || frequency1 != freq) { frequency0 = freq; frequency1 = freq; diff --git a/nanovna.h b/nanovna.h index ec03e18..79a6b15 100644 --- a/nanovna.h +++ b/nanovna.h @@ -230,7 +230,6 @@ typedef struct config { uint16_t menu_active_color; uint16_t trace_color[TRACES_MAX]; int16_t touch_cal[4]; - int8_t freq_mode; uint32_t harmonic_freq_threshold; uint16_t vbat_offset; uint8_t _reserved[22]; @@ -380,7 +379,8 @@ typedef struct properties { uint8_t _domain_mode; /* 0bxxxxxffm : where ff: TD_FUNC m: DOMAIN_MODE */ uint8_t _marker_smith_format; uint8_t _bandwidth; - uint8_t _reserved[50]; + int8_t _freq_mode; + uint8_t _reserved[49]; uint32_t checksum; } properties_t; @@ -407,9 +407,10 @@ extern properties_t current_props; #define velocity_factor current_props._velocity_factor #define marker_smith_format current_props._marker_smith_format #define bandwidth current_props._bandwidth +#define freq_mode current_props._freq_mode -#define FREQ_IS_STARTSTOP() (!(config.freq_mode&FREQ_MODE_CENTER_SPAN)) -#define FREQ_IS_CENTERSPAN() (config.freq_mode&FREQ_MODE_CENTER_SPAN) +#define FREQ_IS_STARTSTOP() (!(freq_mode & FREQ_MODE_CENTER_SPAN)) +#define FREQ_IS_CENTERSPAN() (freq_mode & FREQ_MODE_CENTER_SPAN) #define FREQ_IS_CW() (frequency0 == frequency1) int caldata_save(int id); From d7c7d8faeb7abde6655aeb065055a9e370348ecb Mon Sep 17 00:00:00 2001 From: TT Date: Thu, 14 May 2020 07:05:43 +0900 Subject: [PATCH 2/4] feat: add bandwidth command --- main.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/main.c b/main.c index 2deacf2..7553cd5 100644 --- a/main.c +++ b/main.c @@ -1946,6 +1946,23 @@ VNA_SHELL_FUNCTION(cmd_port) tlv320aic3204_select(port); } +VNA_SHELL_FUNCTION(cmd_bandwidth) +{ + if (argc != 1) + goto usage; + + static const char bw_choice[] = "1000|300|100|30|10"; + int i = get_str_index(argv[0], bw_choice); + if (i < 0) + goto usage; + + bandwidth = i; + return; + +usage: + shell_printf("usage: bandwidth {%s}\r\n", bw_choice); +} + VNA_SHELL_FUNCTION(cmd_stat) { int16_t *p = &rx_buffer[0]; @@ -2134,6 +2151,7 @@ static const VNAShellCommand commands[] = {"dump" , cmd_dump , 0}, #endif {"frequencies" , cmd_frequencies , 0}, + {"bandwidth" , cmd_bandwidth , 0}, {"port" , cmd_port , 0}, {"stat" , cmd_stat , 0}, {"gain" , cmd_gain , 0}, From ba7d358d3590e405c44f01fe4b110002a0e62332 Mon Sep 17 00:00:00 2001 From: TT Date: Thu, 14 May 2020 07:18:59 +0900 Subject: [PATCH 3/4] fix: force disable tracking on marker search left/right op --- ui.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ui.c b/ui.c index 3e10a58..26ae438 100644 --- a/ui.c +++ b/ui.c @@ -638,7 +638,7 @@ menu_bandwidth_cb(int item) draw_menu(); } -static void +static void choose_active_marker(void) { int i; @@ -768,9 +768,11 @@ menu_marker_search_cb(int item, uint8_t data) break; case 2: /* search Left */ i = marker_search_left(markers[active_marker].index); + uistat.marker_tracking = false; break; case 3: /* search right */ i = marker_search_right(markers[active_marker].index); + uistat.marker_tracking = false; break; case 4: /* tracking */ uistat.marker_tracking = !uistat.marker_tracking; From 56b0d3ad8a8077e39ca530f180ed8698631d0576 Mon Sep 17 00:00:00 2001 From: TT Date: Thu, 14 May 2020 07:20:29 +0900 Subject: [PATCH 4/4] env: insert wait after switching to dfu --- Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index bec51b8..4d06148 100644 --- a/Makefile +++ b/Makefile @@ -81,6 +81,10 @@ endif # Project, sources and paths # +# Dvice node to flash +DEVICE = /dev/cu.usbmodem401 +#DEVICE = /dev/ttyACM0 + # Define project name here PROJECT = ch @@ -225,6 +229,4 @@ flash: build/ch.bin dfu-util -d 0483:df11 -a 0 -s 0x08000000:leave -D build/ch.bin dfu: - -@printf "reset dfu\r" >/dev/cu.usbmodem401 - - + -printf "reset dfu\r" >$(DEVICE) && sleep 1