mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-05-03 06:39:32 +00:00
Made it work with Kaifa data
This commit is contained in:
@@ -102,7 +102,10 @@ int HanReader::getListSize()
|
|||||||
|
|
||||||
time_t HanReader::getPackageTime()
|
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)
|
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
|
// The first byte after the header gives the length
|
||||||
// of the extended header information (variable)
|
// 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++)
|
for (int i = start + firstData; i<length; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ class HanReader
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
const uint dataHeader = 8;
|
const uint dataHeader = 8;
|
||||||
|
bool compensateFor09HeaderBug = false;
|
||||||
|
|
||||||
HanReader();
|
HanReader();
|
||||||
void setup(HardwareSerial *hanPort);
|
void setup(HardwareSerial *hanPort);
|
||||||
|
|||||||
@@ -8,13 +8,11 @@ enum class Kaifa : byte {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum class Kaifa_List1 {
|
enum class Kaifa_List1 {
|
||||||
Time,
|
|
||||||
ListSize,
|
ListSize,
|
||||||
ActivePowerImported
|
ActivePowerImported
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class Kaifa_List2 {
|
enum class Kaifa_List2 {
|
||||||
Time,
|
|
||||||
ListSize,
|
ListSize,
|
||||||
ListVersionIdentifier,
|
ListVersionIdentifier,
|
||||||
MeterID,
|
MeterID,
|
||||||
@@ -32,7 +30,6 @@ enum class Kaifa_List2 {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum class Kaifa_List3 {
|
enum class Kaifa_List3 {
|
||||||
Time,
|
|
||||||
ListSize,
|
ListSize,
|
||||||
ListVersionIdentifier,
|
ListVersionIdentifier,
|
||||||
MeterID,
|
MeterID,
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ void setup() {
|
|||||||
// initialize the HanReader
|
// initialize the HanReader
|
||||||
// (passing no han port, as we are feeding data manually, but provide Serial for debugging)
|
// (passing no han port, as we are feeding data manually, but provide Serial for debugging)
|
||||||
hanReader.setup(NULL, &Serial);
|
hanReader.setup(NULL, &Serial);
|
||||||
|
hanReader.compensateFor09HeaderBug = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setupDebugPort()
|
void setupDebugPort()
|
||||||
|
|||||||
Reference in New Issue
Block a user