From 7c3b0c73922ec83b5b95abb2e628d3f0b53d91cb Mon Sep 17 00:00:00 2001 From: Teuniz Date: Wed, 28 Dec 2016 19:55:00 +0100 Subject: [PATCH] Work in progress. --- global.h | 4 +++- wave_dialog.cpp | 48 ++++++++++++++++++++++++------------------------ wave_view.cpp | 21 ++++++++------------- 3 files changed, 35 insertions(+), 38 deletions(-) diff --git a/global.h b/global.h index 1c748a1..a4f3393 100644 --- a/global.h +++ b/global.h @@ -35,7 +35,7 @@ #define PROGRAM_NAME "DSRemote" -#define PROGRAM_VERSION "0.33_1612281910" +#define PROGRAM_VERSION "0.33_1612281954" #define MAX_PATHLEN 4096 @@ -277,6 +277,8 @@ struct device_settings // below here is use for the wave inspector int wave_mem_view_sample_start; int wave_mem_view_enabled; + + double viewer_center_position; }; diff --git a/wave_dialog.cpp b/wave_dialog.cpp index 52af679..ee8d922 100644 --- a/wave_dialog.cpp +++ b/wave_dialog.cpp @@ -65,7 +65,7 @@ UI_wave_window::UI_wave_window(struct device_settings *p_devparms, short *wbuf[M devparms->timebasedelayenable = 0; - devparms->timebaseoffset = 0; + devparms->viewer_center_position = 0; devparms->math_decode_uart_tx_nval = 0; devparms->math_decode_uart_rx_nval = 0; @@ -159,7 +159,7 @@ void UI_wave_window::wavslider_value_changed(int val) int samples_per_div = devparms->samplerate * devparms->timebasescale; - devparms->timebaseoffset = (double)(((devparms->wavebufsz - (devparms->hordivisions * samples_per_div)) / 2) - devparms->wave_mem_view_sample_start) / + devparms->viewer_center_position = (double)(((devparms->wavebufsz - (devparms->hordivisions * samples_per_div)) / 2) - devparms->wave_mem_view_sample_start) / devparms->samplerate * -1.0; wavcurve->update(); @@ -173,7 +173,7 @@ void UI_wave_window::set_wavslider(void) wavslider->setRange(0, devparms->wavebufsz - (devparms->hordivisions * samples_per_div)); devparms->wave_mem_view_sample_start = ((devparms->wavebufsz - (devparms->hordivisions * samples_per_div)) / 2) + - devparms->samplerate * devparms->timebaseoffset; + devparms->samplerate * devparms->viewer_center_position; wavslider->setValue(devparms->wave_mem_view_sample_start); } @@ -181,12 +181,12 @@ void UI_wave_window::set_wavslider(void) void UI_wave_window::former_page() { - devparms->timebaseoffset -= devparms->timebasescale * devparms->hordivisions; + devparms->viewer_center_position -= devparms->timebasescale * devparms->hordivisions; - if(devparms->timebaseoffset <= ((((double)devparms->acquirememdepth / devparms->samplerate) - + if(devparms->viewer_center_position <= ((((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / -2)) { - devparms->timebaseoffset = (((double)devparms->acquirememdepth / devparms->samplerate) - + devparms->viewer_center_position = (((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / -2; } @@ -198,12 +198,12 @@ void UI_wave_window::former_page() void UI_wave_window::next_page() { - devparms->timebaseoffset += devparms->timebasescale * devparms->hordivisions; + devparms->viewer_center_position += devparms->timebasescale * devparms->hordivisions; - if(devparms->timebaseoffset >= ((((double)devparms->acquirememdepth / devparms->samplerate) - + if(devparms->viewer_center_position >= ((((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / 2)) { - devparms->timebaseoffset = (((double)devparms->acquirememdepth / devparms->samplerate) - + devparms->viewer_center_position = (((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / 2; } @@ -215,12 +215,12 @@ void UI_wave_window::next_page() void UI_wave_window::shift_page_left() { - devparms->timebaseoffset -= devparms->timebasescale; + devparms->viewer_center_position -= devparms->timebasescale; - if(devparms->timebaseoffset <= ((((double)devparms->acquirememdepth / devparms->samplerate) - + if(devparms->viewer_center_position <= ((((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / -2)) { - devparms->timebaseoffset = (((double)devparms->acquirememdepth / devparms->samplerate) - + devparms->viewer_center_position = (((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / -2; } @@ -232,12 +232,12 @@ void UI_wave_window::shift_page_left() void UI_wave_window::shift_page_right() { - devparms->timebaseoffset += devparms->timebasescale; + devparms->viewer_center_position += devparms->timebasescale; - if(devparms->timebaseoffset >= ((((double)devparms->acquirememdepth / devparms->samplerate) - + if(devparms->viewer_center_position >= ((((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / 2)) { - devparms->timebaseoffset = (((double)devparms->acquirememdepth / devparms->samplerate) - + devparms->viewer_center_position = (((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / 2; } @@ -249,7 +249,7 @@ void UI_wave_window::shift_page_right() void UI_wave_window::center_trigger() { - devparms->timebaseoffset = 0; + devparms->viewer_center_position = 0; set_wavslider(); @@ -266,17 +266,17 @@ void UI_wave_window::zoom_in() devparms->timebasescale = 1e-9; } - if(devparms->timebaseoffset <= ((((double)devparms->acquirememdepth / devparms->samplerate) - + if(devparms->viewer_center_position <= ((((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / -2)) { - devparms->timebaseoffset = (((double)devparms->acquirememdepth / devparms->samplerate) - + devparms->viewer_center_position = (((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / -2; } - if(devparms->timebaseoffset >= ((((double)devparms->acquirememdepth / devparms->samplerate) - + if(devparms->viewer_center_position >= ((((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / 2)) { - devparms->timebaseoffset = (((double)devparms->acquirememdepth / devparms->samplerate) - + devparms->viewer_center_position = (((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / 2; } @@ -297,17 +297,17 @@ void UI_wave_window::zoom_out() devparms->timebasescale = round_up_step125(devparms->timebasescale, NULL); - if(devparms->timebaseoffset <= ((((double)devparms->acquirememdepth / devparms->samplerate) - + if(devparms->viewer_center_position <= ((((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / -2)) { - devparms->timebaseoffset = (((double)devparms->acquirememdepth / devparms->samplerate) - + devparms->viewer_center_position = (((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / -2; } - if(devparms->timebaseoffset >= ((((double)devparms->acquirememdepth / devparms->samplerate) - + if(devparms->viewer_center_position >= ((((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / 2)) { - devparms->timebaseoffset = (((double)devparms->acquirememdepth / devparms->samplerate) - + devparms->viewer_center_position = (((double)devparms->acquirememdepth / devparms->samplerate) - (devparms->timebasescale * devparms->hordivisions)) / 2; } diff --git a/wave_view.cpp b/wave_view.cpp index bbcffa2..14bcebe 100644 --- a/wave_view.cpp +++ b/wave_view.cpp @@ -77,8 +77,8 @@ void WaveCurve::paintEvent(QPaintEvent *) samples_per_div, sample_range, sample_start, - sample_end; - + sample_end, + t_pos; double h_step=0.0, step, @@ -117,7 +117,9 @@ void WaveCurve::paintEvent(QPaintEvent *) drawTopLabels(painter); - drawSmallTriggerArrow(painter, 408, 16, 1, QColor(255, 128, 0)); + t_pos = 408 - ((devparms->timebaseoffset / ((double)devparms->acquirememdepth / devparms->samplerate)) * 233); + + drawSmallTriggerArrow(painter, t_pos, 16, 1, QColor(255, 128, 0)); painter->fillRect(0, curve_h - 30, curve_w, curve_h, QColor(32, 32, 32)); @@ -379,14 +381,7 @@ void WaveCurve::paintEvent(QPaintEvent *) } } - if(devparms->timebasedelayenable) - { - trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebasedelayoffset / (devparms->timebasedelayscale * (double)devparms->hordivisions)) * curve_w); - } - else - { - trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebaseoffset / (devparms->timebasescale * (double)devparms->hordivisions)) * curve_w); - } + trig_pos_arrow_pos = (curve_w / 2) - (((devparms->timebaseoffset + devparms->viewer_center_position) / (devparms->timebasescale * (double)devparms->hordivisions)) * curve_w); if(trig_pos_arrow_pos < 0) { @@ -520,7 +515,7 @@ void WaveCurve::drawTopLabels(QPainter *painter) dtmp1 = (devparms->hordivisions * devparms->timebasescale) / (devparms->acquirememdepth / devparms->samplerate); - dtmp2 = devparms->timebaseoffset / (devparms->acquirememdepth / devparms->samplerate); + dtmp2 = devparms->viewer_center_position / (devparms->acquirememdepth / devparms->samplerate); painter->fillRect(288, 16, 233, 8, QColor(64, 160, 255)); @@ -557,7 +552,7 @@ void WaveCurve::drawTopLabels(QPainter *painter) painter->drawText(555, 20, "D"); - convert_to_metric_suffix(str, devparms->timebaseoffset, 4); + convert_to_metric_suffix(str, devparms->timebaseoffset + devparms->viewer_center_position, 4); strcat(str, "s");