-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtemperature_data_display.cpp
More file actions
103 lines (95 loc) · 3.85 KB
/
temperature_data_display.cpp
File metadata and controls
103 lines (95 loc) · 3.85 KB
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
#include "temperature_data_display.h"
#include "ui_temperature_data_display.h"
Temperature_Data_Display::Temperature_Data_Display(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Temperature_Data_Display), port_Settings(new SettingsDialog), port(new QSerialPort), chart(new QChart)
{
ui->setupUi(this);
connect(ui->actionConnect, SIGNAL(triggered()), this, SLOT(openSerialPort()));
connect(ui->actionDisconnect, SIGNAL(triggered()), this, SLOT(closeSerialPort()));
connect(ui->actionPort_Settings, &QAction::triggered, port_Settings, &SettingsDialog::show);
connect(port, &QSerialPort::readyRead, this, &Temperature_Data_Display::grabData);
startTime.setMSecsSinceEpoch(QDateTime::currentMSecsSinceEpoch());
series = new QLineSeries();
series->append(QDateTime::currentMSecsSinceEpoch(), 0);
series->setName("Temperature");
x_Axis = new QDateTimeAxis();
x_Axis->setFormat("h:mm:ss");
x_Axis->setLabelsAngle(70);
x_Axis->setTitleText("TimeStamp");
x_Axis->setRange(startTime, QDateTime::currentDateTime().addSecs(1000));
x_Axis->setTickCount(10);
y_Axis = new QValueAxis;
y_Axis->setTitleText("Temp in C");
y_Axis->setRange(0, 100);
chart->setTitle("Temperature Vs Time");
//chart->addAxis(x_Axis,Qt::AlignBottom);
//chart->addAxis(y_Axis,Qt::AlignLeft);
//chart->addSeries(series);
//series->attachAxis(x_Axis);
//series->attachAxis(y_Axis);
chart->addSeries(series);
//chartView = new QChartView(chart);
//chartView->setParent(ui->graphFrame);
ui->graphView->setChart(chart);
ui->graphView->chart()->setAxisX(x_Axis, series);
ui->graphView->chart()->setAxisY(y_Axis, series);
}
Temperature_Data_Display::~Temperature_Data_Display()
{
delete ui;
}
void Temperature_Data_Display::grabData()
{
char data[2];
uint16_t numberValue;
if(port->bytesAvailable() == 2 )
{
port->read(data, 2);
numberValue = (data[0] << 8) | data[1]; //Don't care
//Here we push it to our graph
qDebug() << "The value we got is " << numberValue/128;
series->append(QDateTime::currentMSecsSinceEpoch(), numberValue/128);
//chart->removeSeries(series);
//chart->addSeries(series);
//ui->graphView->chart()->setAxisX(x_Axis, series);
//ui->graphView->chart()->setAxisY(y_Axis, series);
x_Axis->setRange(startTime, QDateTime::currentDateTime().addSecs(1000));
//chartView->repaint();
}
else
port->readAll(); //Clear all data
}
void Temperature_Data_Display::openSerialPort()
{
//commThread->connectPort();
const SettingsDialog::Settings p = port_Settings->settings();
port->setPortName(p.name);
port->setBaudRate(p.baudRate);
port->setDataBits(p.dataBits);
port->setParity(p.parity);
port->setStopBits(p.stopBits);
port->setFlowControl(p.flowControl);
if (port->open(QIODevice::ReadWrite)) {
QMessageBox box;
box.setText(tr("Connected to %1 : %2, %3, %4, %5, %6")
.arg(p.name).arg(p.stringBaudRate).arg(p.stringDataBits)
.arg(p.stringParity).arg(p.stringStopBits).arg(p.stringFlowControl));
box.exec();
ui->status->setText((tr("Connected to %1 : %2, %3, %4, %5, %6")
.arg(p.name).arg(p.stringBaudRate).arg(p.stringDataBits)
.arg(p.stringParity).arg(p.stringStopBits).arg(p.stringFlowControl)));
port->clear();
} else {
QMessageBox::critical(this, tr("Error"), port->errorString());
}
}
void Temperature_Data_Display::closeSerialPort()
{
//commThread->disconnectPort();
if (port->isOpen())
port->close();
QMessageBox box;
box.setText(tr("Disconnected"));
box.exec();
}