Skip to content

Commit ef1b19e

Browse files
committed
fix(example): Add retry and fix typo
1 parent fa7d6a4 commit ef1b19e

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

libraries/Zigbee/examples/Zigbee_Temp_Hum_Sensor_Sleepy/Zigbee_Temp_Hum_Sensor_Sleepy.ino

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
#define uS_TO_S_FACTOR 1000000ULL /* Conversion factor for micro seconds to seconds */
4141
#define TIME_TO_SLEEP 55 /* Sleep for 55s will + 5s delay for establishing connection => data reported every 1 minute */
42-
#define REPORT_TIMEOUT 30000 /* Timeout for reporting data in ms */
42+
#define REPORT_TIMEOUT 1000 /* Timeout for response from coordinator in ms */
4343

4444
uint8_t button = BOOT_PIN;
4545

@@ -93,17 +93,22 @@ static void meausureAndSleep(void *arg) {
9393
const unsigned long timeout = REPORT_TIMEOUT;
9494

9595
Serial.printf("Waiting for data report to be confirmed \r\n");
96-
// Wait until data was succesfully sent
97-
while (dataToSend != 0) {
96+
// Wait until data was successfully sent
97+
int tries = 0;
98+
const int maxTries = 3;
99+
while (dataToSend != 0 && tries < maxTries) {
98100
if (resend) {
99101
Serial.println("Resending data on failure!");
100102
resend = false;
101103
dataToSend = 2;
102104
zbTempSensor.report(); // report again
103105
}
104106
if (millis() - startTime >= timeout) {
105-
Serial.println("Report timeout!");
106-
break;
107+
Serial.println("\nReport timeout! Report Again");
108+
dataToSend = 2;
109+
zbTempSensor.report(); // report again
110+
startTime = millis();
111+
tries++;
107112
}
108113
Serial.printf(".");
109114
delay(50); // 50ms delay to avoid busy-waiting

0 commit comments

Comments
 (0)