From dd3a05889d164bb832a9e58069752b65daa58965 Mon Sep 17 00:00:00 2001 From: Nicu Hodos Date: Thu, 21 Feb 2019 23:15:49 +0100 Subject: [PATCH] when window is opened, continue to send state every 10 mins until it is closed --- window1/window1.ino | 9 +++++---- window2/window2.ino | 9 +++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/window1/window1.ino b/window1/window1.ino index e79ce67..6f24b62 100644 --- a/window1/window1.ino +++ b/window1/window1.ino @@ -10,6 +10,7 @@ ContactSensor sensor = ContactSensor(WINDOW1, SENDER); volatile int counter = 0; volatile bool shouldSend = true; +bool currentState = false; void setup() { @@ -26,7 +27,8 @@ void setup() { void loop() { if (shouldSend) { shouldSend = false; - sensor.sendStateAndVoltage(digitalRead(SWITCH)); + currentState = digitalRead(SWITCH); + sensor.sendStateAndVoltage(currentState); } TinyPower::sleep(); } @@ -34,8 +36,8 @@ void loop() { ISR(PCINT0_vect) { shouldSend = true; wdt_reset(); - TinyPower::enableWdt(WDTO_8S); counter = 0; + TinyPower::enableWdt(WDTO_8S); } ISR(WDT_vect) { @@ -47,8 +49,7 @@ ISR(WDT_vect) { if (counter % 75 == 0) { shouldSend = true; } - if (counter >= 225) { + if (!currentState && counter >= 225) { TinyPower::disableWdt(); - counter = 0; } } diff --git a/window2/window2.ino b/window2/window2.ino index 3b8e31b..5b1c197 100644 --- a/window2/window2.ino +++ b/window2/window2.ino @@ -9,6 +9,7 @@ ContactSensor sensor = ContactSensor(WINDOW2, SENDER); volatile int counter = 0; volatile bool shouldSend = true; +bool currentState = false; void setup() { @@ -23,7 +24,8 @@ void setup() { void loop() { if (shouldSend) { shouldSend = false; - sensor.sendStateAndVoltage(digitalRead(SWITCH)); + currentState = digitalRead(SWITCH); + sensor.sendStateAndVoltage(currentState); } TinyPower::sleep(); } @@ -31,8 +33,8 @@ void loop() { ISR(PCINT0_vect) { shouldSend = true; wdt_reset(); - TinyPower::enableWdt(WDTO_8S); counter = 0; + TinyPower::enableWdt(WDTO_8S); } ISR(WDT_vect) { @@ -44,8 +46,7 @@ ISR(WDT_vect) { if (counter % 75 == 0) { shouldSend = true; } - if (counter >= 225) { + if (!currentState && counter >= 225) { TinyPower::disableWdt(); - counter = 0; } }