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_MARKER (1<<3)
#define REDRAW_BATTERY (1<<4) #define REDRAW_BATTERY (1<<4)
#define REDRAW_AREA (1<<5) #define REDRAW_AREA (1<<5)
#define REDRAW_TRIGGER (1<<6)
extern volatile uint8_t redraw_request; 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_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_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_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_TRACE_4_COLOR RGB565(255, 0,255)
#define DEFAULT_NORMAL_BAT_COLOR RGB565( 31,227, 0) #define DEFAULT_NORMAL_BAT_COLOR RGB565( 31,227, 0)
#define DEFAULT_LOW_BAT_COLOR RGB565(255, 0, 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); 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 // in most cases _compute_outcode clip calculation not give render line speedup
// //
@ -1469,6 +1480,15 @@ draw_cell(int m, int n)
#endif #endif
// PULSE; // PULSE;
#endif #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 // Draw traces (50-600 system ticks for all screen calls, depend from lines
// count and size) // count and size)
#if 1 #if 1
@ -1603,7 +1623,9 @@ draw_all(bool flush)
force_set_markmap(); force_set_markmap();
if (redraw_request & REDRAW_MARKER) if (redraw_request & REDRAW_MARKER)
markmap_upperarea(); 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); draw_all_cells(flush);
#ifdef __SCROLL__ #ifdef __SCROLL__
// START_PROFILE // START_PROFILE

@ -744,30 +744,17 @@ void set_offset(float offset)
dirty = true; 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) void set_trigger_level(float trigger_level)
{ {
setting.trigger_level = trigger_level; setting.trigger_level = trigger_level;
if (setting.trigger != T_AUTO) { redraw_request |= REDRAW_TRIGGER;
show_stored_trace_at(setting.trigger_level);
}
dirty = true; dirty = true;
} }
void set_trigger(int trigger) void set_trigger(int trigger)
{ {
setting.trigger = trigger; setting.trigger = trigger;
if (trigger == T_AUTO) { redraw_request |= REDRAW_TRIGGER;
trace[TRACE_STORED].enabled = false;
} else {
show_stored_trace_at(setting.trigger_level);
}
sweep_mode = SWEEP_ENABLE; sweep_mode = SWEEP_ENABLE;
dirty = true; dirty = true;
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.