Work in progress.

merge-requests/1/head
Teuniz 2015-06-05 12:49:30 +02:00
rodzic 225fba66a3
commit 747d6907f7
4 zmienionych plików z 166 dodań i 44 usunięć

Wyświetl plik

@ -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();
}

Wyświetl plik

@ -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();

Wyświetl plik

@ -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)
{

Wyświetl plik

@ -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)
{