From d221428fa2b8aceacedc98c80c827a8755be3729 Mon Sep 17 00:00:00 2001 From: Roar Fredriksen Date: Fri, 22 Sep 2017 01:37:20 +0200 Subject: [PATCH] Writing out consumption --- Code/ESPDebugger/ESPDebugger.ino | 9 ++++++++- Code/ESPDebugger/KaifaHan.cpp | 23 +++++++++++++++++++++++ Code/ESPDebugger/KaifaHan.h | 1 + 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Code/ESPDebugger/ESPDebugger.ino b/Code/ESPDebugger/ESPDebugger.ino index a3854b5f..aa44bff2 100644 --- a/Code/ESPDebugger/ESPDebugger.ino +++ b/Code/ESPDebugger/ESPDebugger.ino @@ -57,8 +57,15 @@ void loop() { time_t time = kaifa.GetPackageTime(buffer, 0, bytesRead); Serial1.print(" (time is "); Serial1.print(time); - Serial1.println("):"); + Serial1.print(")"); + if (list == 0x01) + { + int consumption = kaifa.GetInt(0, buffer, 0, bytesRead); + Serial1.print(" consumption is "); + Serial1.print(consumption); + Serial1.println(" Watts"); + } writeAndEmptyBuffer(); } } diff --git a/Code/ESPDebugger/KaifaHan.cpp b/Code/ESPDebugger/KaifaHan.cpp index f0322bee..476634fe 100644 --- a/Code/ESPDebugger/KaifaHan.cpp +++ b/Code/ESPDebugger/KaifaHan.cpp @@ -28,6 +28,29 @@ long KaifaHan::GetPackageTime(byte *buffer, int start, int length) return toUnixTime(year, month, day, hour, minute, second); } +int KaifaHan::GetInt(int dataPosition, byte *buffer, int start, int length) +{ + const int dataStart = 24; + int value = 0; + int foundPosition = 0; + for (int i = start + dataStart; i < start + length; i++) + { + if (foundPosition == 0) + { + if (buffer[i] == 0x06) + foundPosition = i; + } + else + { + value = value << 8 | + buffer[i]; + if (i == foundPosition + 4) + return value; + } + } + return 0; +} + time_t KaifaHan::toUnixTime(int year, int month, int day, int hour, int minute, int second) { byte daysInMonth[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; diff --git a/Code/ESPDebugger/KaifaHan.h b/Code/ESPDebugger/KaifaHan.h index 34ebd1cb..89d50e20 100644 --- a/Code/ESPDebugger/KaifaHan.h +++ b/Code/ESPDebugger/KaifaHan.h @@ -16,6 +16,7 @@ class KaifaHan const byte List3 = 0x12; byte GetListID(byte *buffer, int start, int length); long GetPackageTime(byte *buffer, int start, int length); + int GetInt(int dataPosition, byte *buffer, int start, int length); protected: