diff options
Diffstat (limited to 'qt/RGBController/old_src/serial.cpp')
-rw-r--r-- | qt/RGBController/old_src/serial.cpp | 86 |
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"); + + } +} |