improved serial handeling added aux state info
This commit is contained in:
16
main.cpp
16
main.cpp
@ -9,7 +9,7 @@
|
||||
#include "rgbled.h"
|
||||
#include "eeprom.h"
|
||||
|
||||
#define MAX_RELAYS 32
|
||||
#define MAX_RELAYS 16
|
||||
#define COMMAND_BUFFER_SIZE 32
|
||||
#define SNPRINTF_BUFFER_SIZE 64
|
||||
|
||||
@ -35,7 +35,7 @@ inline static void printHelp(Serial* serial)
|
||||
relay list : Print list of saved Wireless Relays.\n\
|
||||
relay machine [on/off] : Get machine readable relay state when state changes.\n\
|
||||
relay [on/off] [nn] : Turn on/off nth relay.\n\
|
||||
relay state : Get machine readable relay state.\n\
|
||||
state : Get machine readable state.\n\
|
||||
erase : Erase epprom.\n\
|
||||
rgb [on/off] : Turn on/off RGB leds at current value.\n\
|
||||
rgb print : Print current RGB value.\n\
|
||||
@ -50,7 +50,7 @@ inline static void printHelp(Serial* serial)
|
||||
void writeState( WirelessRelayStore* relays, Pwm16b* auxPwm, Serial* serial )
|
||||
{
|
||||
serial->write("ST");
|
||||
serial->write(auxPwm.isOn() ? auxPwm.getValueA() : 0);
|
||||
serial->write(auxPwm->isOn() ? auxPwm->getValueA() >> 8 : 0);
|
||||
serial->putChar(',');
|
||||
serial->write(relays->count);
|
||||
for(uint8_t i = 0; i < relays->count; i++)
|
||||
@ -61,7 +61,7 @@ void writeState( WirelessRelayStore* relays, Pwm16b* auxPwm, Serial* serial )
|
||||
serial->putChar('\n');
|
||||
}
|
||||
|
||||
void relayDispatch(WirelessRelayStore* relays, char* inBuffer, Serial* serial)
|
||||
void relayDispatch(WirelessRelayStore* relays, Pwm16b* auxPwm, char* inBuffer, Serial* serial)
|
||||
{
|
||||
if( strncmp(inBuffer, "add", 3) == 0 && inBuffer[3] != '\0')
|
||||
{
|
||||
@ -106,7 +106,7 @@ void relayDispatch(WirelessRelayStore* relays, char* inBuffer, Serial* serial)
|
||||
|
||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE, "RELAY: %u turned on\n", selected);
|
||||
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
||||
if(relays->printState) writeState(relays, serial);
|
||||
if(relays->printState) writeState(relays, auxPwm, serial);
|
||||
}
|
||||
else serial->write("No sutch Relay\n");
|
||||
}
|
||||
@ -119,7 +119,7 @@ void relayDispatch(WirelessRelayStore* relays, char* inBuffer, Serial* serial)
|
||||
|
||||
snprintf(buffer, SNPRINTF_BUFFER_SIZE, "RELAY: %u turned off\n", selected);
|
||||
serial->write(buffer, SNPRINTF_BUFFER_SIZE);
|
||||
if(relays->printState) writeState(relays, serial);
|
||||
if(relays->printState) writeState(relays, auxPwm, serial);
|
||||
}
|
||||
else serial->write("No sutch Relay\n");
|
||||
}
|
||||
@ -240,7 +240,7 @@ void serialDispatch(Serial* serial , WirelessRelayStore* relays, RgbLed* rgbled,
|
||||
{
|
||||
if(length > 4 && strncmp(buffer, "relay", 5) == 0)
|
||||
{
|
||||
relayDispatch(relays, buffer+6, serial);
|
||||
relayDispatch(relays, auxPwm, buffer+6, serial);
|
||||
}
|
||||
else if(length > 2 && strncmp(buffer, "rgb", 3) == 0)
|
||||
{
|
||||
@ -348,7 +348,7 @@ int main()
|
||||
if(doorTow) openCount++;
|
||||
if(openCount > 60000)
|
||||
{
|
||||
serial.write("Door Open Warning\n");
|
||||
serial.write_p(PSTR("Door Open Warning\n"));
|
||||
openCount = 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user