Skip to content

Commit

Permalink
menu attribute change on trace selection and cal operations
Browse files Browse the repository at this point in the history
  • Loading branch information
edy555 committed Jan 5, 2017
1 parent 5ebb333 commit ee4576d
Show file tree
Hide file tree
Showing 3 changed files with 63 additions and 24 deletions.
6 changes: 3 additions & 3 deletions main.c
Original file line number Diff line number Diff line change
Expand Up @@ -336,12 +336,12 @@ properties_t current_props = {
/* cal_status */ 0,
/* frequencies */ {},
/* cal_data */ {},
/* trace[4] */ {
/* enable, type, channel, polar, scale */
/* trace[4] */
{/*enable, type, channel, polar, scale*/
{ 1, TRC_LOGMAG, 0, 0, 1.0 },
{ 1, TRC_LOGMAG, 1, 0, 1.0 },
{ 1, TRC_SMITH, 0, 1, 1.0 },
{ 1, TRC_PHASE, 1, 1, 1.0 }
{ 1, TRC_PHASE, 1, 0, 1.0 }
},
/* markers[4] */ {
{ 1, 30 }, { 0, 40 }, { 0, 60 }, { 0, 80 }
Expand Down
32 changes: 20 additions & 12 deletions plot.c
Original file line number Diff line number Diff line change
Expand Up @@ -588,7 +588,10 @@ trace_get_value_string(int t, char *buf, int len, float coeff[2], uint32_t frequ
switch (trace[t].type) {
case TRC_LOGMAG:
v = logmag(coeff);
chsnprintf(buf, len, "%.2fdB", v * 10);
if (v == -INFINITY)
chsnprintf(buf, len, "-INF dB");
else
chsnprintf(buf, len, "%.2fdB", v * 10);
break;
case TRC_PHASE:
v = phase(coeff);
Expand Down Expand Up @@ -1002,16 +1005,15 @@ draw_cell(int m, int n)
for (t = 0; t < TRACES_MAX; t++) {
if (!trace[t].enabled)
continue;
if (!trace[t].polar)

if (trace[t].type == TRC_SMITH)
grid_mode |= GRID_SMITH;
//else if (trace[t].type == TRC_ADMIT)
// grid_mode |= GRID_ADMIT;
else if (trace[t].type == TRC_POLAR)
grid_mode |= GRID_POLAR;
else
grid_mode |= GRID_RECTANGULAR;
else {
if (trace[t].type == TRC_SMITH)
grid_mode |= GRID_SMITH;
//else if (trace[t].type == TRC_ADMIT)
// grid_mode |= GRID_ADMIT;
else
grid_mode |= GRID_POLAR;
}
}

PULSE;
Expand Down Expand Up @@ -1050,8 +1052,11 @@ draw_cell(int m, int n)
#if 1
/* draw rectanglar plot */
for (t = 0; t < TRACES_MAX; t++) {
if (!trace[t].enabled || trace[t].polar)
if (!trace[t].enabled)
continue;
if (trace[t].type == TRC_SMITH || trace[t].type == TRC_POLAR)
continue;

if (search_index_x(x0, trace_index[t], &i0, &i1)) {
if (i0 > 0)
i0--;
Expand All @@ -1070,8 +1075,11 @@ draw_cell(int m, int n)
/* draw polar plot */
for (t = 0; t < TRACES_MAX; t++) {
int c = config.trace_color[t];
if (!trace[t].enabled || !trace[t].polar)
if (!trace[t].enabled)
continue;
if (trace[t].type != TRC_SMITH && trace[t].type != TRC_POLAR)
continue;

for (i = 1; i < 101; i++) {
//uint32_t index = trace_index[t][i];
//uint32_t pindex = trace_index[t][i-1];
Expand Down
49 changes: 40 additions & 9 deletions ui.c
Original file line number Diff line number Diff line change
Expand Up @@ -412,6 +412,7 @@ menu_trace_cb(int item)
{
if (item < 0 || item >= 4)
return;
trace[item].enabled = TRUE;
uistat.current_trace = item;
menu_move_back();
}
Expand Down Expand Up @@ -614,10 +615,10 @@ menu_cal_cb(int item)


const menuitem_t menu_trace[] = {
{ MT_CALLBACK, "0", menu_trace_cb },
{ MT_CALLBACK, "1", menu_trace_cb },
{ MT_CALLBACK, "2", menu_trace_cb },
{ MT_CALLBACK, "3", menu_trace_cb },
{ MT_CALLBACK, "TRACE 0", menu_trace_cb },
{ MT_CALLBACK, "TRACE 1", menu_trace_cb },
{ MT_CALLBACK, "TRACE 2", menu_trace_cb },
{ MT_CALLBACK, "TRACE 3", menu_trace_cb },
{ MT_CALLBACK, "\2SINGLE\0TRACE", menu_single_trace_cb },
{ MT_CANCEL, "BACK", NULL },
{ MT_NONE, NULL, NULL } // sentinel
Expand All @@ -643,6 +644,15 @@ const menuitem_t menu_format[] = {
{ MT_NONE, NULL, NULL } // sentinel
};

const menuitem_t menu_scale[] = {
{ MT_CALLBACK, "SCALE/DIV", menu_scale_cb },
{ MT_CALLBACK, "\2REFERENCE\0POSITION", menu_scale_cb },
{ MT_CALLBACK, "\2ELECTRICAL\0DELAY", menu_scale_cb },
{ MT_CANCEL, "BACK", NULL },
{ MT_NONE, NULL, NULL } // sentinel
};


const menuitem_t menu_channel[] = {
{ MT_CALLBACK, "\2CH0\0REFLECT", menu_channel_cb },
{ MT_CALLBACK, "\2CH1\0THROUGH", menu_channel_cb },
Expand All @@ -653,7 +663,7 @@ const menuitem_t menu_channel[] = {
const menuitem_t menu_display[] = {
{ MT_SUBMENU, "TRACE", menu_trace },
{ MT_SUBMENU, "FORMAT", menu_format },
{ MT_CALLBACK, "SCALE", menu_scale_cb },
{ MT_SUBMENU, "SCALE", menu_scale },
{ MT_SUBMENU, "CHANNEL", menu_channel },
{ MT_CANCEL, "BACK", NULL },
{ MT_NONE, NULL, NULL } // sentinel
Expand Down Expand Up @@ -838,7 +848,7 @@ draw_keypad(void)
}

const char *keypad_mode_label[] = {
"START", "STOP", "CENTER", "SPAN", "SCALE"
"START", "STOP", "CENTER", "SPAN", "CW FREQ", "SCALE"
};

void
Expand Down Expand Up @@ -875,6 +885,24 @@ menu_is_multiline(const char *label, const char **l1, const char **l2)
return TRUE;
}

static void
menu_item_modify_attribute(const menuitem_t *menu, int item,
uint16_t *fg, uint16_t *bg)
{
if (menu == menu_trace && item < 4) {
*bg = config.trace_color[item];
} else if (menu == menu_calop) {
if (item == 0 && (cal_status & CALSTAT_OPEN)
|| item == 1 && (cal_status & CALSTAT_SHORT)
|| item == 2 && (cal_status & CALSTAT_LOAD)
|| item == 3 && (cal_status & CALSTAT_ISOLN)
|| item == 4 && (cal_status & CALSTAT_THRU)) {
*bg = 0x0000;
*fg = 0xffff;
}
}
}

void
draw_menu_buttons(const menuitem_t *menu)
{
Expand All @@ -887,15 +915,18 @@ draw_menu_buttons(const menuitem_t *menu)
continue;
int y = 32*i;
uint16_t bg = config.menu_normal_color;
uint16_t fg = 0x0000;
// focus only in MENU mode but not in KEYPAD mode
if (ui_mode == UI_MENU && i == selection)
bg = config.menu_active_color;
ili9341_fill(320-60, y, 60, 30, bg);

menu_item_modify_attribute(menu, i, &fg, &bg);
if (menu_is_multiline(menu[i].label, &l1, &l2)) {
ili9341_drawstring_5x7(l1, 320-54, y+8, 0x0000, bg);
ili9341_drawstring_5x7(l2, 320-54, y+15, 0x0000, bg);
ili9341_drawstring_5x7(l1, 320-54, y+8, fg, bg);
ili9341_drawstring_5x7(l2, 320-54, y+15, fg, bg);
} else {
ili9341_drawstring_5x7(menu[i].label, 320-54, y+12, 0x0000, bg);
ili9341_drawstring_5x7(menu[i].label, 320-54, y+12, fg, bg);
}
}
}
Expand Down

0 comments on commit ee4576d

Please sign in to comment.