light sensor

Dependencies:   X_NUCLEO_IKS01A1 LoRaWAN-lib SX1276Lib mbed

Fork of LoRaWAN-SX1276-Application-Demo by Uttam Bhat

Committer:
ubhat
Date:
Fri Aug 26 19:36:35 2016 +0000
Revision:
0:42863a11464a
SX1276 Shield based Applications

Who changed what in which revision?

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