diff --git a/code/espurna/relay.ino b/code/espurna/relay.ino index 0e105a79..230a14c6 100644 --- a/code/espurna/relay.ino +++ b/code/espurna/relay.ino @@ -27,7 +27,7 @@ unsigned char _dual_status = 0; #if RELAY_PROVIDER == RELAY_PROVIDER_MY9291 #include -my9291 _my9291 = my9291(MY9291_DI_PIN, MY9291_DCKI_PIN, MY9291_COMMAND); +my9291 * _my9291; Ticker colorTicker; #endif @@ -40,7 +40,7 @@ Ticker colorTicker; void setLightColor(unsigned char red, unsigned char green, unsigned char blue, unsigned char white) { // Set new color (if light is open it will automatically change) - _my9291.setColor((my9291_color_t) { red, green, blue, white }); + _my9291->setColor((my9291_color_t) { red, green, blue, white }); // Delay saving to EEPROM 5 seconds to avoid wearing it out unnecessarily colorTicker.once(5, saveLightColor); @@ -49,13 +49,13 @@ void setLightColor(unsigned char red, unsigned char green, unsigned char blue, u String getLightColor() { char buffer[16]; - my9291_color_t color = _my9291.getColor(); + my9291_color_t color = _my9291->getColor(); sprintf(buffer, "%d,%d,%d,%d", color.red, color.green, color.blue, color.white); return String(buffer); } void saveLightColor() { - my9291_color_t color = _my9291.getColor(); + my9291_color_t color = _my9291->getColor(); setSetting("colorRed", color.red); setSetting("colorGreen", color.green); setSetting("colorBlue", color.blue); @@ -68,7 +68,7 @@ void retrieveLightColor() { unsigned int green = getSetting("colorGreen", MY9291_COLOR_GREEN).toInt(); unsigned int blue = getSetting("colorBlue", MY9291_COLOR_BLUE).toInt(); unsigned int white = getSetting("colorWhite", MY9291_COLOR_WHITE).toInt(); - _my9291.setColor((my9291_color_t) { red, green, blue, white }); + _my9291->setColor((my9291_color_t) { red, green, blue, white }); } #endif @@ -86,7 +86,7 @@ void relayProviderStatus(unsigned char id, bool status) { #endif #if RELAY_PROVIDER == RELAY_PROVIDER_MY9291 - _my9291.setState(status); + _my9291->setState(status); #endif #if RELAY_PROVIDER == RELAY_PROVIDER_RELAY @@ -103,7 +103,7 @@ bool relayProviderStatus(unsigned char id) { #endif #if RELAY_PROVIDER == RELAY_PROVIDER_MY9291 - return _my9291.getState(); + return _my9291->getState(); #endif #if RELAY_PROVIDER == RELAY_PROVIDER_RELAY @@ -559,6 +559,7 @@ void relaySetup() { byte relayMode = getSetting("relayMode", RELAY_MODE).toInt(); #if RELAY_PROVIDER == RELAY_PROVIDER_MY9291 + _my9291 = new my9291(MY9291_DI_PIN, MY9291_DCKI_PIN, MY9291_COMMAND); retrieveLightColor(); #endif