summaryrefslogtreecommitdiff
path: root/qt/RGBController/old_src/serial.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt/RGBController/old_src/serial.cpp')
-rw-r--r--qt/RGBController/old_src/serial.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/qt/RGBController/old_src/serial.cpp b/qt/RGBController/old_src/serial.cpp
new file mode 100644
index 0000000..f3f4f1e
--- /dev/null
+++ b/qt/RGBController/old_src/serial.cpp
@@ -0,0 +1,86 @@
+#include "serial.h"
+#include "controllerwindow.h"
+serial::serial(QObject *parent) : QObject(parent)
+{
+ ser = new QSerialPort(this);
+ connect(ser, &QSerialPort::readyRead, this, &serial::read);
+
+}
+
+bool serial::serial_connect(QString port)
+{
+ /* this function will attempt a ser.connection if we are not already connected */
+ if (!ser->isOpen())
+ {
+ ser->setPortName(port);
+ ser->setBaudRate(QSerialPort::Baud9600);
+ ser->setDataBits(QSerialPort::Data8);
+ ser->setParity(QSerialPort::NoParity);
+ ser->setStopBits(QSerialPort::OneStop);
+ ser->setFlowControl(QSerialPort::NoFlowControl);
+ ser->open(QIODevice::ReadWrite);
+ ser->waitForBytesWritten(9000);
+ if (ser->isWritable()) {
+ return true;
+ }
+ }
+ return false;
+}
+
+bool serial::serial_disconnect()
+{
+ /* this function disconnects from the serial port if it is connected already */
+ if (ser->isOpen())
+ {
+ ser->close();
+ return true;
+ }
+ return false;
+}
+
+void serial::send(QString com)
+{
+ data = "";
+ //qDebug() << com;
+ data.append(com + "\n");
+ if (ser->isOpen())
+ ser->write(data);
+}
+
+void serial::rgb_change(int r, int g, int b)
+{
+ // NOT USED FUNCTION
+
+ /* here we send our rgb values to the serial port */
+ data = "";
+ /* the 0 is a hack, i need to look into it at some point */
+ data.append("red=" + QString::number(r) + "," + QString::number(g) + "," + QString::number(b) + "\n");
+ if (ser->isOpen())
+ ser->write(data);
+}
+
+void serial::read()
+{
+ if (serdata[serdata.size() - 1] != '\n')
+ serdata = serdata + ser->readAll();
+ if (serdata[serdata.size() - 1] == '\n')
+ {
+ qDebug() << "got data" << serdata;
+ parse(QString(serdata));
+ serdata = "";
+ }
+}
+
+void serial::parse(QString message)
+{
+ if (message.contains("="))
+ {
+ QString command = message.split("=")[0];
+ QString text = message.split("=")[1];
+ qDebug() << "command:" << command << "message:" << text;
+
+// win->info_log(text);
+ //((controllerWindow*)(parent()))->info_log("tesT");
+
+ }
+}