mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-14 07:49:01 +00:00
Made it work with Kaifa data
This commit is contained in:
parent
cbefaf1c7c
commit
b2f348f57d
@ -102,7 +102,10 @@ int HanReader::getListSize()
|
||||
|
||||
time_t HanReader::getPackageTime()
|
||||
{
|
||||
return getTime(buffer, 8, bytesRead);
|
||||
int packageTimePosition = dataHeader
|
||||
+ (compensateFor09HeaderBug ? 1 : 0);
|
||||
|
||||
return getTime(buffer, packageTimePosition, bytesRead);
|
||||
}
|
||||
|
||||
time_t HanReader::getTime(int objectId)
|
||||
@ -125,7 +128,8 @@ int HanReader::findValuePosition(int dataPosition, byte *buffer, int start, int
|
||||
{
|
||||
// The first byte after the header gives the length
|
||||
// of the extended header information (variable)
|
||||
int firstData = dataHeader + buffer[dataHeader] + 1;
|
||||
int headerSize = dataHeader + (compensateFor09HeaderBug ? 1 : 0);
|
||||
int firstData = headerSize + buffer[headerSize] + 1;
|
||||
|
||||
for (int i = start + firstData; i<length; i++)
|
||||
{
|
||||
|
||||
@ -15,6 +15,7 @@ class HanReader
|
||||
{
|
||||
public:
|
||||
const uint dataHeader = 8;
|
||||
bool compensateFor09HeaderBug = false;
|
||||
|
||||
HanReader();
|
||||
void setup(HardwareSerial *hanPort);
|
||||
|
||||
@ -8,13 +8,11 @@ enum class Kaifa : byte {
|
||||
};
|
||||
|
||||
enum class Kaifa_List1 {
|
||||
Time,
|
||||
ListSize,
|
||||
ActivePowerImported
|
||||
};
|
||||
|
||||
enum class Kaifa_List2 {
|
||||
Time,
|
||||
ListSize,
|
||||
ListVersionIdentifier,
|
||||
MeterID,
|
||||
@ -32,7 +30,6 @@ enum class Kaifa_List2 {
|
||||
};
|
||||
|
||||
enum class Kaifa_List3 {
|
||||
Time,
|
||||
ListSize,
|
||||
ListVersionIdentifier,
|
||||
MeterID,
|
||||
|
||||
@ -30,6 +30,7 @@ void setup() {
|
||||
// initialize the HanReader
|
||||
// (passing no han port, as we are feeding data manually, but provide Serial for debugging)
|
||||
hanReader.setup(NULL, &Serial);
|
||||
hanReader.compensateFor09HeaderBug = true;
|
||||
}
|
||||
|
||||
void setupDebugPort()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user