From 085d496b8806f9e3b88202d0b58ac348b7e2e7c0 Mon Sep 17 00:00:00 2001 From: jgromes Date: Mon, 13 May 2019 15:42:18 +0200 Subject: [PATCH] [SX126x] Added transmit example --- .../SX126x_Transmit/SX126x_Transmit.ino | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 examples/SX126x/SX126x_Transmit/SX126x_Transmit.ino diff --git a/examples/SX126x/SX126x_Transmit/SX126x_Transmit.ino b/examples/SX126x/SX126x_Transmit/SX126x_Transmit.ino new file mode 100644 index 00000000..7c452520 --- /dev/null +++ b/examples/SX126x/SX126x_Transmit/SX126x_Transmit.ino @@ -0,0 +1,79 @@ +/* + RadioLib SX126x Transmit Example + + This example transmits packets using SX1262 LoRa radio module. + Each packet contains up to 256 bytes of data, in the form of: + - Arduino String + - null-terminated char array (C-string) + - arbitrary binary data (byte array) + + Other modules from SX126x family can also be used. +*/ + +// include the library +#include + +// SX1262 module is in slot A on the shield +SX1262 lora = RadioShield.ModuleA; + +void setup() { + Serial.begin(9600); + + // initialize SX1262 with default settings + Serial.print(F("[SX1262] Initializing ... ")); + // carrier frequency: 434.0 MHz + // bandwidth: 125.0 kHz + // spreading factor: 9 + // coding rate: 7 + // sync word: 0x1424 (private network) + // output power: 14 dBm + // current limit: 60 mA + // preamble length: 8 symbols + int state = lora.begin(); + if (state == ERR_NONE) { + Serial.println(F("success!")); + } else { + Serial.print(F("failed, code ")); + Serial.println(state); + while (true); + } +} + +void loop() { + Serial.print(F("[SX1262] Transmitting packet ... ")); + + // you can transmit C-string or Arduino string up to + // 256 characters long + // NOTE: transmit() is a blocking method! + // See example SX126x_Transmit_Interrupt for details + // on non-blocking transmission method. + int state = lora.transmit("Hello World!"); + + // you can also transmit byte array up to 256 bytes long + /* + byte byteArr[] = {0x01, 0x23, 0x45, 0x56, 0x78, 0xAB, 0xCD, 0xEF}; + int state = lora.transmit(byteArr, 8); + */ + + if (state == ERR_NONE) { + // the packet was successfully transmitted + Serial.println(" success!"); + + // print measured data rate + Serial.print("[SX1262] Datarate:\t"); + Serial.print(lora.getDataRate()); + Serial.println(" bps"); + + } else if (state == ERR_PACKET_TOO_LONG) { + // the supplied packet was longer than 256 bytes + Serial.println(" too long!"); + + } else if (state == ERR_TX_TIMEOUT) { + // timeout occured while transmitting packet + Serial.println(" timeout!"); + + } + + // wait for a second before transmitting again + delay(1000); +}