1 /*!
2  * \file      LmhpCompliance.h
3  *
4  * \brief     Implements the LoRa-Alliance certification protocol handling
5  *
6  * \copyright Revised BSD License, see section \ref LICENSE.
7  *
8  * \code
9  *                ______                              _
10  *               / _____)             _              | |
11  *              ( (____  _____ ____ _| |_ _____  ____| |__
12  *               \____ \| ___ |    (_   _) ___ |/ ___)  _ \
13  *               _____) ) ____| | | || |_| ____( (___| | | |
14  *              (______/|_____)_|_|_| \__)_____)\____)_| |_|
15  *              (C)2013-2018 Semtech
16  *
17  * \endcode
18  *
19  * \author    Miguel Luis ( Semtech )
20  */
21 #ifndef __LMHP_COMPLIANCE__
22 #define __LMHP_COMPLIANCE__
23 
24 #include "LoRaMac.h"
25 #include "LmHandlerTypes.h"
26 #include "LmhPackage.h"
27 
28 /*!
29  * Compliance package identifier.
30  *
31  * \remark This value must be unique amongst the packages
32  */
33 #define PACKAGE_ID_COMPLIANCE                       0
34 
35 /*!
36  * Compliance test protocol handler parameters
37  */
38 typedef struct LmhpComplianceParams_s
39 {
40     /*!
41      * Current firmware version
42      */
43     Version_t FwVersion;
44     /*!
45      *
46      */
47     void ( *OnTxPeriodicityChanged )( uint32_t periodicity );
48     /*!
49      *
50      */
51     void ( *OnTxFrameCtrlChanged )( LmHandlerMsgTypes_t isTxConfirmed );
52     /*!
53      *
54      */
55     void ( *OnPingSlotPeriodicityChanged )( uint8_t pingSlotPeriodicity );
56 }LmhpComplianceParams_t;
57 
58 LmhPackage_t *LmphCompliancePackageFactory( void );
59 
60 #endif // __LMHP_COMPLIANCE__
61