add command, argument evaluation
This commit is contained in:
@ -68,9 +68,42 @@ String MqttConfig::exec(String params) {
|
|||||||
}
|
}
|
||||||
} else if (params.startsWith("add ")) {
|
} else if (params.startsWith("add ")) {
|
||||||
// add an mbus client, params: token address period
|
// add an mbus client, params: token address period
|
||||||
|
char paramBuf[64];
|
||||||
|
char *paramPtr;
|
||||||
|
strncpy(paramBuf, params.c_str(), sizeof(paramBuf));
|
||||||
|
paramPtr = paramBuf;
|
||||||
|
char *tokenStr = 0;
|
||||||
|
char *addressStr = 0;
|
||||||
|
char *periodStr = 0;
|
||||||
|
if ((paramPtr != 0) && (*paramPtr != 0)){
|
||||||
|
// command
|
||||||
|
strsep(¶mPtr, " ");
|
||||||
|
}
|
||||||
|
if ((paramPtr != 0) && (*paramPtr != 0)){
|
||||||
|
tokenStr = strsep(¶mPtr, " ");
|
||||||
|
}
|
||||||
|
if ((paramPtr != 0) && (*paramPtr != 0)){
|
||||||
|
addressStr = strsep(¶mPtr, " ");
|
||||||
|
}
|
||||||
|
if ((paramPtr != 0) && (*paramPtr != 0)){
|
||||||
|
periodStr = strsep(¶mPtr, " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((tokenStr != 0) && (*tokenStr != 0) &&
|
||||||
|
(addressStr != 0) && (*addressStr != 0) &&
|
||||||
|
(periodStr != 0) && (*periodStr != 0)) {
|
||||||
|
*out << "Token: " << tokenStr << endl;
|
||||||
|
*out << "Address: " << addressStr << endl;
|
||||||
|
*out << "Period: " << periodStr << endl;
|
||||||
|
|
||||||
configWrite(CONFIG_DEVICES, sizeof(mc->m_mbusDevTuple), (char*)mc->m_mbusDevTuple);
|
|
||||||
res = "done";
|
res = "done";
|
||||||
|
} else {
|
||||||
|
*out << "not enough arguments" << endl;
|
||||||
|
res = "failure";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// configWrite(CONFIG_DEVICES, sizeof(mc->m_mbusDevTuple), (char*)mc->m_mbusDevTuple);
|
||||||
} else if (params.startsWith("del ")) {
|
} else if (params.startsWith("del ")) {
|
||||||
// delete an mbus client, params: index
|
// delete an mbus client, params: index
|
||||||
int space = params.indexOf(' ');
|
int space = params.indexOf(' ');
|
||||||
|
@ -32,7 +32,7 @@ static MqttClient mqttClient(&meterBusMaster);
|
|||||||
static OverCurrentProt overCurrentProt;
|
static OverCurrentProt overCurrentProt;
|
||||||
|
|
||||||
Metro wdogTick = Metro(1000);
|
Metro wdogTick = Metro(1000);
|
||||||
Metro dhcpTick = Metro(5* 60 * 1000);
|
Metro dhcpTick = Metro(60 * 1000);
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
void startup_early_hook( ) __attribute__ ((weak));
|
void startup_early_hook( ) __attribute__ ((weak));
|
||||||
@ -84,6 +84,8 @@ void setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
static uint16_t maxTmroutl = 0;
|
||||||
|
|
||||||
// watchdog refresh
|
// watchdog refresh
|
||||||
cli();
|
cli();
|
||||||
WDOG_REFRESH = 0xa602;
|
WDOG_REFRESH = 0xa602;
|
||||||
@ -94,9 +96,10 @@ void loop() {
|
|||||||
if (wdogTick.check() == 1) {
|
if (wdogTick.check() == 1) {
|
||||||
uint16_t h = WDOG_TMROUTH;
|
uint16_t h = WDOG_TMROUTH;
|
||||||
uint16_t l = WDOG_TMROUTL;
|
uint16_t l = WDOG_TMROUTL;
|
||||||
|
maxTmroutl = (maxTmroutl > l) ? maxTmroutl : l;
|
||||||
uint16_t c = WDOG_RSTCNT;
|
uint16_t c = WDOG_RSTCNT;
|
||||||
|
|
||||||
Serial << "WDog, h: " << _HEX(h) << ", l: " << _HEX(l) << ", c: " << _HEX(c) << endl;
|
Serial << "WDog, h: " << _HEX(h) << ", l: " << _HEX(l) << ", c: " << _HEX(c) << ", m: " << _HEX(maxTmroutl) << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dhcpTick.check() == 1) {
|
if (dhcpTick.check() == 1) {
|
||||||
|
Reference in New Issue
Block a user