I think I have found a bug in the current (1.0.1) Relay code.
I had the following snippet of code in my sketch:
Code: Select all
// turn the UV off when the fans are on.
ReefAngel.Relay.Set (UV, !ReefAngel.Relay.Status(FANS));
Code: Select all
#define FANS Box1_Port8
Code: Select all
#define Box1_Port8 18
Code: Select all
inline boolean Status(byte Port) { return bitRead((RelayData & RelayMaskOff) | RelayMaskOn,Port-1); }
Code: Select all
boolean RelayClass::Status(byte ID)
{
if ( ID < 9 ) return bitRead((RelayData & RelayMaskOff) | RelayMaskOn, ID-1);
#ifdef RelayExp
if ( (ID > 10) && (ID < 89) )
{
byte EID = byte(ID/10);
return bitRead((RelayDataE[EID-1] & RelayMaskOffE[EID-1]) | RelayMaskOnE[EID-1], (ID%10)-1);
}
#endif // RelayExp
return false;
}
Code: Select all
boolean RelayClass::Status(byte ID)
{
if ( ID < 9 ) return bitRead(RelayData, ID-1);
#ifdef RelayExp
if ( (ID > 10) && (ID < 89) )
{
byte EID = byte(ID/10);
return bitRead(RelayDataE[EID-1], (ID%10)-1);
}
#endif // RelayExp
return false;
}
Thanks,
Don