mirror of
https://github.com/ttrftech/NanoVNA.git
synced 2025-12-06 03:31:59 +01:00
add menu item delay (but not work)
This commit is contained in:
parent
3852f9cb21
commit
5ebb3330ff
46
main.c
46
main.c
|
|
@ -323,6 +323,7 @@ config_t config = {
|
||||||
/* menu_normal_color */ 0xffff,
|
/* menu_normal_color */ 0xffff,
|
||||||
/* menu_active_color */ 0x7777,
|
/* menu_active_color */ 0x7777,
|
||||||
/* trace_colors[4] */ { RGB565(0,255,255), RGB565(255,0,40), RGB565(0,0,255), RGB565(50,255,0) },
|
/* trace_colors[4] */ { RGB565(0,255,255), RGB565(255,0,40), RGB565(0,0,255), RGB565(50,255,0) },
|
||||||
|
///* touch_cal[4] */ { 620, 600, 160, 190 },
|
||||||
/* touch_cal[4] */ { 620, 600, 130, 180 },
|
/* touch_cal[4] */ { 620, 600, 130, 180 },
|
||||||
/* checksum */ 0
|
/* checksum */ 0
|
||||||
};
|
};
|
||||||
|
|
@ -336,6 +337,7 @@ properties_t current_props = {
|
||||||
/* frequencies */ {},
|
/* frequencies */ {},
|
||||||
/* cal_data */ {},
|
/* cal_data */ {},
|
||||||
/* trace[4] */ {
|
/* trace[4] */ {
|
||||||
|
/* enable, type, channel, polar, scale */
|
||||||
{ 1, TRC_LOGMAG, 0, 0, 1.0 },
|
{ 1, TRC_LOGMAG, 0, 0, 1.0 },
|
||||||
{ 1, TRC_LOGMAG, 1, 0, 1.0 },
|
{ 1, TRC_LOGMAG, 1, 0, 1.0 },
|
||||||
{ 1, TRC_SMITH, 0, 1, 1.0 },
|
{ 1, TRC_SMITH, 0, 1, 1.0 },
|
||||||
|
|
@ -472,6 +474,7 @@ freq_mode_startstop(void)
|
||||||
if (frequency1 <= 0) {
|
if (frequency1 <= 0) {
|
||||||
int center = frequency0;
|
int center = frequency0;
|
||||||
int span = -frequency1;
|
int span = -frequency1;
|
||||||
|
ensure_edit_config();
|
||||||
frequency0 = center - span/2;
|
frequency0 = center - span/2;
|
||||||
frequency1 = center + span/2;
|
frequency1 = center + span/2;
|
||||||
}
|
}
|
||||||
|
|
@ -483,6 +486,7 @@ freq_mode_centerspan(void)
|
||||||
if (frequency1 > 0) {
|
if (frequency1 > 0) {
|
||||||
int start = frequency0;
|
int start = frequency0;
|
||||||
int stop = frequency1;
|
int stop = frequency1;
|
||||||
|
ensure_edit_config();
|
||||||
frequency0 = (start + stop)/2; // center
|
frequency0 = (start + stop)/2; // center
|
||||||
frequency1 = -(stop - start); // span
|
frequency1 = -(stop - start); // span
|
||||||
}
|
}
|
||||||
|
|
@ -493,34 +497,36 @@ freq_mode_centerspan(void)
|
||||||
#define STOP_MAX 300000000
|
#define STOP_MAX 300000000
|
||||||
|
|
||||||
void
|
void
|
||||||
set_sweep_frequency(int type, int frequency)
|
set_sweep_frequency(int type, float frequency)
|
||||||
{
|
{
|
||||||
|
int32_t freq = frequency;
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case ST_START:
|
case ST_START:
|
||||||
ensure_edit_config();
|
|
||||||
freq_mode_startstop();
|
freq_mode_startstop();
|
||||||
if (frequency < START_MIN)
|
if (frequency < START_MIN)
|
||||||
frequency = START_MIN;
|
freq = START_MIN;
|
||||||
if (frequency0 != frequency) {
|
if (frequency0 != freq) {
|
||||||
frequency0 = frequency;
|
ensure_edit_config();
|
||||||
|
frequency0 = freq;
|
||||||
update_frequencies();
|
update_frequencies();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ST_STOP:
|
case ST_STOP:
|
||||||
ensure_edit_config();
|
|
||||||
freq_mode_startstop();
|
freq_mode_startstop();
|
||||||
if (frequency > STOP_MAX)
|
if (frequency > STOP_MAX)
|
||||||
frequency = STOP_MAX;
|
freq = STOP_MAX;
|
||||||
if (frequency1 != frequency) {
|
if (frequency1 != freq) {
|
||||||
frequency1 = frequency;
|
ensure_edit_config();
|
||||||
|
frequency1 = freq;
|
||||||
update_frequencies();
|
update_frequencies();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ST_CENTER:
|
case ST_CENTER:
|
||||||
ensure_edit_config();
|
ensure_edit_config();
|
||||||
freq_mode_centerspan();
|
freq_mode_centerspan();
|
||||||
if (frequency0 != frequency) {
|
if (frequency0 != freq) {
|
||||||
frequency0 = frequency;
|
ensure_edit_config();
|
||||||
|
frequency0 = freq;
|
||||||
int center = frequency0;
|
int center = frequency0;
|
||||||
int span = -frequency1;
|
int span = -frequency1;
|
||||||
if (center-span/2 < START_MIN) {
|
if (center-span/2 < START_MIN) {
|
||||||
|
|
@ -535,10 +541,10 @@ set_sweep_frequency(int type, int frequency)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ST_SPAN:
|
case ST_SPAN:
|
||||||
ensure_edit_config();
|
|
||||||
freq_mode_centerspan();
|
freq_mode_centerspan();
|
||||||
if (frequency1 != -frequency) {
|
if (frequency1 != -freq) {
|
||||||
frequency1 = -frequency;
|
ensure_edit_config();
|
||||||
|
frequency1 = -freq;
|
||||||
int center = frequency0;
|
int center = frequency0;
|
||||||
int span = -frequency1;
|
int span = -frequency1;
|
||||||
if (center-span/2 < START_MIN) {
|
if (center-span/2 < START_MIN) {
|
||||||
|
|
@ -553,9 +559,9 @@ set_sweep_frequency(int type, int frequency)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ST_CW:
|
case ST_CW:
|
||||||
ensure_edit_config();
|
|
||||||
freq_mode_centerspan();
|
freq_mode_centerspan();
|
||||||
if (frequency0 != frequency || frequency1 != 0) {
|
if (frequency0 != freq || frequency1 != 0) {
|
||||||
|
ensure_edit_config();
|
||||||
frequency0 = frequency;
|
frequency0 = frequency;
|
||||||
frequency1 = 0;
|
frequency1 = 0;
|
||||||
update_frequencies();
|
update_frequencies();
|
||||||
|
|
@ -938,7 +944,7 @@ static void cmd_recall(BaseSequentialStream *chp, int argc, char *argv[])
|
||||||
|
|
||||||
|
|
||||||
const char *trc_type_name[] = {
|
const char *trc_type_name[] = {
|
||||||
"LOGMAG", "PHASE", "SMITH", "ADMIT", "POLAR", "LINEAR", "SWR"
|
"LOGMAG", "PHASE", "DELAY", "SMITH", "POLAR", "LINEAR", "SWR"
|
||||||
};
|
};
|
||||||
const char *trc_channel_name[] = {
|
const char *trc_channel_name[] = {
|
||||||
"CH0", "CH1"
|
"CH0", "CH1"
|
||||||
|
|
@ -946,7 +952,7 @@ const char *trc_channel_name[] = {
|
||||||
|
|
||||||
void set_trace_type(int t, int type)
|
void set_trace_type(int t, int type)
|
||||||
{
|
{
|
||||||
int polar = type == TRC_SMITH || type == TRC_ADMIT || type == TRC_POLAR;
|
int polar = type == TRC_SMITH || type == TRC_POLAR;
|
||||||
int enabled = type != TRC_OFF;
|
int enabled = type != TRC_OFF;
|
||||||
int force = FALSE;
|
int force = FALSE;
|
||||||
|
|
||||||
|
|
@ -1064,8 +1070,8 @@ static void cmd_trace(BaseSequentialStream *chp, int argc, char *argv[])
|
||||||
set_trace_type(t, TRC_POLAR);
|
set_trace_type(t, TRC_POLAR);
|
||||||
} else if (strcmp(argv[1], "smith") == 0) {
|
} else if (strcmp(argv[1], "smith") == 0) {
|
||||||
set_trace_type(t, TRC_SMITH);
|
set_trace_type(t, TRC_SMITH);
|
||||||
} else if (strcmp(argv[1], "admit") == 0) {
|
} else if (strcmp(argv[1], "delay") == 0) {
|
||||||
set_trace_type(t, TRC_ADMIT);
|
set_trace_type(t, TRC_DELAY);
|
||||||
} else if (strcmp(argv[1], "linear") == 0) {
|
} else if (strcmp(argv[1], "linear") == 0) {
|
||||||
set_trace_type(t, TRC_LINEAR);
|
set_trace_type(t, TRC_LINEAR);
|
||||||
} else if (strcmp(argv[1], "swr") == 0) {
|
} else if (strcmp(argv[1], "swr") == 0) {
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ enum {
|
||||||
ST_START, ST_STOP, ST_CENTER, ST_SPAN, ST_CW
|
ST_START, ST_STOP, ST_CENTER, ST_SPAN, ST_CW
|
||||||
};
|
};
|
||||||
|
|
||||||
void set_sweep_frequency(int type, int frequency);
|
void set_sweep_frequency(int type, float frequency);
|
||||||
|
|
||||||
float my_atof(const char *p);
|
float my_atof(const char *p);
|
||||||
|
|
||||||
|
|
@ -141,7 +141,7 @@ extern const uint32_t numfont20x24[][24];
|
||||||
#define TRACES_MAX 4
|
#define TRACES_MAX 4
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
TRC_LOGMAG, TRC_PHASE, TRC_SMITH, TRC_ADMIT, TRC_POLAR, TRC_LINEAR, TRC_SWR, TRC_OFF
|
TRC_LOGMAG, TRC_PHASE, TRC_DELAY, TRC_SMITH, TRC_POLAR, TRC_LINEAR, TRC_SWR, TRC_OFF
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const char *trc_type_name[];
|
extern const char *trc_type_name[];
|
||||||
|
|
|
||||||
16
plot.c
16
plot.c
|
|
@ -490,7 +490,7 @@ trace_into_index(int x, int t, int i, float coeff[2])
|
||||||
v = 9 - swr(coeff);
|
v = 9 - swr(coeff);
|
||||||
break;
|
break;
|
||||||
case TRC_SMITH:
|
case TRC_SMITH:
|
||||||
case TRC_ADMIT:
|
//case TRC_ADMIT:
|
||||||
case TRC_POLAR:
|
case TRC_POLAR:
|
||||||
cartesian_scale(coeff[0], coeff[1], &x, &y, trace[t].scale);
|
cartesian_scale(coeff[0], coeff[1], &x, &y, trace[t].scale);
|
||||||
return INDEX(x, y, i);
|
return INDEX(x, y, i);
|
||||||
|
|
@ -605,7 +605,7 @@ trace_get_value_string(int t, char *buf, int len, float coeff[2], uint32_t frequ
|
||||||
case TRC_SMITH:
|
case TRC_SMITH:
|
||||||
gamma2imp(buf, len, coeff, frequency);
|
gamma2imp(buf, len, coeff, frequency);
|
||||||
break;
|
break;
|
||||||
case TRC_ADMIT:
|
//case TRC_ADMIT:
|
||||||
case TRC_POLAR:
|
case TRC_POLAR:
|
||||||
chsnprintf(buf, len, "%.2f %.2fj", coeff[0], coeff[1]);
|
chsnprintf(buf, len, "%.2f %.2fj", coeff[0], coeff[1]);
|
||||||
break;
|
break;
|
||||||
|
|
@ -626,7 +626,7 @@ trace_get_info(int t, char *buf, int len)
|
||||||
trace[t].channel, type, (int)(trace[t].scale*90));
|
trace[t].channel, type, (int)(trace[t].scale*90));
|
||||||
break;
|
break;
|
||||||
case TRC_SMITH:
|
case TRC_SMITH:
|
||||||
case TRC_ADMIT:
|
//case TRC_ADMIT:
|
||||||
case TRC_POLAR:
|
case TRC_POLAR:
|
||||||
chsnprintf(buf, len, "CH%d %s %.1fFS",
|
chsnprintf(buf, len, "CH%d %s %.1fFS",
|
||||||
trace[t].channel, type, trace[t].scale);
|
trace[t].channel, type, trace[t].scale);
|
||||||
|
|
@ -901,11 +901,11 @@ search_nearest_index(int x, int y, int t)
|
||||||
int min_d = 1000;
|
int min_d = 1000;
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < 101; i++) {
|
for (i = 0; i < 101; i++) {
|
||||||
int dx = x - CELL_X(index[i]) - OFFSETX;
|
int16_t dx = x - CELL_X(index[i]) - OFFSETX;
|
||||||
int dy = y - CELL_Y(index[i]) - OFFSETY;
|
int16_t dy = y - CELL_Y(index[i]) - OFFSETY;
|
||||||
if (dx < 0) dx = -dx;
|
if (dx < 0) dx = -dx;
|
||||||
if (dy < 0) dy = -dy;
|
if (dy < 0) dy = -dy;
|
||||||
if (dx > 20 && dy > 20)
|
if (dx > 20 || dy > 20)
|
||||||
continue;
|
continue;
|
||||||
int d = dx*dx + dy*dy;
|
int d = dx*dx + dy*dy;
|
||||||
if (d < min_d) {
|
if (d < min_d) {
|
||||||
|
|
@ -1007,8 +1007,8 @@ draw_cell(int m, int n)
|
||||||
else {
|
else {
|
||||||
if (trace[t].type == TRC_SMITH)
|
if (trace[t].type == TRC_SMITH)
|
||||||
grid_mode |= GRID_SMITH;
|
grid_mode |= GRID_SMITH;
|
||||||
else if (trace[t].type == TRC_ADMIT)
|
//else if (trace[t].type == TRC_ADMIT)
|
||||||
grid_mode |= GRID_ADMIT;
|
// grid_mode |= GRID_ADMIT;
|
||||||
else
|
else
|
||||||
grid_mode |= GRID_POLAR;
|
grid_mode |= GRID_POLAR;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
48
ui.c
48
ui.c
|
|
@ -248,6 +248,7 @@ int touch_check(void)
|
||||||
if (stat) {
|
if (stat) {
|
||||||
last_touch_x = touch_measure_x();
|
last_touch_x = touch_measure_x();
|
||||||
last_touch_y = touch_measure_y();
|
last_touch_y = touch_measure_y();
|
||||||
|
touch_prepare_sense();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stat != last_touch_status) {
|
if (stat != last_touch_status) {
|
||||||
|
|
@ -400,6 +401,7 @@ menu_save_cb(int item)
|
||||||
if (item < 0 || item >= 5)
|
if (item < 0 || item >= 5)
|
||||||
return;
|
return;
|
||||||
if (caldata_save(item) == 0) {
|
if (caldata_save(item) == 0) {
|
||||||
|
menu_move_back();
|
||||||
ui_mode_normal();
|
ui_mode_normal();
|
||||||
draw_cal_status();
|
draw_cal_status();
|
||||||
}
|
}
|
||||||
|
|
@ -417,14 +419,40 @@ menu_trace_cb(int item)
|
||||||
static void
|
static void
|
||||||
menu_format_cb(int item)
|
menu_format_cb(int item)
|
||||||
{
|
{
|
||||||
set_trace_type(uistat.current_trace, item);
|
switch (item) {
|
||||||
|
case 0:
|
||||||
|
set_trace_type(uistat.current_trace, TRC_LOGMAG);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
set_trace_type(uistat.current_trace, TRC_PHASE);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
set_trace_type(uistat.current_trace, TRC_DELAY);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
set_trace_type(uistat.current_trace, TRC_SMITH);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
set_trace_type(uistat.current_trace, TRC_SWR);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
ui_mode_normal();
|
ui_mode_normal();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
menu_format2_cb(int item)
|
menu_format2_cb(int item)
|
||||||
{
|
{
|
||||||
menu_format_cb(item + 5);
|
switch (item) {
|
||||||
|
case 0:
|
||||||
|
set_trace_type(uistat.current_trace, TRC_POLAR);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
set_trace_type(uistat.current_trace, TRC_LINEAR);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ui_mode_normal();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
@ -590,13 +618,14 @@ const menuitem_t menu_trace[] = {
|
||||||
{ MT_CALLBACK, "1", menu_trace_cb },
|
{ MT_CALLBACK, "1", menu_trace_cb },
|
||||||
{ MT_CALLBACK, "2", menu_trace_cb },
|
{ MT_CALLBACK, "2", menu_trace_cb },
|
||||||
{ MT_CALLBACK, "3", menu_trace_cb },
|
{ MT_CALLBACK, "3", menu_trace_cb },
|
||||||
|
{ MT_CALLBACK, "\2SINGLE\0TRACE", menu_single_trace_cb },
|
||||||
{ MT_CANCEL, "BACK", NULL },
|
{ MT_CANCEL, "BACK", NULL },
|
||||||
{ MT_NONE, NULL, NULL } // sentinel
|
{ MT_NONE, NULL, NULL } // sentinel
|
||||||
};
|
};
|
||||||
|
|
||||||
const menuitem_t menu_format2[] = {
|
const menuitem_t menu_format2[] = {
|
||||||
|
{ MT_CALLBACK, "POLAR", menu_format2_cb },
|
||||||
{ MT_CALLBACK, "LINEAR", menu_format2_cb },
|
{ MT_CALLBACK, "LINEAR", menu_format2_cb },
|
||||||
{ MT_CALLBACK, "SWR", menu_format2_cb },
|
|
||||||
{ MT_CANCEL, "BACK", NULL },
|
{ MT_CANCEL, "BACK", NULL },
|
||||||
{ MT_NONE, NULL, NULL } // sentinel
|
{ MT_NONE, NULL, NULL } // sentinel
|
||||||
};
|
};
|
||||||
|
|
@ -604,9 +633,9 @@ const menuitem_t menu_format2[] = {
|
||||||
const menuitem_t menu_format[] = {
|
const menuitem_t menu_format[] = {
|
||||||
{ MT_CALLBACK, "LOGMAG", menu_format_cb },
|
{ MT_CALLBACK, "LOGMAG", menu_format_cb },
|
||||||
{ MT_CALLBACK, "PHASE", menu_format_cb },
|
{ MT_CALLBACK, "PHASE", menu_format_cb },
|
||||||
|
{ MT_CALLBACK, "DELAY", menu_format_cb },
|
||||||
{ MT_CALLBACK, "SMITH", menu_format_cb },
|
{ MT_CALLBACK, "SMITH", menu_format_cb },
|
||||||
{ MT_CALLBACK, "ADMIT", menu_format_cb },
|
{ MT_CALLBACK, "SWR", menu_format_cb },
|
||||||
{ MT_CALLBACK, "POLAR", menu_format_cb },
|
|
||||||
{ MT_SUBMENU, "MORE", menu_format2 },
|
{ MT_SUBMENU, "MORE", menu_format2 },
|
||||||
//{ MT_CALLBACK, "LINEAR", menu_format_cb },
|
//{ MT_CALLBACK, "LINEAR", menu_format_cb },
|
||||||
//{ MT_CALLBACK, "SWR", menu_format_cb },
|
//{ MT_CALLBACK, "SWR", menu_format_cb },
|
||||||
|
|
@ -615,14 +644,13 @@ const menuitem_t menu_format[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const menuitem_t menu_channel[] = {
|
const menuitem_t menu_channel[] = {
|
||||||
{ MT_CALLBACK, "CH0", menu_channel_cb },
|
{ MT_CALLBACK, "\2CH0\0REFLECT", menu_channel_cb },
|
||||||
{ MT_CALLBACK, "CH1", menu_channel_cb },
|
{ MT_CALLBACK, "\2CH1\0THROUGH", menu_channel_cb },
|
||||||
{ MT_CANCEL, "BACK", NULL },
|
{ MT_CANCEL, "BACK", NULL },
|
||||||
{ MT_NONE, NULL, NULL } // sentinel
|
{ MT_NONE, NULL, NULL } // sentinel
|
||||||
};
|
};
|
||||||
|
|
||||||
const menuitem_t menu_display[] = {
|
const menuitem_t menu_display[] = {
|
||||||
{ MT_CALLBACK, "\2SINGLE\0TRACE", menu_single_trace_cb },
|
|
||||||
{ MT_SUBMENU, "TRACE", menu_trace },
|
{ MT_SUBMENU, "TRACE", menu_trace },
|
||||||
{ MT_SUBMENU, "FORMAT", menu_format },
|
{ MT_SUBMENU, "FORMAT", menu_format },
|
||||||
{ MT_CALLBACK, "SCALE", menu_scale_cb },
|
{ MT_CALLBACK, "SCALE", menu_scale_cb },
|
||||||
|
|
@ -1196,9 +1224,11 @@ touch_pickup_marker(void)
|
||||||
marker_position(m, t, &x, &y);
|
marker_position(m, t, &x, &y);
|
||||||
|
|
||||||
if (sq_distance(x - touch_x, y - touch_y) < 400) {
|
if (sq_distance(x - touch_x, y - touch_y) < 400) {
|
||||||
|
if (active_marker != m) {
|
||||||
active_marker = m;
|
active_marker = m;
|
||||||
redraw_marker(active_marker, TRUE);
|
redraw_marker(active_marker, TRUE);
|
||||||
|
}
|
||||||
|
// drag marker until release
|
||||||
drag_marker(t, m);
|
drag_marker(t, m);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue