Files
@ c27ec79b7b2c
Branch filter:
Location: tempo-plotter/mainwindow.h - annotation
c27ec79b7b2c
3.2 KiB
text/plain
added clear text view button
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 ce43e0348d45 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 649401566a84 58db5f6bf2b1 f38042ba2eb0 8932fd91959c 58db5f6bf2b1 4d74a5d375ab abcdecae08b4 70f83253cf6c f918be7cd46f f38042ba2eb0 58db5f6bf2b1 6a311d722818 cb28b6958b0e cb28b6958b0e 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 f918be7cd46f f918be7cd46f f918be7cd46f 58db5f6bf2b1 649401566a84 649401566a84 649401566a84 649401566a84 649401566a84 649401566a84 649401566a84 508c8437347e a6f1f85f1eba 508c8437347e 649401566a84 649401566a84 58db5f6bf2b1 649401566a84 649401566a84 cb28b6958b0e cb28b6958b0e cb28b6958b0e 58db5f6bf2b1 fffccd972bd4 58db5f6bf2b1 f38042ba2eb0 8932fd91959c 8932fd91959c 8932fd91959c 8932fd91959c 8932fd91959c 8932fd91959c 8932fd91959c 8932fd91959c 8932fd91959c f38042ba2eb0 649401566a84 649401566a84 649401566a84 649401566a84 649401566a84 649401566a84 649401566a84 bcd6b30d01d1 bcd6b30d01d1 abcdecae08b4 abcdecae08b4 abcdecae08b4 abcdecae08b4 abcdecae08b4 70f83253cf6c 70f83253cf6c 58db5f6bf2b1 58db5f6bf2b1 508c8437347e 508c8437347e b12c2ff3d038 58db5f6bf2b1 bcd6b30d01d1 bcd6b30d01d1 a6e52579723b 90fb38350cfd 90fb38350cfd a6e52579723b e65811fa0522 649401566a84 649401566a84 649401566a84 44b87d87610b 44b87d87610b abcdecae08b4 abcdecae08b4 4cc4bd170d6a 4cc4bd170d6a 58db5f6bf2b1 58db5f6bf2b1 58db5f6bf2b1 | /*
Copyright © 2015 Hasan Yavuz Özderya
This file is part of serialplot.
serialplot is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
serialplot is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with serialplot. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QButtonGroup>
#include <QString>
#include <QVector>
#include <QList>
#include <QSerialPort>
#include <QSignalMapper>
#include <QTimer>
#include <QColor>
#include <QtGlobal>
#include <qwt_plot_curve.h>
#include "portcontrol.h"
#include "ui_about_dialog.h"
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void messageHandler(QtMsgType type, const QMessageLogContext &context,
const QString &msg);
private:
enum NumberFormat
{
NumberFormat_uint8,
NumberFormat_uint16,
NumberFormat_uint32,
NumberFormat_int8,
NumberFormat_int16,
NumberFormat_int32,
NumberFormat_float,
NumberFormat_ASCII
};
Ui::MainWindow *ui;
QButtonGroup numberFormatButtons;
QDialog aboutDialog;
void setupAboutDialog();
QSerialPort serialPort;
PortControl portControl;
unsigned int numOfSamples;
unsigned int numOfChannels;
QList<QwtPlotCurve*> curves;
typedef QVector<double> DataArray;
DataArray dataX; // array that simply contains numbers 0..numberOfSamples
QList<DataArray> channelsData;
// `data` contains channel specific data
void addChannelData(unsigned int channel, DataArray data);
NumberFormat numberFormat;
unsigned int sampleSize; // number of bytes in the selected number format
double (MainWindow::*readSample)();
// note that serialPort should already have enough bytes present
template<typename T> double readSampleAs();
bool skipByteRequested;
// demo
QTimer demoTimer;
int demoCount;
bool isDemoRunning();
QColor makeColor(unsigned int channelIndex);
private slots:
void onPortToggled(bool open);
void onDataReady(); // used with binary number formats
void onDataReadyASCII(); // used with ASCII number format
void onPortError(QSerialPort::SerialPortError error);
void skipByte();
void onNumOfSamplesChanged(int value);
void onAutoScaleChecked(bool checked);
void onYScaleChanged();
void onNumOfChannelsChanged(int value);
void onNumberFormatButtonToggled(int numberFormatId, bool checked);
void selectNumberFormat(NumberFormat numberFormatId);
void clearPlot();
void demoTimerTimeout();
void enableDemo(bool enabled);
void onExportCsv();
};
#endif // MAINWINDOW_H
|