mbed support for STM32F103C8T6 (Blue Pill) boards
Diff: peripherals/lora_radio.cpp
- Revision:
- 14:900adc64ed43
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/peripherals/lora_radio.cpp Fri Sep 28 13:28:09 2018 +0000 @@ -0,0 +1,45 @@ +#include "mbed.h" +#include "CircularBuffer.h" +#include "sx1276-hal.h" + + +static void TxDoneCb(void) {}; +static void TxTimeoutCb(void) {}; +static void RxDoneCb(uint8_t *pld, uint16_t size, int16_t rssi, int8_t snr); +static void RxTimeoutCb(void) {}; +static void RxErrorCb(void) {}; +static void FhssChangeChannelCb(uint8_t currentChannel) {}; +static void CadDoneCb(bool ChannelActivityDetected) {}; + + +SX1276MB1xAS Radio( NULL ); + +void initLoRaRadio() { + // Set up the RadioEvents + static RadioEvents_t events; + events.TxDone = TxDoneCb; + events.TxTimeout = TxTimeoutCb; + events.RxDone = RxDoneCb; + events.RxTimeout = RxTimeoutCb; + events.RxError = RxErrorCb; + events.FhssChangeChannel = FhssChangeChannelCb; + events.CadDone = CadDoneCb; + + Radio.Init(&events); +} + +typedef struct { + uint8_t pld[128]; +} pkt_t; +CircularBuffer<pkt_t, 32, uint32_t> rx_plds; +CircularBuffer<uint16_t, 32, uint32_t> rssi_vals; +CircularBuffer<uint16_t, 32, uint32_t> snr_vals; +static pkt_t mesh_pkt; +static void RxDoneCb(uint8_t *pld, uint16_t size, int16_t rssi, int8_t snr) { + static pkt_t tmp_pld; + memcpy((void *) &tmp_pld, (void *) pld, size); + memcpy((void *) &mesh_pkt, (void *) pld, size); + rx_plds.push(tmp_pld); + rssi_vals.push(rssi); + snr_vals.push(snr); +} \ No newline at end of file