diff options
Diffstat (limited to 'confui')
-rw-r--r-- | confui/confui.pro | 2 | ||||
-rw-r--r-- | confui/main.cpp | 7 | ||||
-rw-r--r-- | confui/serial.cpp | 36 |
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; |