From 1ed7d3095d1cf55f8540e5586f6b2933708f0041 Mon Sep 17 00:00:00 2001 From: DAsamhan <23522019@std.stei.itb.ac.id> Date: Sun, 7 Jul 2024 03:49:15 +0700 Subject: [PATCH] working parser --- debug-app/include/device-parser.h | 2 +- .../handler/device-parser/src/device-parser.cpp | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/debug-app/include/device-parser.h b/debug-app/include/device-parser.h index 8544add..c5f097d 100644 --- a/debug-app/include/device-parser.h +++ b/debug-app/include/device-parser.h @@ -4,7 +4,7 @@ #include "utilities.h" typedef struct BleSensorData { - uint8_t tempSensor; + uint8_t sensorData; } BleSensorData_t; class DeviceParser { diff --git a/debug-app/module/handler/device-parser/src/device-parser.cpp b/debug-app/module/handler/device-parser/src/device-parser.cpp index 11145e8..ab6f21f 100644 --- a/debug-app/module/handler/device-parser/src/device-parser.cpp +++ b/debug-app/module/handler/device-parser/src/device-parser.cpp @@ -3,7 +3,7 @@ #include <zephyr/zbus/zbus.h> LOG_MODULE_REGISTER(DeviceParser); -ZBUS_CHAN_DECLARE(bleScanChannel); +ZBUS_CHAN_DECLARE(bleScanChannel, driverResponseChannel); static DeviceParser *context; @@ -20,9 +20,18 @@ void DeviceParser::BleScanListener(const struct zbus_channel *chan){ msg = (BleData_t *)zbus_chan_const_msg(chan); // Direct message access BleSensorData_t parsedData; if(context->BleDeviceParser(msg, &parsedData)){ - LOG_INF("Device %s has data %d", msg->address.c_str(), parsedData.tempSensor); + LOG_INF("Device %s has data %d", msg->address.c_str(), parsedData.sensorData); + std::vector<uint8_t> dataValue; + dataValue.push_back(parsedData.sensorData); + DriverMessage_t sentMessage = { + .number = BLUETOOTH, + .type = REQUEST_SET, + .value = dataValue + }; + + zbus_chan_pub(&driverResponseChannel, &sentMessage, K_FOREVER); } - LOG_HEXDUMP_INF(msg->data.data(), msg->data.size(), "data raw"); + // LOG_HEXDUMP_INF(msg->data.data(), msg->data.size(), "data raw"); } else{ return; @@ -32,7 +41,7 @@ void DeviceParser::BleScanListener(const struct zbus_channel *chan){ bool DeviceParser::BleDeviceParser(const BleData_t *data, BleSensorData_t *parsedData){ if(data->data.size() >= 8){ if(data->data[5] == 0x1a && data->data[6] == 0x18){ - parsedData->tempSensor = data->data[7]; + parsedData->sensorData = data->data[7]; return true; } } -- GitLab