Improve relay state tracking
This commit is contained in:
Binary file not shown.
Binary file not shown.
@ -59,6 +59,7 @@ void WirelessRelay::on()
|
|||||||
sendBit(false);
|
sendBit(false);
|
||||||
sync();
|
sync();
|
||||||
}
|
}
|
||||||
|
_state = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WirelessRelay::off()
|
void WirelessRelay::off()
|
||||||
@ -70,6 +71,7 @@ void WirelessRelay::off()
|
|||||||
sendBit(true);
|
sendBit(true);
|
||||||
sync();
|
sync();
|
||||||
}
|
}
|
||||||
|
_state = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t WirelessRelay::getId()
|
uint16_t WirelessRelay::getId()
|
||||||
@ -77,6 +79,11 @@ uint16_t WirelessRelay::getId()
|
|||||||
return _id;
|
return _id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WirelessRelay::getExpectedState()
|
||||||
|
{
|
||||||
|
return _state;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void WirelessRelay::init( volatile unsigned char *port, const unsigned char pin, const uint16_t id)
|
void WirelessRelay::init( volatile unsigned char *port, const unsigned char pin, const uint16_t id)
|
||||||
{
|
{
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
class WirelessRelay
|
class WirelessRelay
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
bool _state = false;
|
||||||
uint16_t _id;
|
uint16_t _id;
|
||||||
volatile unsigned char *_port;
|
volatile unsigned char *_port;
|
||||||
unsigned char _pin;
|
unsigned char _pin;
|
||||||
@ -24,5 +25,6 @@ public:
|
|||||||
void on();
|
void on();
|
||||||
void off();
|
void off();
|
||||||
uint16_t getId();
|
uint16_t getId();
|
||||||
|
bool getExpectedState();
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
2
main.cpp
2
main.cpp
@ -99,7 +99,7 @@ void relayDispatch(WirelessRelayStore* relays, char* inBuffer, Serial* serial)
|
|||||||
serial->write("ST");
|
serial->write("ST");
|
||||||
serial->write(relays->count);
|
serial->write(relays->count);
|
||||||
serial->putChar(',');
|
serial->putChar(',');
|
||||||
for(uint8_t i = 0; i < relays->count; i++) relays->states[i] ? serial->putChar('1') : serial->putChar('0');
|
for(uint8_t i = 0; i < relays->count; i++) relays->array[i].getExpectedState() ? serial->putChar('1') : serial->putChar('0');
|
||||||
serial->putChar('\n');
|
serial->putChar('\n');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
BIN
rgbcontroller
BIN
rgbcontroller
Binary file not shown.
Reference in New Issue
Block a user