kopia lustrzana https://gitlab.com/Teuniz/DSRemote
Work in progress.
rodzic
225fba66a3
commit
747d6907f7
|
@ -1556,15 +1556,51 @@ void UI_Mainwindow::adjustDialClicked(QPoint)
|
|||
|
||||
void UI_Mainwindow::horMenuButtonClicked()
|
||||
{
|
||||
QMenu menu;
|
||||
QMenu menu,
|
||||
submenudelayed;
|
||||
|
||||
menu.addAction("Delayed", this, SLOT(horizontal_delayed()));
|
||||
submenudelayed.setTitle("Delayed");
|
||||
submenudelayed.addAction("On", this, SLOT(horizontal_delayed_on()));
|
||||
submenudelayed.addAction("Off", this, SLOT(horizontal_delayed_off()));
|
||||
menu.addMenu(&submenudelayed);
|
||||
|
||||
menu.exec(horMenuButton->mapToGlobal(QPoint(0,0)));
|
||||
}
|
||||
|
||||
|
||||
void UI_Mainwindow::horizontal_delayed()
|
||||
void UI_Mainwindow::horizontal_delayed_on()
|
||||
{
|
||||
if(devparms.timebasedelayenable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
devparms.timebasedelayenable = 1;
|
||||
|
||||
statusLabel->setText("Delayed timebase enabled");
|
||||
|
||||
tmcdev_write(device, ":TIM:DEL:ENAB 1");
|
||||
|
||||
devparms.timebasedelayoffset = devparms.timebaseoffset;
|
||||
}
|
||||
|
||||
|
||||
void UI_Mainwindow::horizontal_delayed_off()
|
||||
{
|
||||
if(!devparms.timebasedelayenable)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
devparms.timebasedelayenable = 0;
|
||||
|
||||
statusLabel->setText("Delayed timebase disabled");
|
||||
|
||||
tmcdev_write(device, ":TIM:DEL:ENAB 0");
|
||||
}
|
||||
|
||||
|
||||
void UI_Mainwindow::horizontal_delayed_toggle()
|
||||
{
|
||||
if(devparms.timebasedelayenable)
|
||||
{
|
||||
|
@ -1581,6 +1617,8 @@ void UI_Mainwindow::horizontal_delayed()
|
|||
statusLabel->setText("Delayed timebase enabled");
|
||||
|
||||
tmcdev_write(device, ":TIM:DEL:ENAB 1");
|
||||
|
||||
devparms.timebasedelayoffset = devparms.timebaseoffset;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1596,7 +1634,7 @@ void UI_Mainwindow::horPosDialClicked(QPoint)
|
|||
|
||||
if(devparms.timebasedelayenable)
|
||||
{
|
||||
devparms.timebasedelayoffset = 0;
|
||||
devparms.timebasedelayoffset = devparms.timebaseoffset;
|
||||
|
||||
strcpy(str, "Horizontal delay position: ");
|
||||
|
||||
|
@ -1631,22 +1669,7 @@ void UI_Mainwindow::horPosDialClicked(QPoint)
|
|||
|
||||
void UI_Mainwindow::horScaleDialClicked(QPoint)
|
||||
{
|
||||
if(devparms.timebasedelayenable)
|
||||
{
|
||||
devparms.timebasedelayenable = 0;
|
||||
|
||||
statusLabel->setText("Delayed timebase disabled");
|
||||
|
||||
tmcdev_write(device, ":TIM:DEL:ENAB 0");
|
||||
}
|
||||
else
|
||||
{
|
||||
devparms.timebasedelayenable = 1;
|
||||
|
||||
statusLabel->setText("Delayed timebase enabled");
|
||||
|
||||
tmcdev_write(device, ":TIM:DEL:ENAB 1");
|
||||
}
|
||||
horizontal_delayed_toggle();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -69,6 +69,7 @@
|
|||
#include <time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "global.h"
|
||||
#include "about_dialog.h"
|
||||
|
@ -243,7 +244,9 @@ private slots:
|
|||
void helpButtonClicked();
|
||||
void measureButtonClicked();
|
||||
|
||||
void horizontal_delayed();
|
||||
void horizontal_delayed_toggle();
|
||||
void horizontal_delayed_on();
|
||||
void horizontal_delayed_off();
|
||||
|
||||
void counter_off();
|
||||
void counter_ch1();
|
||||
|
|
|
@ -203,12 +203,6 @@ void UI_Mainwindow::save_memory_waveform()
|
|||
//
|
||||
// tmcdev_write(device, ":STOP");
|
||||
//
|
||||
// tmcdev_write(device, ":WAV:POIN?");
|
||||
//
|
||||
// n = tmcdev_read(device);
|
||||
//
|
||||
// printf("n is: %i points response is: ->%s<-\n", n, device->buf);
|
||||
//
|
||||
// for(i=0; i<MAX_CHNS; i++)
|
||||
// {
|
||||
// if(!devparms.chandisplay[i]) // Download data only when channel is switched on
|
||||
|
@ -222,18 +216,54 @@ void UI_Mainwindow::save_memory_waveform()
|
|||
//
|
||||
// tmcdev_write(device, ":WAV:FORM BYTE");
|
||||
//
|
||||
// sleep(1);
|
||||
//
|
||||
// tmcdev_write(device, ":WAV:MODE RAW");
|
||||
//
|
||||
// tmcdev_write(device, ":WAV:POIN?");
|
||||
// tmcdev_write(device, ":WAV:POIN?");
|
||||
//
|
||||
// n = tmcdev_read(device);
|
||||
// n = tmcdev_read(device);
|
||||
//
|
||||
// printf("n is: %i points response is: ->%s<-\n", n, device->buf);
|
||||
// printf("n is: %i points response is: ->%s<-\n", n, device->buf);
|
||||
//
|
||||
// tmcdev_write(device, ":WAV:STAR?");
|
||||
//
|
||||
// n = tmcdev_read(device);
|
||||
//
|
||||
// printf("n is: %i start position response is: ->%s<-\n", n, device->buf);
|
||||
//
|
||||
// tmcdev_write(device, ":WAV:STOP?");
|
||||
//
|
||||
// n = tmcdev_read(device);
|
||||
//
|
||||
// printf("n is: %i stop position response is: ->%s<-\n", n, device->buf);
|
||||
//
|
||||
// tmcdev_write(device, ":WAV:FORM?");
|
||||
//
|
||||
// n = tmcdev_read(device);
|
||||
//
|
||||
// printf("n is: %i wav format response is: ->%s<-\n", n, device->buf);
|
||||
//
|
||||
// tmcdev_write(device, ":WAV:MODE?");
|
||||
//
|
||||
// n = tmcdev_read(device);
|
||||
//
|
||||
// printf("n is: %i wav mode response is: ->%s<-\n", n, device->buf);
|
||||
//
|
||||
// sleep(1);
|
||||
//
|
||||
// tmcdev_write(device, ":WAV RES");
|
||||
//
|
||||
// sleep(1);
|
||||
//
|
||||
// tmcdev_write(device, ":WAV BEG");
|
||||
//
|
||||
// sleep(1);
|
||||
//
|
||||
// tmcdev_write(device, ":SING");
|
||||
//
|
||||
// sleep(1);
|
||||
//
|
||||
// bytes_rcvd = 0;
|
||||
//
|
||||
// ready = 0;
|
||||
|
@ -384,7 +414,14 @@ void UI_Mainwindow::save_screen_waveform()
|
|||
wavbuf[2] = NULL;
|
||||
wavbuf[3] = NULL;
|
||||
|
||||
rec_len = devparms.timebasescale * 14;
|
||||
if(devparms.timebasedelayenable)
|
||||
{
|
||||
rec_len = devparms.timebasedelayscale * 14;
|
||||
}
|
||||
else
|
||||
{
|
||||
rec_len = devparms.timebasescale * 14;
|
||||
}
|
||||
|
||||
if(rec_len < 1e-6)
|
||||
{
|
||||
|
|
|
@ -418,7 +418,14 @@ void SignalCurve::drawWidget(QPainter *painter, int curve_w, int curve_h)
|
|||
}
|
||||
else
|
||||
{
|
||||
trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebaseoffset / (devparms->timebasescale * 14.0)) * curve_w);
|
||||
if(devparms->timebasedelayenable)
|
||||
{
|
||||
trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebasedelayoffset / (devparms->timebasedelayscale * 14.0)) * curve_w);
|
||||
}
|
||||
else
|
||||
{
|
||||
trig_pos_arrow_pos = (curve_w / 2) - ((devparms->timebaseoffset / (devparms->timebasescale * 14.0)) * curve_w);
|
||||
}
|
||||
|
||||
if(trig_pos_arrow_pos < 0)
|
||||
{
|
||||
|
@ -515,10 +522,12 @@ void SignalCurve::setDeviceParameters(struct device_settings *devp)
|
|||
|
||||
void SignalCurve::drawTopLabels(QPainter *painter)
|
||||
{
|
||||
int i;
|
||||
int i, x1;
|
||||
|
||||
char str[128];
|
||||
|
||||
double dtmp1, dtmp2;
|
||||
|
||||
QPainterPath path;
|
||||
|
||||
if(devparms == NULL)
|
||||
|
@ -601,7 +610,14 @@ void SignalCurve::drawTopLabels(QPainter *painter)
|
|||
|
||||
painter->drawText(125, 20, "H");
|
||||
|
||||
convert_to_metric_suffix(str, devparms->timebasescale, 1);
|
||||
if(devparms->timebasedelayenable)
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->timebasedelayscale, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->timebasescale, 1);
|
||||
}
|
||||
|
||||
strcat(str, "s");
|
||||
|
||||
|
@ -633,6 +649,19 @@ void SignalCurve::drawTopLabels(QPainter *painter)
|
|||
|
||||
painter->setPen(Qt::gray);
|
||||
|
||||
if(devparms->timebasedelayenable)
|
||||
{
|
||||
dtmp1 = devparms->timebasedelayscale / devparms->timebasescale;
|
||||
|
||||
dtmp2 = (devparms->timebaseoffset - devparms->timebasedelayoffset) / (7 * devparms->timebasescale);
|
||||
|
||||
painter->fillRect(288, 16, (116 - (dtmp1 * 116)) - (dtmp2 * 116), 8, QColor(64, 160, 255));
|
||||
|
||||
x1 = (116 - (dtmp1 * 116)) + (dtmp2 * 116);
|
||||
|
||||
painter->fillRect(288 + 233 - x1, 16, x1, 8, QColor(64, 160, 255));
|
||||
}
|
||||
|
||||
painter->drawRect(288, 16, 233, 8);
|
||||
|
||||
painter->setPen(Qt::white);
|
||||
|
@ -664,7 +693,14 @@ void SignalCurve::drawTopLabels(QPainter *painter)
|
|||
|
||||
painter->drawText(555, 20, "D");
|
||||
|
||||
convert_to_metric_suffix(str, devparms->timebaseoffset, 4);
|
||||
if(devparms->timebasedelayenable)
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->timebasedelayoffset, 4);
|
||||
}
|
||||
else
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->timebaseoffset, 4);
|
||||
}
|
||||
|
||||
strcat(str, "s");
|
||||
|
||||
|
@ -1231,23 +1267,46 @@ void SignalCurve::mouseReleaseEvent(QMouseEvent *release_event)
|
|||
|
||||
// printf("w is %i trig_pos_arrow_pos is %i\n", w, trig_pos_arrow_pos);
|
||||
|
||||
devparms->timebaseoffset = ((devparms->timebasescale * 14.0) / w) * ((w / 2) - trig_pos_arrow_pos);
|
||||
if(devparms->timebasedelayenable)
|
||||
{
|
||||
devparms->timebasedelayoffset = ((devparms->timebasedelayscale * 14.0) / w) * ((w / 2) - trig_pos_arrow_pos);
|
||||
|
||||
tmp = devparms->timebaseoffset / (devparms->timebasescale / 50);
|
||||
tmp = devparms->timebasedelayoffset / (devparms->timebasedelayscale / 50);
|
||||
|
||||
devparms->timebaseoffset = (devparms->timebasescale / 50) * tmp;
|
||||
devparms->timebasedelayoffset = (devparms->timebasedelayscale / 50) * tmp;
|
||||
|
||||
strcpy(str, "Horizontal position: ");
|
||||
strcpy(str, "Horizontal delay position: ");
|
||||
|
||||
convert_to_metric_suffix(str + strlen(str), devparms->timebaseoffset, 2);
|
||||
convert_to_metric_suffix(str + strlen(str), devparms->timebasedelayoffset, 2);
|
||||
|
||||
strcat(str, "s");
|
||||
strcat(str, "s");
|
||||
|
||||
mainwindow->statusLabel->setText(str);
|
||||
mainwindow->statusLabel->setText(str);
|
||||
|
||||
sprintf(str, ":TIM:OFFS %e", devparms->timebaseoffset);
|
||||
sprintf(str, ":TIM:DEL:OFFS %e", devparms->timebasedelayoffset);
|
||||
|
||||
tmcdev_write(device, str);
|
||||
tmcdev_write(device, str);
|
||||
}
|
||||
else
|
||||
{
|
||||
devparms->timebaseoffset = ((devparms->timebasescale * 14.0) / w) * ((w / 2) - trig_pos_arrow_pos);
|
||||
|
||||
tmp = devparms->timebaseoffset / (devparms->timebasescale / 50);
|
||||
|
||||
devparms->timebaseoffset = (devparms->timebasescale / 50) * tmp;
|
||||
|
||||
strcpy(str, "Horizontal position: ");
|
||||
|
||||
convert_to_metric_suffix(str + strlen(str), devparms->timebaseoffset, 2);
|
||||
|
||||
strcat(str, "s");
|
||||
|
||||
mainwindow->statusLabel->setText(str);
|
||||
|
||||
sprintf(str, ":TIM:OFFS %e", devparms->timebaseoffset);
|
||||
|
||||
tmcdev_write(device, str);
|
||||
}
|
||||
}
|
||||
else if(trig_level_arrow_moving)
|
||||
{
|
||||
|
|
Ładowanie…
Reference in New Issue