102 lines
2.5 KiB
C
102 lines
2.5 KiB
C
/*!
|
|
* \file LmhpCompliance.h
|
|
*
|
|
* \brief Implements the LoRa-Alliance certification protocol handling
|
|
*
|
|
* \copyright Revised BSD License, see section \ref LICENSE.
|
|
*
|
|
* \code
|
|
* ______ _
|
|
* / _____) _ | |
|
|
* ( (____ _____ ____ _| |_ _____ ____| |__
|
|
* \____ \| ___ | (_ _) ___ |/ ___) _ \
|
|
* _____) ) ____| | | || |_| ____( (___| | | |
|
|
* (______/|_____)_|_|_| \__)_____)\____)_| |_|
|
|
* (C)2013-2018 Semtech
|
|
*
|
|
* \endcode
|
|
*
|
|
* \author Miguel Luis ( Semtech )
|
|
*/
|
|
#ifndef __LMHP_COMPLIANCE__
|
|
#define __LMHP_COMPLIANCE__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include "LmhPackage.h"
|
|
#include "LoRaMacVersion.h"
|
|
|
|
/*!
|
|
* Compliance package identifier.
|
|
*
|
|
* \remark This value must be unique amongst the packages
|
|
*/
|
|
#define PACKAGE_ID_COMPLIANCE 0
|
|
|
|
#if (defined( LORAMAC_VERSION ) && ( LORAMAC_VERSION == 0x01000300 ))
|
|
/*!
|
|
* Compliance test protocol handler parameters
|
|
*/
|
|
typedef struct LmhpComplianceParams_s
|
|
{
|
|
/*!
|
|
* Holds the ADR state
|
|
*/
|
|
bool AdrEnabled;
|
|
/*!
|
|
* LoRaWAN ETSI duty cycle control enable/disable
|
|
*
|
|
* \remark Please note that ETSI mandates duty cycled transmissions. Use only for test purposes
|
|
*/
|
|
bool DutyCycleEnabled;
|
|
/*!
|
|
* Stops unnecessary peripherals.
|
|
*
|
|
* \remark Use for the compliance tests protocol handling in order to
|
|
* reduce the power consumption.
|
|
*/
|
|
void ( *StopPeripherals )( void );
|
|
/*!
|
|
* Starts previously stopped peripherals.
|
|
*
|
|
* \remark Use for the compliance tests protocol handling in order to
|
|
* reduce the power consumption.
|
|
*/
|
|
void ( *StartPeripherals )( void );
|
|
} LmhpComplianceParams_t;
|
|
#elif (defined( LORAMAC_VERSION ) && (( LORAMAC_VERSION == 0x01000400 ) || ( LORAMAC_VERSION == 0x01010100 )))
|
|
/*!
|
|
* Compliance test protocol handler parameters
|
|
*/
|
|
typedef struct LmhpComplianceParams_s
|
|
{
|
|
/*!
|
|
* Current firmware version
|
|
*/
|
|
Version_t FwVersion;
|
|
/*!
|
|
*
|
|
*/
|
|
void ( *OnTxPeriodicityChanged )( uint32_t periodicity );
|
|
/*!
|
|
*
|
|
*/
|
|
void ( *OnTxFrameCtrlChanged )( LmHandlerMsgTypes_t isTxConfirmed );
|
|
/*!
|
|
*
|
|
*/
|
|
void ( *OnPingSlotPeriodicityChanged )( uint8_t pingSlotPeriodicity );
|
|
} LmhpComplianceParams_t;
|
|
#endif /* LORAMAC_VERSION */
|
|
|
|
LmhPackage_t *LmhpCompliancePackageFactory( void );
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __LMHP_COMPLIANCE__ */
|