#include <SPI.h>
#include <LoRa.h>

// Pin definition
#define NSS     26 // 26 for drone | 10 for zero
#define RESET   27 // 27 for drone | 9 for zero
#define DIO0    10 // 10 for drone | 2 for zero

void setup() {
  Serial1.begin(115200);
  while (!Serial1);

  Serial1.println("LoRa RX - Counter Test");

  LoRa.setPins(NSS, RESET, DIO0);

  if (!LoRa.begin(433E6)) {
    Serial1.println("LoRa init failed!");
    while (1);
  }

  // MUST MATCH TRANSMITTER SETTINGS
  LoRa.setSpreadingFactor(12);
  LoRa.setSignalBandwidth(125E3);
  LoRa.setCodingRate4(8);
  LoRa.enableCrc();

  Serial1.println("LoRa RX Ready");
}

void loop() {
  int packetSize = LoRa.parsePacket();
  if (packetSize) {
    Serial1.print("Received: ");

    while (LoRa.available()) {
      Serial1.print((char)LoRa.read());
    }

    Serial1.print(" | RSSI: ");
    Serial1.print(LoRa.packetRssi());

    Serial1.print(" | SNR: ");
    Serial1.println(LoRa.packetSnr());
  }
}
