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