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 frequency_updated = FALSE;
|
||||||
int8_t sweep_enabled = TRUE;
|
int8_t sweep_enabled = TRUE;
|
||||||
int8_t cal_auto_interpolate = 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;
|
int8_t stop_the_world = FALSE;
|
||||||
int16_t vbat = 0;
|
int16_t vbat = 0;
|
||||||
|
|
||||||
|
|
||||||
static THD_WORKING_AREA(waThread1, 640);
|
static THD_WORKING_AREA(waThread1, 640);
|
||||||
static THD_FUNCTION(Thread1, arg)
|
static THD_FUNCTION(Thread1, arg)
|
||||||
{
|
{
|
||||||
|
|
@ -85,8 +86,9 @@ static THD_FUNCTION(Thread1, arg)
|
||||||
|
|
||||||
/* calculate trace coordinates */
|
/* calculate trace coordinates */
|
||||||
plot_into_index(measured);
|
plot_into_index(measured);
|
||||||
|
|
||||||
/* plot trace as raster */
|
/* 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();
|
pause_sweep();
|
||||||
chMtxLock(&mutex);
|
chMtxLock(&mutex);
|
||||||
|
|
||||||
freq = frequency0;
|
freq = frequency0;
|
||||||
step = (frequency1 - frequency0) / (sweep_points-1);
|
step = (frequency1 - frequency0) / (sweep_points-1);
|
||||||
set_frequency(freq);
|
set_frequency(freq);
|
||||||
|
|
@ -695,9 +698,8 @@ void sweep(void)
|
||||||
if (electrical_delay != 0)
|
if (electrical_delay != 0)
|
||||||
apply_edelay_at(i);
|
apply_edelay_at(i);
|
||||||
|
|
||||||
redraw_requested = FALSE;
|
|
||||||
ui_process();
|
ui_process();
|
||||||
if (redraw_requested)
|
if (redraw_request)
|
||||||
break; // return to redraw screen asap.
|
break; // return to redraw screen asap.
|
||||||
|
|
||||||
if (frequency_updated)
|
if (frequency_updated)
|
||||||
|
|
@ -1189,6 +1191,7 @@ cal_collect(int type)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
chMtxUnlock(&mutex);
|
chMtxUnlock(&mutex);
|
||||||
|
redraw_request |= REDRAW_CAL_STATUS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1223,6 +1226,7 @@ cal_done(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
cal_status |= CALSTAT_APPLY;
|
cal_status |= CALSTAT_APPLY;
|
||||||
|
redraw_request |= REDRAW_CAL_STATUS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1308,19 +1312,18 @@ static void cmd_cal(BaseSequentialStream *chp, int argc, char *argv[])
|
||||||
cal_collect(CAL_ISOLN);
|
cal_collect(CAL_ISOLN);
|
||||||
} else if (strcmp(cmd, "done") == 0) {
|
} else if (strcmp(cmd, "done") == 0) {
|
||||||
cal_done();
|
cal_done();
|
||||||
draw_cal_status();
|
|
||||||
return;
|
return;
|
||||||
} else if (strcmp(cmd, "on") == 0) {
|
} else if (strcmp(cmd, "on") == 0) {
|
||||||
cal_status |= CALSTAT_APPLY;
|
cal_status |= CALSTAT_APPLY;
|
||||||
draw_cal_status();
|
redraw_request |= REDRAW_CAL_STATUS;
|
||||||
return;
|
return;
|
||||||
} else if (strcmp(cmd, "off") == 0) {
|
} else if (strcmp(cmd, "off") == 0) {
|
||||||
cal_status &= ~CALSTAT_APPLY;
|
cal_status &= ~CALSTAT_APPLY;
|
||||||
draw_cal_status();
|
redraw_request |= REDRAW_CAL_STATUS;
|
||||||
return;
|
return;
|
||||||
} else if (strcmp(cmd, "reset") == 0) {
|
} else if (strcmp(cmd, "reset") == 0) {
|
||||||
cal_status = 0;
|
cal_status = 0;
|
||||||
draw_cal_status();
|
redraw_request |= REDRAW_CAL_STATUS;
|
||||||
return;
|
return;
|
||||||
} else if (strcmp(cmd, "data") == 0) {
|
} else if (strcmp(cmd, "data") == 0) {
|
||||||
chprintf(chp, "%f %f\r\n", cal_data[CAL_LOAD][0][0], cal_data[CAL_LOAD][0][1]);
|
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)
|
if (argc > 1)
|
||||||
s = atoi(argv[1]);
|
s = atoi(argv[1]);
|
||||||
cal_interpolate(s);
|
cal_interpolate(s);
|
||||||
draw_cal_status();
|
redraw_request |= REDRAW_CAL_STATUS;
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
chprintf(chp, "usage: cal [load|open|short|thru|isoln|done|reset|on|off|in]\r\n");
|
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)
|
if (id < 0 || id >= SAVEAREA_MAX)
|
||||||
goto usage;
|
goto usage;
|
||||||
caldata_save(id);
|
caldata_save(id);
|
||||||
draw_cal_status();
|
redraw_request |= REDRAW_CAL_STATUS;
|
||||||
return;
|
return;
|
||||||
|
|
||||||
usage:
|
usage:
|
||||||
|
|
@ -1375,7 +1378,7 @@ static void cmd_recall(BaseSequentialStream *chp, int argc, char *argv[])
|
||||||
if (caldata_recall(id) == 0) {
|
if (caldata_recall(id) == 0) {
|
||||||
// success
|
// success
|
||||||
update_frequencies();
|
update_frequencies();
|
||||||
draw_cal_status();
|
redraw_request |= REDRAW_CAL_STATUS;
|
||||||
}
|
}
|
||||||
chMtxUnlock(&mutex);
|
chMtxUnlock(&mutex);
|
||||||
resume_sweep();
|
resume_sweep();
|
||||||
|
|
@ -1638,6 +1641,7 @@ static void cmd_marker(BaseSequentialStream *chp, int argc, char *argv[])
|
||||||
active_marker = -1;
|
active_marker = -1;
|
||||||
for (t = 0; t < 4; t++)
|
for (t = 0; t < 4; t++)
|
||||||
markers[t].enabled = FALSE;
|
markers[t].enabled = FALSE;
|
||||||
|
redraw_request |= REDRAW_MARKER;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1647,7 +1651,9 @@ static void cmd_marker(BaseSequentialStream *chp, int argc, char *argv[])
|
||||||
if (argc == 1) {
|
if (argc == 1) {
|
||||||
chprintf(chp, "%d %d %d\r\n", t+1, markers[t].index, frequency);
|
chprintf(chp, "%d %d %d\r\n", t+1, markers[t].index, frequency);
|
||||||
active_marker = t;
|
active_marker = t;
|
||||||
|
// select active marker
|
||||||
markers[t].enabled = TRUE;
|
markers[t].enabled = TRUE;
|
||||||
|
redraw_request |= REDRAW_MARKER;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
|
|
@ -1655,15 +1661,19 @@ static void cmd_marker(BaseSequentialStream *chp, int argc, char *argv[])
|
||||||
markers[t].enabled = FALSE;
|
markers[t].enabled = FALSE;
|
||||||
if (active_marker == t)
|
if (active_marker == t)
|
||||||
active_marker = -1;
|
active_marker = -1;
|
||||||
|
redraw_request |= REDRAW_MARKER;
|
||||||
} else if (strcmp(argv[1], "on") == 0) {
|
} else if (strcmp(argv[1], "on") == 0) {
|
||||||
markers[t].enabled = TRUE;
|
markers[t].enabled = TRUE;
|
||||||
active_marker = t;
|
active_marker = t;
|
||||||
|
redraw_request |= REDRAW_MARKER;
|
||||||
} else {
|
} else {
|
||||||
|
// select active marker and move to index
|
||||||
markers[t].enabled = TRUE;
|
markers[t].enabled = TRUE;
|
||||||
int index = atoi(argv[1]);
|
int index = atoi(argv[1]);
|
||||||
markers[t].index = index;
|
markers[t].index = index;
|
||||||
markers[t].frequency = frequencies[index];
|
markers[t].frequency = frequencies[index];
|
||||||
active_marker = t;
|
active_marker = t;
|
||||||
|
redraw_request |= REDRAW_MARKER;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
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 trace_get_info(int t, char *buf, int len);
|
||||||
void plot_into_index(float measured[2][101][2]);
|
void plot_into_index(float measured[2][101][2]);
|
||||||
void force_set_markmap(void);
|
void force_set_markmap(void);
|
||||||
void draw_all_cells(void);
|
void draw_all(void);
|
||||||
|
|
||||||
void draw_cal_status(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);
|
void marker_position(int m, int t, int *x, int *y);
|
||||||
int search_nearest_index(int x, int y, int t);
|
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;
|
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);
|
grid_width = (WIDTH-1) * (fgrid / 100) / (fspan / 1000);
|
||||||
|
|
||||||
force_set_markmap();
|
force_set_markmap();
|
||||||
draw_frequencies();
|
redraw_request |= REDRAW_FREQUENCY;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
@ -1255,9 +1255,6 @@ draw_all_cells(void)
|
||||||
for (n = 0; n < (area_height+CELLHEIGHT-1) / CELLHEIGHT; n++) {
|
for (n = 0; n < (area_height+CELLHEIGHT-1) / CELLHEIGHT; n++) {
|
||||||
if (is_mapmarked(m, n))
|
if (is_mapmarked(m, n))
|
||||||
draw_cell(m, n);
|
draw_cell(m, n);
|
||||||
//ui_process();
|
|
||||||
//if (operation_requested)
|
|
||||||
// return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// keep current map for update
|
// keep current map for update
|
||||||
|
|
@ -1266,6 +1263,18 @@ draw_all_cells(void)
|
||||||
clear_markmap();
|
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
|
void
|
||||||
redraw_marker(int marker, int update_info)
|
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 (m = 7; m <= 9; m++)
|
||||||
for (n = 0; n < 8; n++)
|
for (n = 0; n < 8; n++)
|
||||||
mark_map(m, n);
|
mark_map(m, n);
|
||||||
redraw_requested = TRUE;
|
redraw_request |= REDRAW_CELLS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1296,7 +1305,7 @@ request_to_draw_cells_behind_numeric_input(void)
|
||||||
for (m = 0; m <= 9; m++)
|
for (m = 0; m <= 9; m++)
|
||||||
for (n = 6; n < 8; n++)
|
for (n = 6; n < 8; n++)
|
||||||
mark_map(m, n);
|
mark_map(m, n);
|
||||||
redraw_requested = TRUE;
|
redraw_request |= REDRAW_CELLS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1584,7 +1593,7 @@ void
|
||||||
request_to_redraw_grid(void)
|
request_to_redraw_grid(void)
|
||||||
{
|
{
|
||||||
force_set_markmap();
|
force_set_markmap();
|
||||||
redraw_requested = TRUE;
|
redraw_request |= REDRAW_CELLS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1595,14 +1604,6 @@ redraw_frame(void)
|
||||||
draw_cal_status();
|
draw_cal_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*void
|
|
||||||
redraw_all(void)
|
|
||||||
{
|
|
||||||
redraw();
|
|
||||||
force_set_markmap();
|
|
||||||
draw_all_cells();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
void
|
void
|
||||||
plot_init(void)
|
plot_init(void)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue