Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
peripherals/lora_radio.cpp
- Committer:
- faydrus
- Date:
- 2018-09-28
- Revision:
- 14:900adc64ed43
File content as of revision 14:900adc64ed43:
#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);
}