diff --git a/main.c b/main.c index bb4c920..7a42927 100644 --- a/main.c +++ b/main.c @@ -1711,11 +1711,13 @@ void set_trace_channel(int t, int channel) } } -void set_trace_scale(int t, float scale) +void set_trace_scale(float scale) { - if (trace[t].scale != scale) { - trace[t].scale = scale; - force_set_markmap(); + if (trace[TRACE_ACTUAL].scale != scale){ + trace[TRACE_ACTUAL].scale = scale; + trace[TRACE_STORED].scale = scale; + trace[TRACE_TEMP].scale = scale; + redraw_request |= REDRAW_AREA | REDRAW_CAL_STATUS; } } @@ -1724,11 +1726,13 @@ float get_trace_scale(int t) return trace[t].scale; } -void set_trace_refpos(int t, float refpos) +void set_trace_refpos(float refpos) { - if (trace[t].refpos != refpos) { - trace[t].refpos = refpos; - force_set_markmap(); + if (trace[TRACE_ACTUAL].refpos != refpos){ + trace[TRACE_ACTUAL].refpos = refpos; + trace[TRACE_STORED].refpos = refpos; + trace[TRACE_TEMP].refpos = refpos; + redraw_request |= REDRAW_AREA | REDRAW_CAL_STATUS; } } diff --git a/nanovna.h b/nanovna.h index 6543566..4171a9d 100644 --- a/nanovna.h +++ b/nanovna.h @@ -421,8 +421,8 @@ int get_level_offset(void); void set_trace_type(int t, int type); void set_trace_channel(int t, int channel); -void set_trace_scale(int t, float scale); -void set_trace_refpos(int t, float refpos); +void set_trace_scale(float scale); +void set_trace_refpos(float refpos); float get_trace_scale(int t); float get_trace_refpos(int t); const char *get_trace_typename(int t); @@ -520,7 +520,7 @@ extern volatile uint8_t redraw_request; #define DEFAULT_TRACE_1_COLOR RGB565(255, 0, 0) /* RGB565(255,255, 0) */ #define DEFAULT_TRACE_2_COLOR RGB565( 0,255, 0)/* RGB565( 0,255,255) */ #define DEFAULT_TRACE_3_COLOR RGB565(255,255, 0)/* RGB565( 0,255, 0) */ -#define DEFAULT_TRIGGER_COLOR RGB565( 0,0 ,255)/* RGB565( 0,190, 0) */ +#define DEFAULT_TRIGGER_COLOR RGB565( 0, 0,255)/* RGB565( 0 0,255) */ //#define DEFAULT_TRACE_4_COLOR RGB565(255, 0,255) #define DEFAULT_NORMAL_BAT_COLOR RGB565( 31,227, 0) #define DEFAULT_LOW_BAT_COLOR RGB565(255, 0, 0) diff --git a/sa_core.c b/sa_core.c index 9cff78f..ab3f990 100644 --- a/sa_core.c +++ b/sa_core.c @@ -634,7 +634,7 @@ void set_unit(int u) setting.lna = S_AUTO_OFF; } plot_into_index(measured); - force_set_markmap(); + redraw_request|=REDRAW_AREA; dirty = true; } float const unit_scale_value[]={1,0.001,0.000001,0.000000001,0.000000000001}; @@ -648,7 +648,7 @@ void user_set_reflevel(float level) set_reflevel(setting.scale*NGRIDY); } else set_reflevel(level); - force_set_markmap(); + redraw_request|=REDRAW_AREA; } void set_reflevel(float level) @@ -669,12 +669,8 @@ void set_reflevel(float level) setting.unit_scale_index++; } setting.unit_scale = unit_scale_value[setting.unit_scale_index]; - setting.reflevel = level; - set_trace_refpos(0, /* NGRIDY - */ level /* / get_trace_scale(0) */); - set_trace_refpos(1, /* NGRIDY - */ level /* / get_trace_scale(0) */ ); - set_trace_refpos(2, /* NGRIDY - */ level /* / get_trace_scale(0) */ ); - redraw_request |= REDRAW_CELLS | REDRAW_CAL_STATUS; + set_trace_refpos(level); // dirty = true; } @@ -688,9 +684,7 @@ void round_reflevel_to_scale(void) { } setting.reflevel = multi*setting.scale; - set_trace_refpos(0,setting.reflevel); - set_trace_refpos(1,setting.reflevel); - set_trace_refpos(2,setting.reflevel); + set_trace_refpos(setting.reflevel); } void user_set_scale(float s) @@ -730,11 +724,8 @@ void set_scale(float t) { t = 1.0; t = t*m; setting.scale = t; - set_trace_scale(0, t); - set_trace_scale(1, t); - set_trace_scale(2, t); + set_trace_scale(t); round_reflevel_to_scale(); - redraw_request |= REDRAW_CELLS | REDRAW_CAL_STATUS; } @@ -1921,7 +1912,6 @@ sweep_again: // stay in sweep loop when output mo set_scale(r / NGRIDY); set_reflevel(setting.scale*NGRIDY); // dirty = false; // Prevent reset of SI4432 - redraw_request |= REDRAW_CAL_STATUS; } } } else { @@ -1929,15 +1919,12 @@ sweep_again: // stay in sweep loop when output mo float s_ref = setting.reflevel/setting.scale; if (s_r < s_ref - NGRIDY || s_min > s_ref) { //Completely outside set_reflevel(setting.scale*(floor(s_r)+1)); - redraw_request |= REDRAW_CAL_STATUS; // dirty = true; // Must be above if(scandirty!!!!!) }else if (s_r > s_ref - 0.5 || s_min > s_ref - 8.8 ) { // maximum to high or minimum to high set_reflevel(setting.reflevel + setting.scale); - redraw_request |= REDRAW_CAL_STATUS; // dirty = true; // Must be above if(scandirty!!!!!) } else if (s_min < s_ref - 10.1 && s_r < s_ref - 1.5) { // minimum to low and maximum can move up set_reflevel(setting.reflevel - setting.scale); - redraw_request |= REDRAW_CAL_STATUS; // dirty = true; // Must be above if(scandirty!!!!!) } // dirty = false; // Prevent reset of SI4432 diff --git a/ui_sa.c b/ui_sa.c index 4975484..2ac1979 100644 --- a/ui_sa.c +++ b/ui_sa.c @@ -1012,7 +1012,7 @@ static void menu_trigger_cb(int item, uint8_t data) set_trigger(data); // menu_move_back(); ui_mode_normal(); - redraw_request |= REDRAW_CAL_STATUS | REDRAW_AREA; + redraw_request |= REDRAW_CAL_STATUS; completed = true; }