Start working on a Adafruit Feather M0 WiFi w/ATWINC1500 firmware (with slight update to HanReader interface)

This commit is contained in:
Vegar Westerlund
2019-05-11 21:34:11 +02:00
parent 09caae4093
commit 9a2995667b
8 changed files with 463 additions and 20 deletions

View File

@@ -5,15 +5,8 @@ HanReader::HanReader()
}
void HanReader::setup(HardwareSerial *hanPort, unsigned long baudrate, SerialConfig config, Stream *debugPort)
void HanReader::setup(HardwareSerial *hanPort, Stream *debugPort)
{
// Initialize H/W serial port for MBus communication
if (hanPort != NULL)
{
hanPort->begin(baudrate, config);
while (!hanPort) {}
}
han = hanPort;
bytesRead = 0;
debug = debugPort;
@@ -22,12 +15,7 @@ void HanReader::setup(HardwareSerial *hanPort, unsigned long baudrate, SerialCon
void HanReader::setup(HardwareSerial *hanPort)
{
setup(hanPort, 2400, SERIAL_8E1, NULL);
}
void HanReader::setup(HardwareSerial *hanPort, Stream *debugPort)
{
setup(hanPort, 2400, SERIAL_8E1, debugPort);
setup(hanPort, NULL);
}
bool HanReader::read(byte data)
@@ -63,8 +51,9 @@ bool HanReader::read(byte data)
return false;
}
if (debug) debug->println("HAN data is valid");
listSize = getInt(0, buffer, 0, bytesRead);
if (debug) debug->print("HAN data is valid, listSize: ");
if (debug) debug->println(listSize);
return true;
}
}
@@ -294,4 +283,4 @@ time_t HanReader::toUnixTime(int year, int month, int day, int hour, int minute,
time += second;
return (time_t)time;
}
}

View File

@@ -20,7 +20,6 @@ public:
HanReader();
void setup(HardwareSerial *hanPort);
void setup(HardwareSerial *hanPort, Stream *debugPort);
void setup(HardwareSerial *hanPort, unsigned long baudrate, SerialConfig config, Stream *debugPort);
bool read();
bool read(byte data);
int getListSize();

View File

@@ -4,7 +4,8 @@
enum class Kaifa : byte {
List1 = 0x01,
List2 = 0x0D,
List3 = 0x12
List3 = 0x12,
List4 = 0x09
};
enum class Kaifa_List1 {
@@ -51,4 +52,17 @@ enum class Kaifa_List3 {
CumulativeReactiveExportEnergy
};
enum class Kaifa_List4 { // TODO: Stop using list size like this?
ListSize,
ListVersionIdentifier,
MeterID,
MeterType,
ActiveImportPower,
ActiveExportPower,
ReactiveImportPower,
ReactiveExportPower,
CurrentL1,
CurrentL2,
};
#endif