Work in progress.

merge-requests/1/head
Teuniz 2015-06-09 13:21:00 +02:00
rodzic 5a5efcad1f
commit 0b09566ec2
2 zmienionych plików z 59 dodań i 55 usunięć

Wyświetl plik

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

Wyświetl plik

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