kopia lustrzana https://gitlab.com/Teuniz/DSRemote
Work in progress.
rodzic
5a5efcad1f
commit
0b09566ec2
|
@ -341,51 +341,52 @@ void SignalCurve::drawWidget(QPainter *painter, int curve_w, int curve_h)
|
|||
|
||||
/////////////////////////////////// draw the curve ///////////////////////////////////////////
|
||||
|
||||
if(bufsize < 2) return;
|
||||
|
||||
painter->setClipping(true);
|
||||
painter->setClipRegion(QRegion(0, 0, curve_w, curve_h), Qt::ReplaceClip);
|
||||
|
||||
h_step = (double)curve_w / (double)bufsize;
|
||||
|
||||
for(chn=0; chn<devparms->channel_cnt; chn++)
|
||||
if(bufsize > 32)
|
||||
{
|
||||
if(!devparms->chandisplay[chn])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
painter->setClipping(true);
|
||||
painter->setClipRegion(QRegion(0, 0, curve_w, curve_h), Qt::ReplaceClip);
|
||||
|
||||
painter->setPen(QPen(QBrush(SignalColor[chn], Qt::SolidPattern), tracewidth, Qt::SolidLine, Qt::SquareCap, Qt::BevelJoin));
|
||||
h_step = (double)curve_w / (double)bufsize;
|
||||
|
||||
for(i=0; i<bufsize; i++)
|
||||
for(chn=0; chn<devparms->channel_cnt; chn++)
|
||||
{
|
||||
if(bufsize < (curve_w / 2))
|
||||
if(!devparms->chandisplay[chn])
|
||||
{
|
||||
painter->drawLine(i * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2), (i + 1) * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2));
|
||||
if(i)
|
||||
{
|
||||
painter->drawLine(i * h_step, (devparms->wavebuf[chn][i - 1] * v_sense) + (curve_h / 2), i * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2));
|
||||
}
|
||||
continue;
|
||||
}
|
||||
else
|
||||
|
||||
painter->setPen(QPen(QBrush(SignalColor[chn], Qt::SolidPattern), tracewidth, Qt::SolidLine, Qt::SquareCap, Qt::BevelJoin));
|
||||
|
||||
for(i=0; i<bufsize; i++)
|
||||
{
|
||||
if(i < (bufsize - 1))
|
||||
if(bufsize < (curve_w / 2))
|
||||
{
|
||||
if(devparms->displaytype)
|
||||
painter->drawLine(i * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2), (i + 1) * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2));
|
||||
if(i)
|
||||
{
|
||||
painter->drawPoint(i * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2));
|
||||
painter->drawLine(i * h_step, (devparms->wavebuf[chn][i - 1] * v_sense) + (curve_h / 2), i * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2));
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
if(i < (bufsize - 1))
|
||||
{
|
||||
painter->drawLine(i * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2), (i + 1) * h_step, (devparms->wavebuf[chn][i + 1] * v_sense) + (curve_h / 2));
|
||||
if(devparms->displaytype)
|
||||
{
|
||||
painter->drawPoint(i * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2));
|
||||
}
|
||||
else
|
||||
{
|
||||
painter->drawLine(i * h_step, (devparms->wavebuf[chn][i] * v_sense) + (curve_h / 2), (i + 1) * h_step, (devparms->wavebuf[chn][i + 1] * v_sense) + (curve_h / 2));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
painter->setClipping(false);
|
||||
}
|
||||
|
||||
painter->setClipping(false);
|
||||
|
||||
/////////////////////////////////// draw the trigger arrows ///////////////////////////////////////////
|
||||
|
||||
if(trig_level_arrow_moving)
|
||||
|
|
|
@ -311,12 +311,14 @@ void UI_Mainwindow::scrn_timer_handler()
|
|||
|
||||
//struct waveform_preamble wfp;
|
||||
|
||||
for(i=0; i<MAX_CHNS; i++)
|
||||
if(devparms.triggerstatus != 1) // Don't download waveform data when triggerstatus is "wait"
|
||||
{
|
||||
if(!devparms.chandisplay[i]) // Download data only when channel is switched on
|
||||
for(i=0; i<MAX_CHNS; i++)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if(!devparms.chandisplay[i]) // Download data only when channel is switched on
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
|
@ -359,38 +361,39 @@ void UI_Mainwindow::scrn_timer_handler()
|
|||
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
sprintf(str, ":WAV:SOUR CHAN%i", i + 1);
|
||||
sprintf(str, ":WAV:SOUR CHAN%i", i + 1);
|
||||
|
||||
tmcdev_write(device, str);
|
||||
tmcdev_write(device, str);
|
||||
|
||||
tmcdev_write(device, ":WAV:FORM BYTE");
|
||||
tmcdev_write(device, ":WAV:FORM BYTE");
|
||||
|
||||
tmcdev_write(device, ":WAV:MODE NORM");
|
||||
tmcdev_write(device, ":WAV:MODE NORM");
|
||||
|
||||
tmcdev_write(device, ":WAV:DATA?");
|
||||
tmcdev_write(device, ":WAV:DATA?");
|
||||
|
||||
n = tmcdev_read(device);
|
||||
n = tmcdev_read(device);
|
||||
|
||||
if(n < 0)
|
||||
{
|
||||
printf("Can not read from device.\n");
|
||||
return;
|
||||
}
|
||||
if(n < 0)
|
||||
{
|
||||
printf("Can not read from device.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if(n > WAVFRM_MAX_BUFSZ)
|
||||
{
|
||||
strcpy(str, "Datablock too big for buffer.");
|
||||
goto OUT_ERROR;
|
||||
}
|
||||
if(n > WAVFRM_MAX_BUFSZ)
|
||||
{
|
||||
strcpy(str, "Datablock too big for buffer.");
|
||||
goto OUT_ERROR;
|
||||
}
|
||||
|
||||
if(n < 16)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if(n < 32)
|
||||
{
|
||||
n = 0;
|
||||
}
|
||||
|
||||
for(j=0; j<n; j++)
|
||||
{
|
||||
devparms.wavebuf[i][j] = (int)(((unsigned char *)device->buf)[j]) - 127;
|
||||
for(j=0; j<n; j++)
|
||||
{
|
||||
devparms.wavebuf[i][j] = (int)(((unsigned char *)device->buf)[j]) - 127;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue