target.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "target.h"
  2. #include <Arduino.h>
  3. #include <helpers/ArduinoHelpers.h>
  4. WaveshareBoard board;
  5. RADIO_CLASS radio = new Module(P_LORA_NSS, P_LORA_DIO_1, P_LORA_RESET, P_LORA_BUSY, SPI1);
  6. WRAPPER_CLASS radio_driver(radio, board);
  7. VolatileRTCClock fallback_clock;
  8. AutoDiscoverRTCClock rtc_clock(fallback_clock);
  9. SensorManager sensors;
  10. bool radio_init() {
  11. rtc_clock.begin(Wire);
  12. SPI1.setSCK(P_LORA_SCLK);
  13. SPI1.setTX(P_LORA_MOSI);
  14. SPI1.setRX(P_LORA_MISO);
  15. pinMode(P_LORA_NSS, OUTPUT);
  16. digitalWrite(P_LORA_NSS, HIGH);
  17. SPI1.begin(false);
  18. //passing NULL skips init of SPI
  19. return radio.std_init(NULL);
  20. }
  21. uint32_t radio_get_rng_seed() {
  22. return radio.random(0x7FFFFFFF);
  23. }
  24. void radio_set_params(float freq, float bw, uint8_t sf, uint8_t cr) {
  25. radio.setFrequency(freq);
  26. radio.setSpreadingFactor(sf);
  27. radio.setBandwidth(bw);
  28. radio.setCodingRate(cr);
  29. }
  30. void radio_set_tx_power(int8_t dbm) {
  31. radio.setOutputPower(dbm);
  32. }
  33. mesh::LocalIdentity radio_new_identity() {
  34. RadioNoiseListener rng(radio);
  35. return mesh::LocalIdentity(&rng); // create new random identity
  36. }