addd ssd1306 lib
This commit is contained in:
102
P1_gateway_FW/src/dsmrhandler.cpp
Normal file
102
P1_gateway_FW/src/dsmrhandler.cpp
Normal file
@@ -0,0 +1,102 @@
|
||||
#include "dsmrhandler.h"
|
||||
/* -------------------------------------------------*/
|
||||
/* https://github.com/matthijskooijman/arduino-dsmr */
|
||||
/* -------------------------------------------------*/
|
||||
|
||||
SoftwareSerial DMSRSerial;
|
||||
|
||||
P1Reader reader(&DMSRSerial, DSMR_REQ);
|
||||
|
||||
unsigned long last;
|
||||
DSMRData data;
|
||||
unsigned long msgCount;
|
||||
|
||||
void dsmrParser(void)
|
||||
{
|
||||
msgCount = 1322;
|
||||
ParseResult<void> res = P1Parser::parse(&data, testData, lengthof(testData), true);
|
||||
if (res.err)
|
||||
{
|
||||
// Parsing error, show it
|
||||
Serial.println(res.fullError(testData, testData + lengthof(testData)));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Parsed succesfully, print all values
|
||||
data.applyEach(Printer());
|
||||
}
|
||||
}
|
||||
|
||||
void dsmrReader(void)
|
||||
{
|
||||
//process msg
|
||||
reader.loop();
|
||||
unsigned long now = millis();
|
||||
if (now - last > 60000)
|
||||
{
|
||||
reader.enable(true);
|
||||
last = now;
|
||||
}
|
||||
if (reader.available())
|
||||
{
|
||||
msgCount++;
|
||||
String err;
|
||||
if (reader.parse(&data, &err))
|
||||
{
|
||||
// Parse succesful, print result
|
||||
data.applyEach(Printer());
|
||||
}
|
||||
else
|
||||
{
|
||||
// Parser error, print error
|
||||
Serial.println(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void initDSMR(void)
|
||||
{
|
||||
//init soft serial
|
||||
DMSRSerial.begin(115200, SWSERIAL_8N1, -1, DSMR_DATA);
|
||||
reader.enable(true);
|
||||
last = millis();
|
||||
#ifdef TEST
|
||||
dsmrParser();
|
||||
#endif
|
||||
}
|
||||
|
||||
void handleDSMR(void)
|
||||
{
|
||||
dsmrReader();
|
||||
}
|
||||
|
||||
String getElecDelivered(void)
|
||||
{
|
||||
String tmpstr("Cons: ");
|
||||
tmpstr += data.power_delivered;
|
||||
tmpstr += " kwh";
|
||||
return tmpstr;
|
||||
}
|
||||
|
||||
String getElecReturned(void)
|
||||
{
|
||||
String tmpstr("Prod: ");
|
||||
tmpstr += data.power_returned;
|
||||
tmpstr += " kwh";
|
||||
return tmpstr;
|
||||
}
|
||||
|
||||
String getGasDelivered(void)
|
||||
{
|
||||
String tmpstr("Cons: ");
|
||||
tmpstr += data.gas_delivered;
|
||||
tmpstr += " m3";
|
||||
return tmpstr;
|
||||
}
|
||||
|
||||
String getMsgCount(void)
|
||||
{
|
||||
String tmpstr("#Msg: ");
|
||||
tmpstr += msgCount;
|
||||
return tmpstr;
|
||||
}
|
||||
Reference in New Issue
Block a user