mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-14 15:54:47 +00:00
71 lines
1.7 KiB
C++
71 lines
1.7 KiB
C++
#include "HanReader.h"
|
|
|
|
HanReader::HanReader()
|
|
{
|
|
|
|
}
|
|
|
|
void HanReader::setup(HardwareSerial *hanPort, unsigned long baudrate, SerialConfig config, Stream *debugPort)
|
|
{
|
|
// Initialize H/W serial port for MBus communication
|
|
hanPort->begin(baudrate, config);
|
|
while (!hanPort) {}
|
|
bytesRead = 0;
|
|
han = hanPort;
|
|
|
|
debug = debugPort;
|
|
if (debug) debug->println("MBUS serial setup complete");
|
|
}
|
|
|
|
void HanReader::setup(HardwareSerial *hanPort)
|
|
{
|
|
setup(hanPort, 2400, SERIAL_8E1, NULL);
|
|
}
|
|
|
|
void HanReader::setup(HardwareSerial *hanPort, Stream *debugPort)
|
|
{
|
|
setup(hanPort, 2400, SERIAL_8E1, debugPort);
|
|
}
|
|
|
|
bool HanReader::read()
|
|
{
|
|
if (han->available())
|
|
{
|
|
byte newByte = han->read();
|
|
if (reader.Read(newByte))
|
|
{
|
|
bytesRead = reader.GetRawData(buffer, 0, 512);
|
|
list = (List)kaifa.GetListID(buffer, 0, bytesRead);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
List HanReader::getList()
|
|
{
|
|
return list;
|
|
}
|
|
|
|
time_t HanReader::getPackageTime()
|
|
{
|
|
return kaifa.GetPackageTime(buffer, 0, bytesRead);
|
|
}
|
|
|
|
int HanReader::getInt(List1_ObisObjects objectId) { return getInt((int)objectId); }
|
|
int HanReader::getInt(List2_ObisObjects objectId) { return getInt((int)objectId); }
|
|
int HanReader::getInt(List3_ObisObjects objectId) { return getInt((int)objectId); }
|
|
int HanReader::getInt(int objectId)
|
|
{
|
|
return kaifa.GetInt(objectId, buffer, 0, bytesRead);
|
|
}
|
|
|
|
String HanReader::getString(List1_ObisObjects objectId) { return getString((int)objectId); }
|
|
String HanReader::getString(List2_ObisObjects objectId) { return getString((int)objectId); }
|
|
String HanReader::getString(List3_ObisObjects objectId) { return getString((int)objectId); }
|
|
String HanReader::getString(int objectId)
|
|
{
|
|
return kaifa.GetString(objectId, buffer, 0, bytesRead);
|
|
}
|