fholin fholin / Mbed 2 deprecated MiniMousetest

Dependencies:   mbed

Committer:
fholin
Date:
Fri Dec 15 13:15:04 2017 +0000
Revision:
0:2325d1d28df3
Child:
1:eda561b01daf
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fholin 0:2325d1d28df3 1 /*
fholin 0:2325d1d28df3 2
fholin 0:2325d1d28df3 3 __ __ _ _
fholin 0:2325d1d28df3 4 | \/ (_) (_)
fholin 0:2325d1d28df3 5 | \ / |_ _ __ _ _ __ ___ ___ _ _ ___ ___
fholin 0:2325d1d28df3 6 | |\/| | | '_ \| | '_ ` _ \ / _ \| | | / __|/ _ \
fholin 0:2325d1d28df3 7 | | | | | | | | | | | | | | (_) | |_| \__ \ __/
fholin 0:2325d1d28df3 8 |_| |_|_|_| |_|_|_| |_| |_|\___/ \__,_|___/\___|
fholin 0:2325d1d28df3 9
fholin 0:2325d1d28df3 10
fholin 0:2325d1d28df3 11 Description : Dedine for loraMac Layer.
fholin 0:2325d1d28df3 12
fholin 0:2325d1d28df3 13
fholin 0:2325d1d28df3 14 License : Revised BSD License, see LICENSE.TXT file include in the project
fholin 0:2325d1d28df3 15
fholin 0:2325d1d28df3 16 Maintainer : Fabien Holin (SEMTECH)
fholin 0:2325d1d28df3 17 */
fholin 0:2325d1d28df3 18 #ifndef DEFINE_H
fholin 0:2325d1d28df3 19 #define DEFINE_H
fholin 0:2325d1d28df3 20 #include "mbed.h"
fholin 0:2325d1d28df3 21
fholin 0:2325d1d28df3 22 /********************************************************************************/
fholin 0:2325d1d28df3 23 /* LoraWan Process States */
fholin 0:2325d1d28df3 24 /********************************************************************************/
fholin 0:2325d1d28df3 25
fholin 0:2325d1d28df3 26 typedef enum LoraWan_Process_States {
fholin 0:2325d1d28df3 27 LWPSTATE_IDLE ,
fholin 0:2325d1d28df3 28 LWPSTATE_SEND ,
fholin 0:2325d1d28df3 29 LWPSTATE_RX1 ,
fholin 0:2325d1d28df3 30 LWPSTATE_RX2 ,
fholin 0:2325d1d28df3 31 LWPSTATE_PROCESSDOWNLINK ,
fholin 0:2325d1d28df3 32 LWPSTATE_UPDATEMAC,
fholin 0:2325d1d28df3 33 LWPSTATE_TXWAIT,
fholin 0:2325d1d28df3 34 LWPSTATE_ERROR
fholin 0:2325d1d28df3 35 } eLoraWan_Process_States;
fholin 0:2325d1d28df3 36 /********************************************************************************/
fholin 0:2325d1d28df3 37 /* Timer Process States */
fholin 0:2325d1d28df3 38 /********************************************************************************/
fholin 0:2325d1d28df3 39 enum{
fholin 0:2325d1d28df3 40 TIMERSTATE_SLEEP,
fholin 0:2325d1d28df3 41 TIMERSTATE_RUNNING
fholin 0:2325d1d28df3 42 };
fholin 0:2325d1d28df3 43
fholin 0:2325d1d28df3 44 /*****************************************************************************/
fholin 0:2325d1d28df3 45 /* Radio Process States */
fholin 0:2325d1d28df3 46 /*****************************************************************************/
fholin 0:2325d1d28df3 47
fholin 0:2325d1d28df3 48 enum{
fholin 0:2325d1d28df3 49 RADIOSTATE_IDLE,
fholin 0:2325d1d28df3 50 RADIOSTATE_TXON,
fholin 0:2325d1d28df3 51 RADIOSTATE_TXFINISHED,
fholin 0:2325d1d28df3 52 RADIOSTATE_RX1FINISHED,
fholin 0:2325d1d28df3 53 // RADIOSTATE_RX2FINISHED
fholin 0:2325d1d28df3 54 };
fholin 0:2325d1d28df3 55
fholin 0:2325d1d28df3 56
fholin 0:2325d1d28df3 57 /********************************************************************************/
fholin 0:2325d1d28df3 58 /* LoraWan Mac Layer Parameters */
fholin 0:2325d1d28df3 59 /********************************************************************************/
fholin 0:2325d1d28df3 60 enum{
fholin 0:2325d1d28df3 61 JOINREQUEST,
fholin 0:2325d1d28df3 62 JOINACCEPT,
fholin 0:2325d1d28df3 63 UNCONFDATAUP,
fholin 0:2325d1d28df3 64 UNCONFDATADOWN,
fholin 0:2325d1d28df3 65 CONFDATAUP,
fholin 0:2325d1d28df3 66 CONFDATADOWN,
fholin 0:2325d1d28df3 67 REJOINREQUEST,
fholin 0:2325d1d28df3 68 PROPRIETARY,
fholin 0:2325d1d28df3 69 };
fholin 0:2325d1d28df3 70
fholin 0:2325d1d28df3 71 enum{
fholin 0:2325d1d28df3 72 LORAWANR1,
fholin 0:2325d1d28df3 73 RFU,
fholin 0:2325d1d28df3 74 };
fholin 0:2325d1d28df3 75
fholin 0:2325d1d28df3 76 enum {
fholin 0:2325d1d28df3 77 LINK_CHECK_REQ,
fholin 0:2325d1d28df3 78 LINK_CHECK_ANS,
fholin 0:2325d1d28df3 79 LINK_ADR_REQ,
fholin 0:2325d1d28df3 80 LINK_ADR_ANS,
fholin 0:2325d1d28df3 81 DUTY_CYCLE_REQ,
fholin 0:2325d1d28df3 82 DUTY_CYCLE_ANS,
fholin 0:2325d1d28df3 83 RXPARRAM_SETUP_REQ,
fholin 0:2325d1d28df3 84 RXPARRAM_SETUP_ANS,
fholin 0:2325d1d28df3 85 DEV_STATUS_REQ,
fholin 0:2325d1d28df3 86 DEV_STATUS_ANS,
fholin 0:2325d1d28df3 87 NEW_CHANNEL_REQ,
fholin 0:2325d1d28df3 88 NEW_CHANNEL_ANS,
fholin 0:2325d1d28df3 89 RXTIMING_SETUP_REQ,
fholin 0:2325d1d28df3 90 RXTIMING_SETUP_ANS,
fholin 0:2325d1d28df3 91 };
fholin 0:2325d1d28df3 92 #define RX1DELAY 1000 // define in ms
fholin 0:2325d1d28df3 93 #define RX1DELAYJOIN 5000 // define in ms
fholin 0:2325d1d28df3 94 #define MAX_FCNT_GAP 16384
fholin 0:2325d1d28df3 95 #define MINLORAWANPAYLOADSIZE 13
fholin 0:2325d1d28df3 96 #define PORTNWK 0
fholin 0:2325d1d28df3 97 /*****************************************************************************/
fholin 0:2325d1d28df3 98 /* Lora Phy Irg Flags Parameters */
fholin 0:2325d1d28df3 99 /*****************************************************************************/
fholin 0:2325d1d28df3 100
fholin 0:2325d1d28df3 101 enum{
fholin 0:2325d1d28df3 102 RXTIMEOUTIRQFLAG = 0x80,
fholin 0:2325d1d28df3 103 RECEIVEPACKETIRQFLAG = 0x40,
fholin 0:2325d1d28df3 104 BADPACKETIRQFLAG = 0x60,
fholin 0:2325d1d28df3 105 };
fholin 0:2325d1d28df3 106
fholin 0:2325d1d28df3 107
fholin 0:2325d1d28df3 108 /********************************************************************************/
fholin 0:2325d1d28df3 109 /* Code implementation Parameters */
fholin 0:2325d1d28df3 110 /********************************************************************************/
fholin 0:2325d1d28df3 111 #define MSB32FIRST( x ) ( ( ( x & 0x000000FF ) << 24 ) + ( ( x & 0x0000FF00 ) << 8 ) + ( ( x & 0x00FF0000 ) >> 8 ) + ( ( x & 0xFF000000 ) >> 24 ) )
fholin 0:2325d1d28df3 112 #define MSB16FIRST( x ) ( ( ( x & 0x00FF ) << 8 ) + ( ( x & 0xFF00 ) >> 8 ) )
fholin 0:2325d1d28df3 113 #define MAXTXPAYLOADSIZE 255
fholin 0:2325d1d28df3 114 #define FHDROFFSET 9 // MHDR+FHDR offset if OPT = 0 + fport
fholin 0:2325d1d28df3 115 #define MICSIZE 4
fholin 0:2325d1d28df3 116 #define FLASH_UPDATE_PERIOD 4
fholin 0:2325d1d28df3 117 /*!
fholin 0:2325d1d28df3 118 * Frame direction definition for up-link communications
fholin 0:2325d1d28df3 119 */
fholin 0:2325d1d28df3 120 #define UP_LINK 0
fholin 0:2325d1d28df3 121
fholin 0:2325d1d28df3 122 /*!
fholin 0:2325d1d28df3 123 * Frame direction definition for down-link communications
fholin 0:2325d1d28df3 124 */
fholin 0:2325d1d28df3 125 #define DOWN_LINK 1
fholin 0:2325d1d28df3 126
fholin 0:2325d1d28df3 127 /*User Confi for Adr Mode select*/
fholin 0:2325d1d28df3 128 typedef enum eDataRateStrategy{
fholin 0:2325d1d28df3 129 STATICADRMODE,
fholin 0:2325d1d28df3 130 MOBILELONGRANGEADRMODE,
fholin 0:2325d1d28df3 131 MOBILELOWPOWERADRMODE,
fholin 0:2325d1d28df3 132 } eDataRateStrategy;
fholin 0:2325d1d28df3 133
fholin 0:2325d1d28df3 134 enum {
fholin 0:2325d1d28df3 135 ERRORLORAWAN = -1,
fholin 0:2325d1d28df3 136 OKLORAWAN = 0,
fholin 0:2325d1d28df3 137 };
fholin 0:2325d1d28df3 138
fholin 0:2325d1d28df3 139 enum {
fholin 0:2325d1d28df3 140 NOVALIDRXPACKET,
fholin 0:2325d1d28df3 141 USERRXPACKET,
fholin 0:2325d1d28df3 142 NWKRXPACKET,
fholin 0:2325d1d28df3 143 JOINACCEPTPACKET,
fholin 0:2325d1d28df3 144 };
fholin 0:2325d1d28df3 145 enum {
fholin 0:2325d1d28df3 146 RX1,
fholin 0:2325d1d28df3 147 RX2
fholin 0:2325d1d28df3 148 };
fholin 0:2325d1d28df3 149 /*************************/
fholin 0:2325d1d28df3 150 /* SHARE WITH USER */
fholin 0:2325d1d28df3 151 /*************************/
fholin 0:2325d1d28df3 152 enum {
fholin 0:2325d1d28df3 153 NOLORARXPACKETAVAILABLE,
fholin 0:2325d1d28df3 154 LORARXPACKETAVAILABLE,
fholin 0:2325d1d28df3 155 };
fholin 0:2325d1d28df3 156
fholin 0:2325d1d28df3 157 enum {
fholin 0:2325d1d28df3 158 NOTJOINED,
fholin 0:2325d1d28df3 159 ISJOINED,
fholin 0:2325d1d28df3 160 };
fholin 0:2325d1d28df3 161
fholin 0:2325d1d28df3 162 enum {
fholin 0:2325d1d28df3 163 NOFRAME_TOSEND,
fholin 0:2325d1d28df3 164 NWKFRAME_TOSEND,
fholin 0:2325d1d28df3 165 USERACK_TOSEND,
fholin 0:2325d1d28df3 166 };
fholin 0:2325d1d28df3 167
fholin 0:2325d1d28df3 168 /*************************/
fholin 0:2325d1d28df3 169 /* API CRYPTO */
fholin 0:2325d1d28df3 170 /*************************/
fholin 0:2325d1d28df3 171 enum {
fholin 0:2325d1d28df3 172 UNICASTKEY,
fholin 0:2325d1d28df3 173 };
fholin 0:2325d1d28df3 174 #endif
fholin 0:2325d1d28df3 175 /* pense bete minimouse)
fholin 0:2325d1d28df3 176
fholin 0:2325d1d28df3 177 SendPayload(uint8_t fPort,const uint8_t* dataIn,const uint16_t sizeIn, uint8_t* dataReceive,uint16_t *sizeOut) api
fholin 0:2325d1d28df3 178 loraWanContainer.MType = UNCONFDATAUP;//tbupdate Mtype should become a parameter of SendPayload */