Changeset - abcdecae08b4
[Not reviewed]
default
0 3 0
Hasan Yavuz Ă–ZDERYA - 10 years ago 2015-04-27 17:02:53
hy@ozderya.net
added simple demo mode for testing
3 files changed with 71 insertions and 0 deletions:
0 comments (0 inline, 0 general)
mainwindow.cpp
Show inline comments
 
@@ -179,6 +179,14 @@ MainWindow::MainWindow(QWidget *parent) 
 
    {
 
        selectNumberFormat(NumberFormat_uint8);
 
    }
 

	
 
    // Init demo mode
 
    demoCount = 0;
 
    demoTimer.setInterval(100);
 
    QObject::connect(&demoTimer, &QTimer::timeout,
 
                     this, &MainWindow::demoTimerTimeout);
 
    QObject::connect(ui->actionDemoMode, &QAction::toggled,
 
                     this, &MainWindow::enableDemo);
 
}
 

	
 
MainWindow::~MainWindow()
 
@@ -348,6 +356,9 @@ void MainWindow::selectFlowControl(int f
 
void MainWindow::onPortToggled(bool open)
 
{
 
    ui->pbOpenPort->setChecked(open);
 
    // make sure demo mode is disabled
 
    if (open && isDemoRunning()) enableDemo(false);
 
    ui->actionDemoMode->setEnabled(!open);
 
}
 

	
 
void MainWindow::onDataReady()
 
@@ -605,3 +616,42 @@ template<typename T> double MainWindow::
 
    this->serialPort.read((char*) &data, sizeof(data));
 
    return double(data);
 
}
 

	
 
bool MainWindow::isDemoRunning()
 
{
 
    return ui->actionDemoMode->isChecked();
 
}
 

	
 
void MainWindow::demoTimerTimeout()
 
{
 
    demoCount++;
 
    if (demoCount > 100) demoCount = 0;
 

	
 
    for (int ci = 0; ci < numOfChannels; ci++)
 
    {
 
        DataArray data(1);
 
        data.replace(0, (ci + 1)*demoCount);
 
        addChannelData(ci, data);
 
    }
 
}
 

	
 
void MainWindow::enableDemo(bool enabled)
 
{
 
    if (enabled)
 
    {
 
        if (!serialPort.isOpen())
 
        {
 
            demoTimer.start();
 
            ui->actionDemoMode->setChecked(true);
 
        }
 
        else
 
        {
 
            ui->actionDemoMode->setChecked(false);
 
        }
 
    }
 
    else
 
    {
 
        demoTimer.stop();
 
        ui->actionDemoMode->setChecked(false);
 
    }
 
}
mainwindow.h
Show inline comments
 
@@ -27,6 +27,7 @@
 
#include <QList>
 
#include <QSerialPort>
 
#include <QSignalMapper>
 
#include <QTimer>
 
#include <qwt_plot_curve.h>
 

	
 
#include "ui_about_dialog.h"
 
@@ -86,6 +87,11 @@ private:
 

	
 
    bool skipByteRequested;
 

	
 
    // demo
 
    QTimer demoTimer;
 
    int demoCount;
 
    bool isDemoRunning();
 

	
 
private slots:
 
    void loadPortList();
 
    void loadBaudRateList();
 
@@ -113,6 +119,9 @@ private slots:
 

	
 
    void clearPlot();
 

	
 
    void demoTimerTimeout();
 
    void enableDemo(bool enabled);
 

	
 
signals:
 
    void portToggled(bool open);
 
};
mainwindow.ui
Show inline comments
 
@@ -601,6 +601,7 @@
 
    <property name="title">
 
     <string>Help</string>
 
    </property>
 
    <addaction name="actionDemoMode"/>
 
    <addaction name="actionHelpAbout"/>
 
   </widget>
 
   <addaction name="menuHelp"/>
 
@@ -640,6 +641,17 @@
 
    <string>About</string>
 
   </property>
 
  </action>
 
  <action name="actionDemoMode">
 
   <property name="checkable">
 
    <bool>true</bool>
 
   </property>
 
   <property name="text">
 
    <string>Demo Mode</string>
 
   </property>
 
   <property name="toolTip">
 
    <string>Toggle Demo Mode</string>
 
   </property>
 
  </action>
 
 </widget>
 
 <layoutdefault spacing="6" margin="11"/>
 
 <customwidgets>
0 comments (0 inline, 0 general)