mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-14 07:49:01 +00:00
Writing out consumption
This commit is contained in:
parent
e59a3dc1ed
commit
d221428fa2
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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 };
|
||||
|
||||
@ -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:
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user