From 2eed5f4ac2466d6a2d149b9a4da87246adb4b4b1 Mon Sep 17 00:00:00 2001 From: Lauris Date: Fri, 23 Jun 2017 01:45:53 +0300 Subject: [PATCH] Each relay has its own pulse ticker. This fixes issue #149 --- code/espurna/relay.ino | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/espurna/relay.ino b/code/espurna/relay.ino index dbb2f635..f0ab3e68 100644 --- a/code/espurna/relay.ino +++ b/code/espurna/relay.ino @@ -21,9 +21,9 @@ typedef struct { unsigned int scheduledStatusTime; bool scheduledStatus; bool scheduledReport; + Ticker pulseTicker; } relay_t; std::vector _relays; -Ticker pulseTicker; bool recursive = false; #if RELAY_PROVIDER == RELAY_PROVIDER_DUAL @@ -105,11 +105,11 @@ void relayPulse(unsigned char id) { bool status = relayStatus(id); bool pulseStatus = (relayPulseMode == RELAY_PULSE_ON); if (pulseStatus == status) { - pulseTicker.detach(); + _relays[id].pulseTicker.detach(); return; } - pulseTicker.once( + _relays[id].pulseTicker.once( getSetting("relayPulseTime", RELAY_PULSE_TIME).toInt(), relayToggle, id