diff --git a/mini-beieli-node.ino b/mini-beieli-node.ino index 02e4521..a45ab0f 100644 --- a/mini-beieli-node.ino +++ b/mini-beieli-node.ino @@ -783,17 +783,37 @@ void startSendingUplink(bool firstTime) fConfirmed = true; } + gCatena.poll(); + if (firstTime) { if (config_data.debug_level > 0) { gCatena.SafePrintf("SendBuffer firstTime\n"); } - gLoRaWAN.SendBuffer((uint8_t*)&lora_data_first, sizeof(LORA_data_first), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort); + bool success = gLoRaWAN.SendBuffer((uint8_t*)&lora_data_first, sizeof(LORA_data_first), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort); + // we try a second time if not successful... + if (! success) { + if (config_data.debug_level > 0) { + gCatena.SafePrintf("SendBuffer was not successful, we try a second time...\n"); + } + gCatena.poll(); + delay(500); + gLoRaWAN.SendBuffer((uint8_t*)&lora_data_first, sizeof(LORA_data_first), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort); + } package_counter++; } else { if (config_data.debug_level > 0) { gCatena.SafePrintf("SendBuffer not firstTime\n"); } - gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort); + bool success = gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort); + // we try a second time if not successful... + if (! success) { + if (config_data.debug_level > 0) { + gCatena.SafePrintf("SendBuffer was not successful, we try a second time...\n"); + } + gCatena.poll(); + delay(500); + gLoRaWAN.SendBuffer((uint8_t*)&lora_data, sizeof(LORA_data), sendBufferDoneCb, NULL, fConfirmed, kUplinkPort); + } package_counter++; }