// Do not remove the include below // #include #include "NetMeterBusMaster2.h" #include "cmd.h" #include "test.h" #include "uptime.h" // #include "meterBusServer.h" #include "meterBusMaster.h" #include "overCurrentProt.h" #include #include "MqttClient.h" #include #include #include "config.h" #include "info.h" #include "reset.h" const uint8_t POWER_LED = 4; const uint8_t ETHERNET_RESET = 14; static uint8_t mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xEF }; static CmdServer cmdServer(2000); static TestCmd testCmd; static Uptime uptime; static InfoCmd infoCmd; static MeterBusMaster meterBusMaster; static MqttClient mqttClient(&meterBusMaster); // static MeterBusServer meterBusServer(2001, &meterBusMaster); static OverCurrentProt overCurrentProt; Metro wdogTick = Metro(1000); Metro dhcpTick = Metro(60 * 1000); void setup() { pinMode(POWER_LED, OUTPUT); digitalWrite(POWER_LED, HIGH); Serial.begin(115200); delay(100); Serial.println("Starting up ..."); digitalWrite(POWER_LED, LOW); configInit(); pinMode(ETHERNET_RESET, OUTPUT); digitalWrite(ETHERNET_RESET, LOW); delay(100); digitalWrite(ETHERNET_RESET, HIGH); delay(100); Ethernet.begin(mac); Serial.println("Ethernet started"); cmdServer.begin(); testCmd.registerYourself(&cmdServer); infoCmd.registerYourself(&cmdServer); uptime.begin(&cmdServer); overCurrentProt.begin(&cmdServer); meterBusMaster.begin(&cmdServer); // meterBusServer.begin(); mqttClient.begin(&cmdServer); digitalWrite(POWER_LED, HIGH); } void loop() { watchdogReset(); if (dhcpTick.check() == 1) { byte r = Ethernet.maintain(); Serial << "Ethernet.maintain: " << r << endl; if ((r == DHCP_CHECK_REBIND_FAIL) || (r == DHCP_CHECK_RENEW_FAIL)) { resetDevice(); } } //Serial << "*** 1" << endl; cmdServer.exec(); //Serial << "*** 2" << endl; uptime.exec(); //Serial << "*** 3" << endl; overCurrentProt.exec(); //Serial << "*** 4" << endl; meterBusMaster.exec(); //Serial << "*** 5" << endl; mqttClient.exec(); //Serial << "*** 6" << endl; }