mirror of
https://github.com/ttrftech/NanoVNA.git
synced 2025-12-06 03:31:59 +01:00
fix: omit drawing screen from usb thread
This commit is contained in:
parent
0abe3e00d0
commit
47f48d83e4
32
main.c
32
main.c
|
|
@ -51,10 +51,11 @@ int8_t drive_strength = DRIVE_STRENGTH_AUTO;
|
|||
int8_t frequency_updated = FALSE;
|
||||
int8_t sweep_enabled = TRUE;
|
||||
int8_t cal_auto_interpolate = TRUE;
|
||||
int8_t redraw_requested = FALSE;
|
||||
uint16_t redraw_request = 0; // contains REDRAW_XXX flags
|
||||
int8_t stop_the_world = FALSE;
|
||||
int16_t vbat = 0;
|
||||
|
||||
|
||||
static THD_WORKING_AREA(waThread1, 640);
|
||||
static THD_FUNCTION(Thread1, arg)
|
||||
{
|
||||
|
|
@ -85,8 +86,9 @@ static THD_FUNCTION(Thread1, arg)
|
|||
|
||||
/* calculate trace coordinates */
|
||||
plot_into_index(measured);
|
||||
|
||||
/* plot trace as raster */
|
||||
draw_all_cells();
|
||||
draw_all();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -642,6 +644,7 @@ static void cmd_scan(BaseSequentialStream *chp, int argc, char *argv[])
|
|||
|
||||
pause_sweep();
|
||||
chMtxLock(&mutex);
|
||||
|
||||
freq = frequency0;
|
||||
step = (frequency1 - frequency0) / (sweep_points-1);
|
||||
set_frequency(freq);
|
||||
|
|
@ -695,9 +698,8 @@ void sweep(void)
|
|||
if (electrical_delay != 0)
|
||||
apply_edelay_at(i);
|
||||
|
||||
redraw_requested = FALSE;
|
||||
ui_process();
|
||||
if (redraw_requested)
|
||||
if (redraw_request)
|
||||
break; // return to redraw screen asap.
|
||||
|
||||
if (frequency_updated)
|
||||
|
|
@ -1189,6 +1191,7 @@ cal_collect(int type)
|
|||
break;
|
||||
}
|
||||
chMtxUnlock(&mutex);
|
||||
redraw_request |= REDRAW_CAL_STATUS;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1223,6 +1226,7 @@ cal_done(void)
|
|||
}
|
||||
|
||||
cal_status |= CALSTAT_APPLY;
|
||||
redraw_request |= REDRAW_CAL_STATUS;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1308,19 +1312,18 @@ static void cmd_cal(BaseSequentialStream *chp, int argc, char *argv[])
|
|||
cal_collect(CAL_ISOLN);
|
||||
} else if (strcmp(cmd, "done") == 0) {
|
||||
cal_done();
|
||||
draw_cal_status();
|
||||
return;
|
||||
} else if (strcmp(cmd, "on") == 0) {
|
||||
cal_status |= CALSTAT_APPLY;
|
||||
draw_cal_status();
|
||||
redraw_request |= REDRAW_CAL_STATUS;
|
||||
return;
|
||||
} else if (strcmp(cmd, "off") == 0) {
|
||||
cal_status &= ~CALSTAT_APPLY;
|
||||
draw_cal_status();
|
||||
redraw_request |= REDRAW_CAL_STATUS;
|
||||
return;
|
||||
} else if (strcmp(cmd, "reset") == 0) {
|
||||
cal_status = 0;
|
||||
draw_cal_status();
|
||||
redraw_request |= REDRAW_CAL_STATUS;
|
||||
return;
|
||||
} else if (strcmp(cmd, "data") == 0) {
|
||||
chprintf(chp, "%f %f\r\n", cal_data[CAL_LOAD][0][0], cal_data[CAL_LOAD][0][1]);
|
||||
|
|
@ -1334,7 +1337,7 @@ static void cmd_cal(BaseSequentialStream *chp, int argc, char *argv[])
|
|||
if (argc > 1)
|
||||
s = atoi(argv[1]);
|
||||
cal_interpolate(s);
|
||||
draw_cal_status();
|
||||
redraw_request |= REDRAW_CAL_STATUS;
|
||||
return;
|
||||
} else {
|
||||
chprintf(chp, "usage: cal [load|open|short|thru|isoln|done|reset|on|off|in]\r\n");
|
||||
|
|
@ -1353,7 +1356,7 @@ static void cmd_save(BaseSequentialStream *chp, int argc, char *argv[])
|
|||
if (id < 0 || id >= SAVEAREA_MAX)
|
||||
goto usage;
|
||||
caldata_save(id);
|
||||
draw_cal_status();
|
||||
redraw_request |= REDRAW_CAL_STATUS;
|
||||
return;
|
||||
|
||||
usage:
|
||||
|
|
@ -1375,7 +1378,7 @@ static void cmd_recall(BaseSequentialStream *chp, int argc, char *argv[])
|
|||
if (caldata_recall(id) == 0) {
|
||||
// success
|
||||
update_frequencies();
|
||||
draw_cal_status();
|
||||
redraw_request |= REDRAW_CAL_STATUS;
|
||||
}
|
||||
chMtxUnlock(&mutex);
|
||||
resume_sweep();
|
||||
|
|
@ -1638,6 +1641,7 @@ static void cmd_marker(BaseSequentialStream *chp, int argc, char *argv[])
|
|||
active_marker = -1;
|
||||
for (t = 0; t < 4; t++)
|
||||
markers[t].enabled = FALSE;
|
||||
redraw_request |= REDRAW_MARKER;
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1647,7 +1651,9 @@ static void cmd_marker(BaseSequentialStream *chp, int argc, char *argv[])
|
|||
if (argc == 1) {
|
||||
chprintf(chp, "%d %d %d\r\n", t+1, markers[t].index, frequency);
|
||||
active_marker = t;
|
||||
// select active marker
|
||||
markers[t].enabled = TRUE;
|
||||
redraw_request |= REDRAW_MARKER;
|
||||
return;
|
||||
}
|
||||
if (argc > 1) {
|
||||
|
|
@ -1655,15 +1661,19 @@ static void cmd_marker(BaseSequentialStream *chp, int argc, char *argv[])
|
|||
markers[t].enabled = FALSE;
|
||||
if (active_marker == t)
|
||||
active_marker = -1;
|
||||
redraw_request |= REDRAW_MARKER;
|
||||
} else if (strcmp(argv[1], "on") == 0) {
|
||||
markers[t].enabled = TRUE;
|
||||
active_marker = t;
|
||||
redraw_request |= REDRAW_MARKER;
|
||||
} else {
|
||||
// select active marker and move to index
|
||||
markers[t].enabled = TRUE;
|
||||
int index = atoi(argv[1]);
|
||||
markers[t].index = index;
|
||||
markers[t].frequency = frequencies[index];
|
||||
active_marker = t;
|
||||
redraw_request |= REDRAW_MARKER;
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
|
|
|||
10
nanovna.h
10
nanovna.h
|
|
@ -236,7 +236,7 @@ void redraw_marker(int marker, int update_info);
|
|||
void trace_get_info(int t, char *buf, int len);
|
||||
void plot_into_index(float measured[2][101][2]);
|
||||
void force_set_markmap(void);
|
||||
void draw_all_cells(void);
|
||||
void draw_all(void);
|
||||
|
||||
void draw_cal_status(void);
|
||||
|
||||
|
|
@ -245,7 +245,13 @@ void markmap_all_markers(void);
|
|||
void marker_position(int m, int t, int *x, int *y);
|
||||
int search_nearest_index(int x, int y, int t);
|
||||
|
||||
extern int8_t redraw_requested;
|
||||
extern uint16_t redraw_request;
|
||||
|
||||
#define REDRAW_CELLS (1<<0)
|
||||
#define REDRAW_FREQUENCY (1<<1)
|
||||
#define REDRAW_CAL_STATUS (1<<2)
|
||||
#define REDRAW_MARKER (1<<3)
|
||||
|
||||
extern int16_t vbat;
|
||||
|
||||
/*
|
||||
|
|
|
|||
31
plot.c
31
plot.c
|
|
@ -89,7 +89,7 @@ void update_grid(void)
|
|||
grid_width = (WIDTH-1) * (fgrid / 100) / (fspan / 1000);
|
||||
|
||||
force_set_markmap();
|
||||
draw_frequencies();
|
||||
redraw_request |= REDRAW_FREQUENCY;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -1255,9 +1255,6 @@ draw_all_cells(void)
|
|||
for (n = 0; n < (area_height+CELLHEIGHT-1) / CELLHEIGHT; n++) {
|
||||
if (is_mapmarked(m, n))
|
||||
draw_cell(m, n);
|
||||
//ui_process();
|
||||
//if (operation_requested)
|
||||
// return;
|
||||
}
|
||||
|
||||
// keep current map for update
|
||||
|
|
@ -1266,6 +1263,18 @@ draw_all_cells(void)
|
|||
clear_markmap();
|
||||
}
|
||||
|
||||
void
|
||||
draw_all(void)
|
||||
{
|
||||
draw_all_cells();
|
||||
|
||||
if (redraw_request & REDRAW_FREQUENCY)
|
||||
draw_frequencies();
|
||||
if (redraw_request & REDRAW_CAL_STATUS)
|
||||
draw_cal_status();
|
||||
redraw_request = 0;
|
||||
}
|
||||
|
||||
void
|
||||
redraw_marker(int marker, int update_info)
|
||||
{
|
||||
|
|
@ -1286,7 +1295,7 @@ request_to_draw_cells_behind_menu(void)
|
|||
for (m = 7; m <= 9; m++)
|
||||
for (n = 0; n < 8; n++)
|
||||
mark_map(m, n);
|
||||
redraw_requested = TRUE;
|
||||
redraw_request |= REDRAW_CELLS;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1296,7 +1305,7 @@ request_to_draw_cells_behind_numeric_input(void)
|
|||
for (m = 0; m <= 9; m++)
|
||||
for (n = 6; n < 8; n++)
|
||||
mark_map(m, n);
|
||||
redraw_requested = TRUE;
|
||||
redraw_request |= REDRAW_CELLS;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -1584,7 +1593,7 @@ void
|
|||
request_to_redraw_grid(void)
|
||||
{
|
||||
force_set_markmap();
|
||||
redraw_requested = TRUE;
|
||||
redraw_request |= REDRAW_CELLS;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1595,14 +1604,6 @@ redraw_frame(void)
|
|||
draw_cal_status();
|
||||
}
|
||||
|
||||
/*void
|
||||
redraw_all(void)
|
||||
{
|
||||
redraw();
|
||||
force_set_markmap();
|
||||
draw_all_cells();
|
||||
}*/
|
||||
|
||||
void
|
||||
plot_init(void)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue