STM32CubeWL/Middlewares/Third_Party/SubGHz_Phy/radio_def.h

124 lines
3.1 KiB
C

/*!
* \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 <stdint.h>
#include <stdbool.h>
/* 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__