/*! * \file radio_def.h * * \brief Radio driver API definition type definition * * \copyright Revised BSD License, see section \ref LICENSE. * * \code * ______ _ * / _____) _ | | * ( (____ _____ ____ _| |_ _____ ____| |__ * \____ \| ___ | (_ _) ___ |/ ___) _ \ * _____) ) ____| | | || |_| ____( (___| | | | * (______/|_____)_|_|_| \__)_____)\____)_| |_| * (C)2013-2017 Semtech * * \endcode * * \author Miguel Luis ( Semtech ) * * \author Gregory Cristian ( Semtech ) */ /*! ****************************************************************************** * * Portions COPYRIGHT 2020 STMicroelectronics * * @file radio_def.h * @author MCD Application Team * @brief Radio driver API definition ****************************************************************************** */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __RADIO_DEF_H__ #define __RADIO_DEF_H__ #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ #include #include /* Public typedef -----------------------------------------------------------*/ /*! * API return status */ typedef enum radio_status_e { RADIO_STATUS_OK, RADIO_STATUS_UNSUPPORTED_FEATURE, RADIO_STATUS_UNKNOWN_VALUE, RADIO_STATUS_ERROR, } radio_status_t; /*! * Radio driver supported modems */ typedef enum { MODEM_FSK = 0, MODEM_LORA, MODEM_MSK, MODEM_BPSK, MODEM_SIGFOX_TX, MODEM_SIGFOX_RX, }RadioModems_t; /*! * \brief Radio driver callback functions */ typedef struct { /*! * \brief Tx Done callback prototype. */ void ( *TxDone )( void ); /*! * \brief Tx Timeout callback prototype. */ void ( *TxTimeout )( void ); /*! * \brief Rx Done callback prototype. * * \param [in] payload Received buffer pointer * \param [in] size Received buffer size * \param [in] rssi RSSI value computed while receiving the frame [dBm] * \param [in] LoraSnr_FskCfo * FSK : Carrier Frequency Offset in kHz * LoRa: SNR value in dB */ void ( *RxDone )( uint8_t *payload, uint16_t size, int16_t rssi, int8_t LoraSnr_FskCfo ); /*! * \brief Rx Timeout callback prototype. */ void ( *RxTimeout )( void ); /*! * \brief Rx Error callback prototype. */ void ( *RxError )( void ); /*! * \brief FHSS Change Channel callback prototype. * * \param [in] currentChannel Index number of the current channel */ void ( *FhssChangeChannel )( uint8_t currentChannel ); /*! * \brief CAD Done callback prototype. * * \param [in] channelDetected Channel Activity detected during the CAD */ void ( *CadDone ) ( bool channelActivityDetected ); }RadioEvents_t; #ifdef __cplusplus } #endif #endif // __RADIO_DEF_H__