diff options
Diffstat (limited to 'qt/RGBController/serial_communication.cpp')
-rw-r--r-- | qt/RGBController/serial_communication.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/qt/RGBController/serial_communication.cpp b/qt/RGBController/serial_communication.cpp new file mode 100644 index 0000000..94e75db --- /dev/null +++ b/qt/RGBController/serial_communication.cpp @@ -0,0 +1,47 @@ +#include "serial_communication.h" +#include "controllerwindow.h" +serial_communication::serial_communication() +{ + +} + +bool serial_communication::serial_connect(QString port) +{ + /* this function will attempt a serial connection if we are not already connected */ + if (!serial.isOpen()) + { + serial.setPortName(port); + serial.setBaudRate(QSerialPort::Baud9600); + serial.setDataBits(QSerialPort::Data8); + serial.setParity(QSerialPort::NoParity); + serial.setStopBits(QSerialPort::OneStop); + serial.setFlowControl(QSerialPort::NoFlowControl); + serial.open(QIODevice::ReadWrite); + serial.waitForBytesWritten(9000); + if (serial.isWritable()) { + return true; + } + } + return false; +} + +bool serial_communication::serial_disconnect() +{ + /* this function disconnects from the serial port if it is connected already */ + if (serial.isOpen()) + { + serial.close(); + return true; + } + return false; +} + +void serial_communication::rgb_change(int r, int g, int b) +{ + /* 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("0" + QString::number(r) + "," + QString::number(g) + "," + QString::number(b) + "\n"); + if (serial.isOpen()) + serial.write(data); +} |