kopia lustrzana https://gitlab.com/Teuniz/DSRemote
Work in progress.
rodzic
0b09566ec2
commit
f3e238d35d
11
global.h
11
global.h
|
@ -31,7 +31,7 @@
|
|||
|
||||
|
||||
#define PROGRAM_NAME "DSRemote"
|
||||
#define PROGRAM_VERSION "0.1"
|
||||
#define PROGRAM_VERSION "0.11"
|
||||
|
||||
#define MAX_PATHLEN 4096
|
||||
|
||||
|
@ -53,6 +53,15 @@
|
|||
#define NAV_DIAL_FUNC_NONE 0
|
||||
#define NAV_DIAL_FUNC_HOLDOFF 1
|
||||
|
||||
#define LABEL_TIMER_IVAL 1000
|
||||
|
||||
#define LABEL_ACTIVE_NONE 0
|
||||
#define LABEL_ACTIVE_CHAN1 1
|
||||
#define LABEL_ACTIVE_CHAN2 2
|
||||
#define LABEL_ACTIVE_CHAN3 3
|
||||
#define LABEL_ACTIVE_CHAN4 4
|
||||
#define LABEL_ACTIVE_TRIG 5
|
||||
|
||||
|
||||
|
||||
struct waveform_preamble
|
||||
|
|
|
@ -110,7 +110,8 @@ public:
|
|||
int adjDialFunc,
|
||||
navDialFunc;
|
||||
|
||||
QTimer *scrn_timer;
|
||||
QTimer *scrn_timer,
|
||||
*label_timer;
|
||||
|
||||
private:
|
||||
|
||||
|
@ -205,6 +206,7 @@ private slots:
|
|||
void scrn_timer_handler();
|
||||
void stat_timer_handler();
|
||||
void adjdial_timer_handler();
|
||||
void label_timer_handler();
|
||||
void test_timer_handler();
|
||||
|
||||
void show_about_dialog();
|
||||
|
|
|
@ -348,12 +348,14 @@ UI_Mainwindow::UI_Mainwindow()
|
|||
adjdial_timer = new QTimer(this);
|
||||
navDial_timer = new QTimer(this);
|
||||
navDial_timer->setSingleShot(true);
|
||||
label_timer = new QTimer(this);
|
||||
test_timer = new QTimer(this);
|
||||
|
||||
connect(scrn_timer, SIGNAL(timeout()), this, SLOT(scrn_timer_handler()));
|
||||
connect(adjdial_timer, SIGNAL(timeout()), this, SLOT(adjdial_timer_handler()));
|
||||
connect(navDial, SIGNAL(sliderReleased()), this, SLOT(navDialReleased()));
|
||||
connect(navDial_timer, SIGNAL(timeout()), this, SLOT(navDial_timer_handler()));
|
||||
connect(label_timer, SIGNAL(timeout()), this, SLOT(label_timer_handler()));
|
||||
connect(test_timer, SIGNAL(timeout()), this, SLOT(test_timer_handler()));
|
||||
|
||||
///// TEST /////////////////////////////////////
|
||||
|
|
|
@ -65,6 +65,8 @@ SignalCurve::SignalCurve(QWidget *w_parent) : QWidget(w_parent)
|
|||
mouse_old_x = 0;
|
||||
mouse_old_y = 0;
|
||||
|
||||
label_active = LABEL_ACTIVE_NONE;
|
||||
|
||||
for(i=0; i<MAX_CHNS; i++)
|
||||
{
|
||||
chan_arrow_moving[i] = 0;
|
||||
|
@ -136,6 +138,8 @@ void SignalCurve::drawWidget(QPainter *painter, int curve_w, int curve_h)
|
|||
{
|
||||
int i, chn, tmp, rot=1, small_rulers;
|
||||
|
||||
char str[256];
|
||||
|
||||
double h_step=0.0,
|
||||
step,
|
||||
step2;
|
||||
|
@ -467,23 +471,62 @@ void SignalCurve::drawWidget(QPainter *painter, int curve_w, int curve_h)
|
|||
paintCounterLabel(painter, curve_w - 150, 6);
|
||||
}
|
||||
|
||||
char str[128];
|
||||
|
||||
if((mainwindow->adjDialFunc == ADJ_DIAL_FUNC_HOLDOFF) || (mainwindow->navDialFunc == NAV_DIAL_FUNC_HOLDOFF))
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->triggerholdoff, 2);
|
||||
|
||||
strcat(str, "S");
|
||||
|
||||
paintLabel(painter, curve_w - 110, 5, 100, 20, str);
|
||||
paintLabel(painter, curve_w - 110, 5, 100, 20, str, Qt::white);
|
||||
}
|
||||
else if(mainwindow->adjDialFunc == ADJ_DIAL_FUNC_ACQ_AVG)
|
||||
{
|
||||
sprintf(str, "%i", devparms->acquireaverages);
|
||||
|
||||
paintLabel(painter, curve_w - 110, 5, 100, 20, str);
|
||||
paintLabel(painter, curve_w - 110, 5, 100, 20, str, Qt::white);
|
||||
}
|
||||
|
||||
if(label_active == LABEL_ACTIVE_TRIG)
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->triggeredgelevel[devparms->triggeredgesource], 2);
|
||||
|
||||
strcat(str, "V");
|
||||
|
||||
paintLabel(painter, curve_w - 120, curve_h - 50, 100, 20, str, QColor(255, 128, 0));
|
||||
}
|
||||
else if(label_active == LABEL_ACTIVE_CHAN1)
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->chanoffset[0], 2);
|
||||
|
||||
strcat(str, "V");
|
||||
|
||||
paintLabel(painter, 20, curve_h - 50, 100, 20, str, SignalColor[0]);
|
||||
}
|
||||
else if(label_active == LABEL_ACTIVE_CHAN2)
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->chanoffset[1], 2);
|
||||
|
||||
strcat(str, "V");
|
||||
|
||||
paintLabel(painter, 20, curve_h - 50, 100, 20, str, SignalColor[1]);
|
||||
}
|
||||
else if(label_active == LABEL_ACTIVE_CHAN3)
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->chanoffset[2], 2);
|
||||
|
||||
strcat(str, "V");
|
||||
|
||||
paintLabel(painter, 20, curve_h - 50, 100, 20, str, SignalColor[2]);
|
||||
}
|
||||
else if(label_active == LABEL_ACTIVE_CHAN4)
|
||||
{
|
||||
convert_to_metric_suffix(str, devparms->chanoffset[3], 2);
|
||||
|
||||
strcat(str, "V");
|
||||
|
||||
paintLabel(painter, 20, curve_h - 50, 100, 20, str, SignalColor[3]);
|
||||
}
|
||||
|
||||
// clk_end = clock();
|
||||
//
|
||||
// cpu_time_used += ((double) (clk_end - clk_start)) / CLOCKS_PER_SEC;
|
||||
|
@ -1469,6 +1512,8 @@ void SignalCurve::mouseMoveEvent(QMouseEvent *move_event)
|
|||
{
|
||||
int chn;
|
||||
|
||||
double dtmp;
|
||||
|
||||
if(!use_move_events)
|
||||
{
|
||||
return;
|
||||
|
@ -1509,6 +1554,17 @@ void SignalCurve::mouseMoveEvent(QMouseEvent *move_event)
|
|||
{
|
||||
trig_level_arrow_pos = h;
|
||||
}
|
||||
|
||||
devparms->triggeredgelevel[devparms->triggeredgesource] = (((h / 2) - trig_level_arrow_pos) * ((devparms->chanscale[devparms->triggeredgesource] * 8) / h))
|
||||
- devparms->chanoffset[devparms->triggeredgesource];
|
||||
|
||||
dtmp = devparms->triggeredgelevel[devparms->triggeredgesource] / (devparms->chanscale[devparms->triggeredgesource] / 50);
|
||||
|
||||
devparms->triggeredgelevel[devparms->triggeredgesource] = (devparms->chanscale[devparms->triggeredgesource] / 50) * dtmp;
|
||||
|
||||
label_active = LABEL_ACTIVE_TRIG;
|
||||
|
||||
mainwindow->label_timer->start(LABEL_TIMER_IVAL);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1533,6 +1589,16 @@ void SignalCurve::mouseMoveEvent(QMouseEvent *move_event)
|
|||
chan_arrow_pos[chn] = h;
|
||||
}
|
||||
|
||||
devparms->chanoffset[chn] = ((h / 2) - chan_arrow_pos[chn]) * ((devparms->chanscale[chn] * 8) / h);
|
||||
|
||||
dtmp = devparms->chanoffset[chn] / (devparms->chanscale[chn] / 50);
|
||||
|
||||
devparms->chanoffset[chn] = (devparms->chanscale[chn] / 50) * dtmp;
|
||||
|
||||
label_active = chn + 1;
|
||||
|
||||
mainwindow->label_timer->start(LABEL_TIMER_IVAL);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1576,7 +1642,7 @@ void SignalCurve::trig_stat_timer_handler()
|
|||
}
|
||||
|
||||
|
||||
void SignalCurve::paintLabel(QPainter *painter, int xpos, int ypos, int xw, int yh, const char *str)
|
||||
void SignalCurve::paintLabel(QPainter *painter, int xpos, int ypos, int xw, int yh, const char *str, QColor color)
|
||||
{
|
||||
QPainterPath path;
|
||||
|
||||
|
@ -1584,7 +1650,7 @@ void SignalCurve::paintLabel(QPainter *painter, int xpos, int ypos, int xw, int
|
|||
|
||||
painter->fillPath(path, Qt::black);
|
||||
|
||||
painter->setPen(Qt::white);
|
||||
painter->setPen(color);
|
||||
|
||||
painter->drawRoundedRect(xpos, ypos, xw, yh, 3, 3);
|
||||
|
||||
|
|
|
@ -68,6 +68,8 @@ public:
|
|||
QSize sizeHint() const {return minimumSizeHint(); }
|
||||
QSize minimumSizeHint() const {return QSize(30,10); }
|
||||
|
||||
int label_active;
|
||||
|
||||
void setSignalColor1(QColor);
|
||||
void setSignalColor2(QColor);
|
||||
void setSignalColor3(QColor);
|
||||
|
@ -141,7 +143,7 @@ private:
|
|||
void drawTrigCenterArrow(QPainter *, int, int);
|
||||
void drawChanLabel(QPainter *, int, int, int);
|
||||
void drawTopLabels(QPainter *);
|
||||
void paintLabel(QPainter *, int, int, int, int, const char *);
|
||||
void paintLabel(QPainter *, int, int, int, int, const char *, QColor);
|
||||
void paintCounterLabel(QPainter *, int, int);
|
||||
|
||||
struct device_settings *devparms;
|
||||
|
|
|
@ -36,6 +36,12 @@ void UI_Mainwindow::test_timer_handler()
|
|||
}
|
||||
|
||||
|
||||
void UI_Mainwindow::label_timer_handler()
|
||||
{
|
||||
waveForm->label_active = LABEL_ACTIVE_NONE;
|
||||
}
|
||||
|
||||
|
||||
void UI_Mainwindow::navDial_timer_handler()
|
||||
{
|
||||
if(navDial->isSliderDown() == true)
|
||||
|
|
Ładowanie…
Reference in New Issue