A very easy to understand LoRaWAN-node code.

Dependencies:   LoRaWAN-lib SX1272Lib X_NUCLEO_IKS01A1 mbed

Important parameters:

• In comissioning.h: DevEUI, AppEUI, AppKEY, DevADR, NwksKEY, AppsKEY, OTAA and public network. Frequency and channel block to use, confirmed or unconfirmed messages, app port, app data size and OTAA and Tx duty cycles.

• In LoRaMac.h: Maximum payload and MAC commands length, receive delays, max FCNT, adr ack limit, timeout and delay, max ack retries, rssi threshold and sync words.

• In LoRaMac.cpp: Maximum payload, MAC commands and FRMpayload length.

• In LoRaMac-board.h: Tx power, data rates and band settings.

NOTE: Please refer to LoRaWAN regional parameters (page 12 for US band) to know which parameters you can modify.

Code/Common.h

Committer:
dgabino
Date:
2018-04-03
Revision:
0:60ff878b27b8

File content as of revision 0:60ff878b27b8:

/*
 / _____)             _              | |
( (____  _____ ____ _| |_ _____  ____| |__
 \____ \| ___ |    (_   _) ___ |/ ___)  _ \
 _____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
    (C)2015 Semtech

Description: Extern declaration of parameters defined in main.cpp

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

Maintainer: Uttam Bhat
*/
#ifndef __COMMON_H__
#define __COMMON_H__

#include "Comissioning.h"
#include "board.h"


/*!
 * User application data buffer size
 */
#define LORAWAN_APP_DATA_MAX_SIZE                           64

/*!
 * Current network ID
 */
#define LORAWAN_NETWORK_ID                          ( uint32_t )0


#if( OVER_THE_AIR_ACTIVATION != 0 )
/*!
 * Over the Air Activation 
 */

extern uint8_t DevEui[];
extern uint8_t AppEui[];
extern uint8_t AppKey[];

#else
/*!
 * Activation by Personalization 
 */

extern uint8_t NwkSKey[];
extern uint8_t AppSKey[];
extern uint32_t DevAddr;

#endif


extern uint8_t AppData[LORAWAN_APP_DATA_MAX_SIZE]; //  User application data size

extern uint8_t AppPort; // Application port

extern uint8_t AppDataSize; // Application size

extern uint8_t IsTxConfirmed; // Indicates if the node is sending confirmed or unconfirmed messages

extern bool IsTxIntUpdate; // Indicates if a new transmit interrupt can be set

extern bool NextTx; // Indicates if a new packet can be sent

extern bool IsNetworkJoinedStatusUpdate; // Indicates if the MAC layer network join status has changed.

extern bool IsTxUpdate; // Indicates if the message sent

extern bool IsRxUpdate; // Indicates if the message received in the RX window.

extern TimerEvent_t TxNextPacketTimer; // Timer to handle the application data transmission duty cycle

#endif // __COMMON_H__