Writing out consumption

This commit is contained in:
Roar Fredriksen 2017-09-22 01:37:20 +02:00
parent e59a3dc1ed
commit d221428fa2
3 changed files with 32 additions and 1 deletions

View File

@ -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();
}
}

View File

@ -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 };

View File

@ -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: