aboutsummaryrefslogtreecommitdiff
path: root/confui
diff options
context:
space:
mode:
Diffstat (limited to 'confui')
-rw-r--r--confui/confui.pro2
-rw-r--r--confui/main.cpp7
-rw-r--r--confui/serial.cpp36
3 files changed, 33 insertions, 12 deletions
diff --git a/confui/confui.pro b/confui/confui.pro
index 237f22d..023b31c 100644
--- a/confui/confui.pro
+++ b/confui/confui.pro
@@ -32,3 +32,5 @@ HEADERS += \
CONFIG += c++17
CONFIG += force_debug_info
QMAKE_CXXFLAGS += -Wno-missing-field-initializers
+QMAKE_CFLAGS += -std=c11
+QMAKE_CFLAGS += -Wno-c99-designator
diff --git a/confui/main.cpp b/confui/main.cpp
index 52c54d8..a860f28 100644
--- a/confui/main.cpp
+++ b/confui/main.cpp
@@ -1,7 +1,14 @@
#include "main.h"
#include "mainwindow.h"
+extern "C" {
+static const uint16_t _test = 1;
+static const uint8_t *_ptest = (uint8_t *)&_test;
+uint8_t g_cd_endianness;
+}
+
int main(int argc, char *argv[]) {
+ g_cd_endianness = *_ptest;
g_cd_app = new QApplication(argc, argv);
CDMainWindow w;
w.show();
diff --git a/confui/serial.cpp b/confui/serial.cpp
index 93adf28..a20ae1c 100644
--- a/confui/serial.cpp
+++ b/confui/serial.cpp
@@ -1,5 +1,6 @@
#include "serial.h"
#include "../shared/serial_parse.h"
+#include "../shared/bin.h"
#include <iostream>
#include <QDebug>
@@ -22,19 +23,14 @@ CDSerialConnector::CDSerialConnector() {
CDSerialConnector::~CDSerialConnector() { delete this->_serial; }
void CDSerialConnector::action() {
- // this is called when readyRead();
int bytes = _serial->bytesAvailable();
- if (bytes > 0) {
- qDebug() << "new Data arived" << _serial->bytesAvailable();
- _msg = _serial->readAll();
- qDebug() << _msg;
- }
-
- // string std_string = _msg.toStdString();
- // size_t size = std_string.size();
- // const char* data = std_string.c_str();
- // for (size_t i = 0; i < size; i++)
- // cd_serial_parse(data[i]);
+ if (bytes > 0) _msg = _serial->readAll();
+
+ string std_string = _msg.toStdString();
+ size_t size = std_string.size();
+ const char* data = std_string.c_str();
+ for (size_t i = 0; i < size; i++)
+ cd_serial_parse(data[i]);
}
void CDSerialConnector::write(QByteArray msg) {
@@ -74,6 +70,22 @@ string CDSerialConnector::get_port() {
extern "C" {
+// receive handlers (node only)
+void cd_cmd_get_node(cd_s_bin* data) { (void) data; }
+void cd_cmd_post_led(cd_s_bin* data) { (void) data; }
+void cd_cmd_post_link(cd_s_bin* data) { (void) data; }
+void cd_cmd_post_net(cd_s_bin* data) { (void) data; }
+
+void cd_cmd_ping(cd_s_bin* data) {
+ CD_CAST_BIN(cd_s_cmd_ping, data, cast);
+
+ cd_bin_repl_ntoh16(&cast->id); // fix endianness
+
+ std::cout << "ping with id " << cast->id << " received!" << std::endl;
+
+ // TODO: send ping back
+}
+
void cd_cmd_response(cd_s_bin* data) {
(void) data;