Not use for trigger level stored trace

pull/4/head
DiSlord 6 years ago
parent e731ae0a0e
commit 08f4235008

@ -489,6 +489,7 @@ int marker_search_right_min(int from);
#define REDRAW_MARKER (1<<3)
#define REDRAW_BATTERY (1<<4)
#define REDRAW_AREA (1<<5)
#define REDRAW_TRIGGER (1<<6)
extern volatile uint8_t redraw_request;
/*
@ -519,6 +520,7 @@ extern volatile uint8_t redraw_request;
#define DEFAULT_TRACE_1_COLOR RGB565(255, 0, 0) /* RGB565(255,255, 0) */
#define DEFAULT_TRACE_2_COLOR RGB565( 0,255, 0)/* RGB565( 0,255,255) */
#define DEFAULT_TRACE_3_COLOR RGB565(255,255, 0)/* RGB565( 0,255, 0) */
#define DEFAULT_TRIGGER_COLOR RGB565( 0,190, 0)/* RGB565( 0,190, 0) */
//#define DEFAULT_TRACE_4_COLOR RGB565(255, 0,255)
#define DEFAULT_NORMAL_BAT_COLOR RGB565( 31,227, 0)
#define DEFAULT_LOW_BAT_COLOR RGB565(255, 0, 0)

@ -1024,6 +1024,17 @@ markmap_upperarea(void)
invalidate_rect(0, 0, AREA_WIDTH_NORMAL, 31);
}
static uint16_t get_trigger_level(void){
index_t idx = trace_into_index(TRACE_ACTUAL, 0, &setting.trigger_level);
return CELL_Y(idx);
}
static inline void
markmap_trigger_area(void){
uint16_t tp = get_trigger_level();
markmap[current_mappage][tp/CELLWIDTH] = 0xFFFF;
}
//
// in most cases _compute_outcode clip calculation not give render line speedup
//
@ -1469,6 +1480,15 @@ draw_cell(int m, int n)
#endif
// PULSE;
#endif
// Draw trigger line
if (setting.trigger != T_AUTO) {
int tp = get_trigger_level() - y0;
if (tp>=0 && tp < h)
for (x = 0; x < w; x++)
if (x + x0 >= CELLOFFSETX && x + x0 <= WIDTH + CELLOFFSETX)
cell_buffer[tp * CELLWIDTH + x] = DEFAULT_TRIGGER_COLOR;
}
// Draw traces (50-600 system ticks for all screen calls, depend from lines
// count and size)
#if 1
@ -1603,7 +1623,9 @@ draw_all(bool flush)
force_set_markmap();
if (redraw_request & REDRAW_MARKER)
markmap_upperarea();
if (redraw_request & (REDRAW_CELLS | REDRAW_MARKER | REDRAW_AREA)){
if (redraw_request & REDRAW_TRIGGER)
markmap_trigger_area();
if (redraw_request & (REDRAW_CELLS | REDRAW_MARKER | REDRAW_AREA | REDRAW_TRIGGER)){
draw_all_cells(flush);
#ifdef __SCROLL__
// START_PROFILE

@ -744,30 +744,17 @@ void set_offset(float offset)
dirty = true;
}
void show_stored_trace_at(float v)
{
for (int j = 0; j < setting._sweep_points; j++)
stored_t[j] = v;
trace[TRACE_STORED].enabled = true;
}
void set_trigger_level(float trigger_level)
{
setting.trigger_level = trigger_level;
if (setting.trigger != T_AUTO) {
show_stored_trace_at(setting.trigger_level);
}
redraw_request |= REDRAW_TRIGGER;
dirty = true;
}
void set_trigger(int trigger)
{
setting.trigger = trigger;
if (trigger == T_AUTO) {
trace[TRACE_STORED].enabled = false;
} else {
show_stored_trace_at(setting.trigger_level);
}
redraw_request |= REDRAW_TRIGGER;
sweep_mode = SWEEP_ENABLE;
dirty = true;
}

Loading…
Cancel
Save

Powered by TurnKey Linux.