1 /*------------------------------------------------------------------------------------------------*/
2 /* Unicens Integration Helper Component */
3 /* Copyright 2017, Microchip Technology Inc. and its subsidiaries. */
5 /* Redistribution and use in source and binary forms, with or without */
6 /* modification, are permitted provided that the following conditions are met: */
8 /* 1. Redistributions of source code must retain the above copyright notice, this */
9 /* list of conditions and the following disclaimer. */
11 /* 2. Redistributions in binary form must reproduce the above copyright notice, */
12 /* this list of conditions and the following disclaimer in the documentation */
13 /* and/or other materials provided with the distribution. */
15 /* 3. Neither the name of the copyright holder nor the names of its */
16 /* contributors may be used to endorse or promote products derived from */
17 /* this software without specific prior written permission. */
19 /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */
20 /* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE */
21 /* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
22 /* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE */
23 /* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL */
24 /* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR */
25 /* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */
26 /* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */
27 /* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */
28 /* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
29 /*------------------------------------------------------------------------------------------------*/
30 #ifndef UNICENSINTEGRATION_H_
31 #define UNICENSINTEGRATION_H_
33 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
34 /* USER ADJUSTABLE VALUES */
35 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
37 #define ENABLE_INIC_WATCHDOG (true)
38 #define ENABLE_AMS_LIB (true)
40 #define BOARD_PMS_TX_SIZE (72)
41 #define CMD_QUEUE_LEN (6)
49 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
51 /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
54 * \brief Internal enum for Unicens Integration
58 /**Result is OK and the processing is finished. Safe to dequeue this command.*/
59 UniCmdResult_OK_ProcessFinished,
60 /**Result is OK but the processing is ongoing. Must wait for callback.*/
61 UniCmdResult_OK_NeedToWaitForCB,
62 /**Result is error and the processing is finished. Safe to dequeue this command.*/
63 UniCmdResult_ERROR_ProcessFinished
67 * \brief Internal enum for Unicens Integration
74 UnicensCmd_RmSetRoute,
79 * \brief Internal struct for Unicens Integration
83 const Ucs_InitData_t *init_ptr;
87 * \brief Internal struct for Unicens Integration
91 Ucs_Rm_Route_t *routePtr;
93 } UnicensCmdRmSetRoute_t;
96 * \brief Internal struct for Unicens Integration
100 Ucs_Rm_Node_t * node_ptr;
104 * \brief Internal struct for Unicens Integration
111 UnicensCmdInit_t Init;
112 UnicensCmdRmSetRoute_t RmSetRoute;
113 UnicensCmdNsRun_t NsRun;
118 * \brief Internal variables for one instance of Unicens Integration
119 * \note Never touch any of this fields!
122 volatile uint8_t *dataQueue;
123 volatile uint8_t *pRx;
124 volatile uint8_t *pTx;
125 volatile uint32_t amountOfEntries;
126 volatile uint32_t sizeOfEntry;
127 volatile uint32_t rxPos;
128 volatile uint32_t txPos;
132 * \brief Internal variables for one instance of Unicens Integration
133 * \note Allocate this structure for each instance (static or malloc)
134 * and pass it to UCSI_Init()
135 * \note Never touch any of this fields!
143 uint8_t rbBuf[(CMD_QUEUE_LEN * sizeof(UnicensCmdEntry_t))];
145 Ucs_InitData_t uniInitData;
147 Ucs_Lld_Api_t *uniLld;
149 UnicensCmdEntry_t *currentCmd;
152 #endif /* UNICENSINTEGRATION_H_ */