fholin fholin / Mbed 2 deprecated MiniMousetest

Dependencies:   mbed

MinimouseSrc/Define.h

Committer:
fholin
Date:
2017-12-15
Revision:
0:2325d1d28df3
Child:
1:eda561b01daf

File content as of revision 0:2325d1d28df3:

/*

  __  __ _       _                                 
 |  \/  (_)     (_)                                
 | \  / |_ _ __  _ _ __ ___   ___  _   _ ___  ___  
 | |\/| | | '_ \| | '_ ` _ \ / _ \| | | / __|/ _ \
 | |  | | | | | | | | | | | | (_) | |_| \__ \  __/ 
 |_|  |_|_|_| |_|_|_| |_| |_|\___/ \__,_|___/\___| 
                                                   
                                                   
Description       : Dedine for loraMac Layer.  


License           : Revised BSD License, see LICENSE.TXT file include in the project

Maintainer        : Fabien Holin (SEMTECH)
*/
#ifndef DEFINE_H
#define DEFINE_H
#include "mbed.h"

/********************************************************************************/
/*                         LoraWan Process States                               */
/********************************************************************************/

typedef enum LoraWan_Process_States {
    LWPSTATE_IDLE ,
    LWPSTATE_SEND ,
    LWPSTATE_RX1 ,
    LWPSTATE_RX2 ,
    LWPSTATE_PROCESSDOWNLINK ,
    LWPSTATE_UPDATEMAC,
    LWPSTATE_TXWAIT,    
    LWPSTATE_ERROR
} eLoraWan_Process_States;
/********************************************************************************/
/*                           Timer Process States                               */
/********************************************************************************/
enum{
    TIMERSTATE_SLEEP,
    TIMERSTATE_RUNNING
};

/*****************************************************************************/
/*                                 Radio Process States                      */
/*****************************************************************************/

enum{
    RADIOSTATE_IDLE,
    RADIOSTATE_TXON,
    RADIOSTATE_TXFINISHED,
    RADIOSTATE_RX1FINISHED,
//    RADIOSTATE_RX2FINISHED
};


/********************************************************************************/
/*                   LoraWan Mac Layer Parameters                               */
/********************************************************************************/
enum{
    JOINREQUEST,
    JOINACCEPT,
    UNCONFDATAUP,
    UNCONFDATADOWN,
    CONFDATAUP,
    CONFDATADOWN,
    REJOINREQUEST,
    PROPRIETARY,
};

enum{
    LORAWANR1,
    RFU,
};

enum {
    LINK_CHECK_REQ,
    LINK_CHECK_ANS,
    LINK_ADR_REQ,
    LINK_ADR_ANS,
    DUTY_CYCLE_REQ,
    DUTY_CYCLE_ANS,
    RXPARRAM_SETUP_REQ,
    RXPARRAM_SETUP_ANS,
    DEV_STATUS_REQ,
    DEV_STATUS_ANS,
    NEW_CHANNEL_REQ,
    NEW_CHANNEL_ANS,
    RXTIMING_SETUP_REQ,
    RXTIMING_SETUP_ANS,
};
#define RX1DELAY              1000 // define in ms
#define RX1DELAYJOIN          5000 // define in ms
#define MAX_FCNT_GAP          16384
#define MINLORAWANPAYLOADSIZE 13
#define PORTNWK 0
/*****************************************************************************/
/*                   Lora Phy Irg Flags Parameters                           */
/*****************************************************************************/

enum{
    RXTIMEOUTIRQFLAG     = 0x80,
    RECEIVEPACKETIRQFLAG = 0x40,
    BADPACKETIRQFLAG = 0x60,
};


/********************************************************************************/
/*                   Code implementation Parameters                             */
/********************************************************************************/
#define MSB32FIRST( x ) ( ( ( x & 0x000000FF ) << 24 ) + ( ( x & 0x0000FF00 ) << 8 ) + ( ( x & 0x00FF0000 ) >> 8 ) + ( ( x & 0xFF000000 ) >> 24 ) )
#define MSB16FIRST( x ) ( ( ( x & 0x00FF ) << 8 ) + ( ( x & 0xFF00 ) >> 8 ) )
#define MAXTXPAYLOADSIZE 255
#define FHDROFFSET 9 // MHDR+FHDR offset if OPT = 0 + fport
#define MICSIZE 4
#define FLASH_UPDATE_PERIOD 4
/*!
 * Frame direction definition for up-link communications
 */
#define UP_LINK                                     0

/*!
 * Frame direction definition for down-link communications
 */
#define DOWN_LINK                                   1

/*User Confi for Adr Mode select*/
typedef enum eDataRateStrategy{
    STATICADRMODE,
    MOBILELONGRANGEADRMODE,
    MOBILELOWPOWERADRMODE,
} eDataRateStrategy;

enum { 
    ERRORLORAWAN = -1,
    OKLORAWAN    = 0,
};

enum {
    NOVALIDRXPACKET,
    USERRXPACKET,
    NWKRXPACKET,
    JOINACCEPTPACKET,
};
enum {
    RX1,
    RX2
};
/*************************/
/*    SHARE WITH USER    */
/*************************/
enum {
    NOLORARXPACKETAVAILABLE,
    LORARXPACKETAVAILABLE,
};

enum { 
    NOTJOINED,
    ISJOINED,
};

enum { 
    NOFRAME_TOSEND,
    NWKFRAME_TOSEND,
    USERACK_TOSEND,
};

/*************************/
/*    API CRYPTO         */
/*************************/
enum { 
    UNICASTKEY,
};
#endif
/* pense bete minimouse)

 SendPayload(uint8_t fPort,const uint8_t* dataIn,const uint16_t sizeIn, uint8_t* dataReceive,uint16_t *sizeOut) api
loraWanContainer.MType = UNCONFDATAUP;//tbupdate Mtype should become a parameter of SendPayload */