summaryrefslogtreecommitdiff
path: root/qt/RGBController/serial_communication.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt/RGBController/serial_communication.cpp')
-rw-r--r--qt/RGBController/serial_communication.cpp47
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);
+}