From d0ee20860faea5cd7ebebd61a357896a8dc89931 Mon Sep 17 00:00:00 2001 From: Luiz Henrique Cassettari Date: Mon, 13 Jan 2020 19:17:41 -0300 Subject: [PATCH] Create LoRaSenderNonBlockingCallback.ino Simple Example non-blocking callback --- .../LoRaSenderNonBlockingCallback.ino | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 examples/LoRaSenderNonBlockingCallback/LoRaSenderNonBlockingCallback.ino diff --git a/examples/LoRaSenderNonBlockingCallback/LoRaSenderNonBlockingCallback.ino b/examples/LoRaSenderNonBlockingCallback/LoRaSenderNonBlockingCallback.ino new file mode 100644 index 0000000..88e5e2f --- /dev/null +++ b/examples/LoRaSenderNonBlockingCallback/LoRaSenderNonBlockingCallback.ino @@ -0,0 +1,50 @@ +#include +#include + +int counter = 0; + +void setup() { + Serial.begin(9600); + while (!Serial); + + Serial.println("LoRa Sender non-blocking Callback"); + + if (!LoRa.begin(915E6)) { + Serial.println("Starting LoRa failed!"); + while (1); + } + + LoRa.onTxDone(onTxDone); +} + +void loop() { + if (runEvery(1000)) { // repeat every 1000 millis + + Serial.print("Sending packet non-blocking: "); + Serial.println(counter); + + // send in async / non-blocking mode + LoRa.beginPacket(); + LoRa.print("hello "); + LoRa.print(counter); + LoRa.endPacket(true); // true = async / non-blocking mode + + counter++; + } +} + +void onTxDone() { + Serial.println("TxDone"); +} + +boolean runEvery(unsigned long interval) +{ + static unsigned long previousMillis = 0; + unsigned long currentMillis = millis(); + if (currentMillis - previousMillis >= interval) + { + previousMillis = currentMillis; + return true; + } + return false; +}