feat: add lever operation of electrical delay

pull/1/head
TT 6 years ago
parent 7f5948c4b8
commit 18c5ca9157

@ -1667,6 +1667,7 @@ void set_electrical_delay(float picoseconds)
electrical_delay = picoseconds;
force_set_markmap();
}
redraw_request |= REDRAW_MARKER;
}
float get_electrical_delay(void)

@ -410,7 +410,7 @@ void clear_all_config_prop_data(void);
// lever_mode
enum lever_mode {
LM_MARKER, LM_SEARCH, LM_CENTER, LM_SPAN
LM_MARKER, LM_SEARCH, LM_CENTER, LM_SPAN, LM_EDELAY
};
// marker smith value format

@ -1599,6 +1599,10 @@ cell_draw_marker_info(int m, int n, int w, int h)
xpos -= m * CELLWIDTH -CELLOFFSETX;
ypos -= n * CELLHEIGHT;
if (uistat.lever_mode == LM_EDELAY)
cell_drawstring(w, h, S_SARROW, xpos, ypos);
xpos += 5;
float light_speed_ps = 299792458e-12; //(m/ps)
chsnprintf(buf, sizeof buf, "Edelay %Fs %Fm", electrical_delay * 1e-12,
electrical_delay * light_speed_ps * velocity_factor);

23
ui.c

@ -1756,6 +1756,23 @@ lever_move(int status, int mode)
}
}
#define STEPRATIO 0.2
static void
lever_edelay(int status)
{
float value = get_electrical_delay();
float ratio = STEPRATIO;
if (value < 0)
ratio = -ratio;
if (status & EVT_UP) {
value = (1 - ratio) * value;
} else if (status & EVT_DOWN) {
value = (1 + ratio) * value;
}
set_electrical_delay(value);
}
static void
ui_process_normal(void)
{
@ -1776,6 +1793,9 @@ ui_process_normal(void)
else
lever_zoom_span(status);
break;
case LM_EDELAY:
lever_edelay(status);
break;
}
}
}
@ -2156,6 +2176,9 @@ touch_lever_mode_select(void)
}
if (touch_y < 15) {
if (touch_x < 160 && get_electrical_delay() != 0.0) {
select_lever_mode(LM_EDELAY);
} else
select_lever_mode(LM_MARKER);
return TRUE;
}

Loading…
Cancel
Save

Powered by TurnKey Linux.