mQ Branch for NA mote testing

Dependencies:   LoRaWAN-lib SX1272Lib-mQ lib_gps lib_mma8451q lib_mpl3115a2 mbed

Fork of LoRaWAN-NAMote72-Application-Demo by Semtech

Committer:
ubhat
Date:
Tue May 17 00:21:55 2016 +0000
Revision:
0:69f2e28d12c1
Child:
5:6ffeac53b7cb
Project for LoRa Bootcamp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ubhat 0:69f2e28d12c1 1 /*
ubhat 0:69f2e28d12c1 2 / _____) _ | |
ubhat 0:69f2e28d12c1 3 ( (____ _____ ____ _| |_ _____ ____| |__
ubhat 0:69f2e28d12c1 4 \____ \| ___ | (_ _) ___ |/ ___) _ \
ubhat 0:69f2e28d12c1 5 _____) ) ____| | | || |_| ____( (___| | | |
ubhat 0:69f2e28d12c1 6 (______/|_____)_|_|_| \__)_____)\____)_| |_|
ubhat 0:69f2e28d12c1 7 (C)2015 Semtech
ubhat 0:69f2e28d12c1 8
ubhat 0:69f2e28d12c1 9 Description: Process function calls from various Device states
ubhat 0:69f2e28d12c1 10
ubhat 0:69f2e28d12c1 11 License: Revised BSD License, see LICENSE.TXT file include in the project
ubhat 0:69f2e28d12c1 12
ubhat 0:69f2e28d12c1 13 Maintainer: Uttam Bhat
ubhat 0:69f2e28d12c1 14 */
ubhat 0:69f2e28d12c1 15 #ifndef __LORA_DEVICE_STATE_H__
ubhat 0:69f2e28d12c1 16 #define __LORA_DEVICE_STATE_H__
ubhat 0:69f2e28d12c1 17
ubhat 0:69f2e28d12c1 18 #include "Common.h"
ubhat 0:69f2e28d12c1 19 #include "board.h"
ubhat 0:69f2e28d12c1 20 #include "LoRaMac.h"
ubhat 0:69f2e28d12c1 21 #include "LoRaEventProc.h"
ubhat 0:69f2e28d12c1 22 #include "SerialDisplay.h"
ubhat 0:69f2e28d12c1 23 #include "mbed.h"
ubhat 0:69f2e28d12c1 24 #include "LoRaMacLayerService.h"
ubhat 0:69f2e28d12c1 25
ubhat 0:69f2e28d12c1 26 /*!
ubhat 0:69f2e28d12c1 27 * Strucure containing the Uplink status
ubhat 0:69f2e28d12c1 28 */
ubhat 0:69f2e28d12c1 29 struct sLoRaMacUplinkStatus
ubhat 0:69f2e28d12c1 30 {
ubhat 0:69f2e28d12c1 31 /*!
ubhat 0:69f2e28d12c1 32 * MCPS-Request type
ubhat 0:69f2e28d12c1 33 */
ubhat 0:69f2e28d12c1 34 Mcps_t Type;
ubhat 0:69f2e28d12c1 35 uint8_t Acked;
ubhat 0:69f2e28d12c1 36 int8_t Datarate;
ubhat 0:69f2e28d12c1 37 uint16_t UplinkCounter;
ubhat 0:69f2e28d12c1 38 uint8_t Port;
ubhat 0:69f2e28d12c1 39 uint8_t *Buffer;
ubhat 0:69f2e28d12c1 40 uint8_t BufferSize;
ubhat 0:69f2e28d12c1 41 int8_t TxPower;
ubhat 0:69f2e28d12c1 42 };
ubhat 0:69f2e28d12c1 43
ubhat 0:69f2e28d12c1 44 /*!
ubhat 0:69f2e28d12c1 45 * Strucure containing the Downlink status
ubhat 0:69f2e28d12c1 46 */
ubhat 0:69f2e28d12c1 47 struct sLoRaMacDownlinkStatus
ubhat 0:69f2e28d12c1 48 {
ubhat 0:69f2e28d12c1 49 int16_t Rssi;
ubhat 0:69f2e28d12c1 50 int8_t Snr;
ubhat 0:69f2e28d12c1 51 uint16_t DownlinkCounter;
ubhat 0:69f2e28d12c1 52 bool RxData;
ubhat 0:69f2e28d12c1 53 uint8_t Port;
ubhat 0:69f2e28d12c1 54 uint8_t *Buffer;
ubhat 0:69f2e28d12c1 55 uint8_t BufferSize;
ubhat 0:69f2e28d12c1 56 uint8_t RxSlot;
ubhat 0:69f2e28d12c1 57 };
ubhat 0:69f2e28d12c1 58
ubhat 0:69f2e28d12c1 59 /*!
ubhat 0:69f2e28d12c1 60 * Device states
ubhat 0:69f2e28d12c1 61 */
ubhat 0:69f2e28d12c1 62 enum eDevicState
ubhat 0:69f2e28d12c1 63 {
ubhat 0:69f2e28d12c1 64 DEVICE_STATE_INIT,
ubhat 0:69f2e28d12c1 65 DEVICE_STATE_JOIN,
ubhat 0:69f2e28d12c1 66 DEVICE_STATE_SEND,
ubhat 0:69f2e28d12c1 67 DEVICE_STATE_CYCLE,
ubhat 0:69f2e28d12c1 68 DEVICE_STATE_SLEEP
ubhat 0:69f2e28d12c1 69 };
ubhat 0:69f2e28d12c1 70
ubhat 0:69f2e28d12c1 71 extern sLoRaMacUplinkStatus LoRaMacUplinkStatus;
ubhat 0:69f2e28d12c1 72
ubhat 0:69f2e28d12c1 73 extern sLoRaMacDownlinkStatus LoRaMacDownlinkStatus;
ubhat 0:69f2e28d12c1 74
ubhat 0:69f2e28d12c1 75 extern eDevicState DeviceState;
ubhat 0:69f2e28d12c1 76
ubhat 0:69f2e28d12c1 77 /*!
ubhat 0:69f2e28d12c1 78 * \brief Initialize Device: Timer, MAC Services, MAC
ubhat 0:69f2e28d12c1 79 */
ubhat 0:69f2e28d12c1 80 void DeviceInit( void );
ubhat 0:69f2e28d12c1 81
ubhat 0:69f2e28d12c1 82 /*!
ubhat 0:69f2e28d12c1 83 * \brief Device Join update
ubhat 0:69f2e28d12c1 84 */
ubhat 0:69f2e28d12c1 85 void DeviceJoinUpdate( void );
ubhat 0:69f2e28d12c1 86
ubhat 0:69f2e28d12c1 87 /*!
ubhat 0:69f2e28d12c1 88 * \brief OTA: if device not joined, send JOIN REQUEST to network
ubhat 0:69f2e28d12c1 89 * ABP: Request DevAddr if not already set
ubhat 0:69f2e28d12c1 90 */
ubhat 0:69f2e28d12c1 91 void DeviceJoin( void );
ubhat 0:69f2e28d12c1 92
ubhat 0:69f2e28d12c1 93 /*!
ubhat 0:69f2e28d12c1 94 * \brief Prepares the payload of the frame to be transmitted
ubhat 0:69f2e28d12c1 95 *
ubhat 0:69f2e28d12c1 96 * \param [IN] port application port corresponding to which payload is generated
ubhat 0:69f2e28d12c1 97 */
ubhat 0:69f2e28d12c1 98 void PrepareTxFrame( uint8_t port );
ubhat 0:69f2e28d12c1 99
ubhat 0:69f2e28d12c1 100 /*!
ubhat 0:69f2e28d12c1 101 * \brief Send the frame
ubhat 0:69f2e28d12c1 102 *
ubhat 0:69f2e28d12c1 103 */
ubhat 0:69f2e28d12c1 104 bool SendFrame( void );
ubhat 0:69f2e28d12c1 105
ubhat 0:69f2e28d12c1 106 #endif // __LORA_DEVICE_STATE_H__