Support multi backend items

This commit is contained in:
2020-05-05 22:20:00 +02:00
parent 14432ae200
commit bcd835aca6
10 changed files with 276 additions and 121 deletions

View File

@ -14,7 +14,7 @@ void WirelessRelay::sendId()
for(short i = 0; i<10; i++)
{
sendBit( _id & 1 << (15 - i) );
sendBit( id & 1 << (15 - i) );
}
}
@ -54,64 +54,32 @@ void WirelessRelay::sync()
_delay_us(SMALL_TIME*31);
}
void WirelessRelay::on()
void WirelessRelay::setValue(const uint8_t value)
{
_state = true;
lastValue = value;
for(short z = 0; z<10; z++)
{
sendId();
sendBit(true);
sendBit(false);
sendBit(value);
sendBit(!value);
sync();
}
}
void WirelessRelay::off()
{
_state = false;
for(short z = 0; z<10; z++)
{
sendId();
sendBit(false);
sendBit(true);
sync();
}
}
uint16_t WirelessRelay::getId()
{
return _id;
}
bool WirelessRelay::getExpectedState()
{
return _state;
}
char* WirelessRelay::getName()
{
return _name;
}
void WirelessRelay::setName(char name[])
{
memcpy(_name, name, strlen(name)+1);
}
void WirelessRelay::init( const uint16_t id, char nameIn[])
{
setName(nameIn);
_id=id;
}
void WirelessRelay::resend()
{
_state ? on() : off();
setValue(lastValue);
}
WirelessRelay::WirelessRelay(const uint16_t id, char nameIn[])
WirelessRelay::WirelessRelay(const uint16_t idIn, char nameIn[])
{
init(id, nameIn);
id = idIn;
setName(nameIn);
type = 0;
}
WirelessRelay::WirelessRelay(){}
WirelessRelay::WirelessRelay(const Item& item)
{
Item::operator=(item);
type = 0;
}