From 96418e28e62e23b36ee92a0b296c5eaa52b7debb Mon Sep 17 00:00:00 2001
From: francois <francois@clever.amilab.irit.fr>
Date: Fri, 18 Mar 2022 16:19:05 +0100
Subject: [PATCH] switch back to regular IKEA PMsensor commands + added
 hex_dump for frames

---
 neosensor/libraries/neocampus_drivers/SCD4x.cpp     |  2 +-
 neosensor/libraries/neocampus_drivers/pm_serial.cpp | 11 +++++++++--
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/neosensor/libraries/neocampus_drivers/SCD4x.cpp b/neosensor/libraries/neocampus_drivers/SCD4x.cpp
index 5acce2c9..55d38db8 100644
--- a/neosensor/libraries/neocampus_drivers/SCD4x.cpp
+++ b/neosensor/libraries/neocampus_drivers/SCD4x.cpp
@@ -26,7 +26,7 @@
 #include "neocampus_debug.h"
 #include "neocampus_i2c.h"
 
-// [may.20] debug
+// for hex_dump debug
 #include "neocampus_utils.h"
 
 
diff --git a/neosensor/libraries/neocampus_drivers/pm_serial.cpp b/neosensor/libraries/neocampus_drivers/pm_serial.cpp
index 967b944b..89bef2e9 100644
--- a/neosensor/libraries/neocampus_drivers/pm_serial.cpp
+++ b/neosensor/libraries/neocampus_drivers/pm_serial.cpp
@@ -23,6 +23,9 @@
 #include "neocampus.h"
 #include "neocampus_debug.h"
 
+// for hex_dump debug
+#include "neocampus_utils.h"
+
 #include "pm_serial.h"   // neOCampus driver
 
 
@@ -870,8 +873,8 @@ boolean pm_serial::_ll_requestRead( void ) {
     res = true;
   }
   else if( _sensor_type ==  pmSensorType_t::IKEA ) {
-    // uint8_t command[] = { 0x11, 0x01, 0x02, 0xEC }; // regular command
-    uint8_t command[] = { 0x11, 0x02, 0x0b, 0x01, 0xE1 }; // [feb.22] hidden command
+    uint8_t command[] = { 0x11, 0x01, 0x02, 0xEC }; // regular command
+    // uint8_t command[] = { 0x11, 0x02, 0x0b, 0x01, 0xE1 }; // [feb.22] hidden command
     _stream->write(command, sizeof(command)); delay(50);
     res = true;
   }
@@ -1132,6 +1135,10 @@ boolean pm_serial::serialRead_ikea( uint16_t timeout ) {
             continue;
           }
 
+          // DEBUG
+          log_debug(F("\n[pm_serial][IKEA] frame received: ")); log_flush();
+          hex_dump( (char*)_payload, min(sizeof(_payload),(unsigned int)(_frameLen-1)) );
+
           uint16_t value;
           // Atmospheric Environment.
           //value = makeWord(_payload[6], _payload[7]);   // PM1_0
-- 
GitLab