loop control commands and fixes for error disabling

This commit is contained in:
Wolfgang Hottgenroth
2017-01-05 00:07:07 +01:00
parent e7a6a84bbc
commit f44646bced
5 changed files with 43 additions and 27 deletions

View File

@ -1,5 +1,6 @@
#include <stdint.h>
#include "overCurrentProt.h"
#include <Streaming.h>
@ -22,20 +23,39 @@ OverCurrentProtCmd::OverCurrentProtCmd(OverCurrentProt *overCurrentProt) : m_ove
}
String OverCurrentProtCmd::exec(String params) {
return String("") + m_overCurrentProt->getEventCnt();
}
String res = "done";
OverCurrentResetCmd::OverCurrentResetCmd(OverCurrentProt *overCurrentProt) : m_overCurrentProt(overCurrentProt) {
}
String OverCurrentResetCmd::exec(String params) {
m_overCurrentProt->resetEventCnt();
return "done";
Print *out = m_server;
if (params.equalsIgnoreCase("help")) {
*out << "help ..... this help page" << endl;
*out << "show ..... show statistics" << endl;
*out << "reset .... reset statistics" << endl;
*out << "disable .. disable loop" << endl;
*out << "enable ... enable loop" << endl;
*out << endl;
} else if (params.equalsIgnoreCase("enable")) {
digitalWrite(CURRENT_SHUTDOWN, CURRENT_ON);
*out << "Loop enabled" << endl;
} else if (params.equalsIgnoreCase("disable")) {
digitalWrite(CURRENT_SHUTDOWN, CURRENT_OFF);
*out << "Loop disabled" << endl;
} else if (params.equalsIgnoreCase("show")) {
*out << "Over current counter: " << m_overCurrentProt->getEventCnt() << endl;
} else if (params.equalsIgnoreCase("reset")) {
m_overCurrentProt->resetEventCnt();
*out << "Over current counter reseted" << endl;
} else {
*out << "unknown subcommand" << endl;
res = "failed";
}
return res;
}
OverCurrentProt::OverCurrentProt() : m_overCurrentProtCmd(this), m_overCurrentResetCmd(this),
OverCurrentProt::OverCurrentProt() : m_overCurrentProtCmd(this),
m_eventCnt(0), m_timestamp(0) {
}
@ -43,7 +63,6 @@ OverCurrentProt::OverCurrentProt() : m_overCurrentProtCmd(this), m_overCurrentRe
void OverCurrentProt::begin(CmdServer *cmdServer) {
m_overCurrentProtCmd.registerYourself(cmdServer);
m_overCurrentResetCmd.registerYourself(cmdServer);
pinMode(CURRENT_SHUTDOWN, OUTPUT);
digitalWrite(CURRENT_SHUTDOWN, CURRENT_ON);
overCurrentMarker = false;