loop control commands and fixes for error disabling
This commit is contained in:
@ -176,7 +176,7 @@ void MeterBusMaster::sendBufferReady(uint16_t sendBufLen, uint8_t token, char *n
|
||||
}
|
||||
|
||||
void MeterBusMaster::prepareResponse(bool err, uint8_t in) {
|
||||
//Serial << "resp in, err: " << err << endl;
|
||||
Serial << "resp in, err: " << err << endl;
|
||||
static int16_t expectedChars = -1;
|
||||
static uint8_t state = 0;
|
||||
|
||||
@ -187,6 +187,7 @@ void MeterBusMaster::prepareResponse(bool err, uint8_t in) {
|
||||
uint8_t errorCode = 0;
|
||||
if (m_disabled) {
|
||||
errorCode = 2;
|
||||
m_disableDelay = 0;
|
||||
} else {
|
||||
errorCode = 1;
|
||||
m_disableDelay++;
|
||||
@ -277,14 +278,14 @@ void MeterBusMaster::disableLoop() {
|
||||
if (! m_loopIsDisabled) {
|
||||
m_loopIsDisabled = true;
|
||||
m_disableTime = millis();
|
||||
|
||||
digitalWrite(CURRENT_SHUTDOWN, CURRENT_OFF);
|
||||
}
|
||||
}
|
||||
|
||||
void MeterBusMaster::enableLoop() {
|
||||
if (m_loopIsDisabled) {
|
||||
m_loopIsDisabled = false;
|
||||
|
||||
digitalWrite(CURRENT_SHUTDOWN, CURRENT_ON);
|
||||
}
|
||||
}
|
||||
|
||||
@ -323,6 +324,7 @@ void MeterBusMaster::exec() {
|
||||
disableLoop();
|
||||
|
||||
if (m_loopIsDisabled && ((millis() - m_disableTime) > DISABLE_TIMEOUT)) {
|
||||
m_disabled = false;
|
||||
enableLoop();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user