DISCO-L072CZ-LRWAN1-base

Dependencies:   BufferedSerial LoRaWAN-lib-st-murata ST-DEVKIT-LRWAN mbed

Committer:
alphaemmeo
Date:
Mon Dec 04 14:28:30 2017 +0000
Revision:
1:dcf49b02bfd9
Parent:
0:60680ad16314
base porting

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alphaemmeo 0:60680ad16314 1 /*
alphaemmeo 0:60680ad16314 2 * Copyright (c) Ivano Calabrese
alphaemmeo 0:60680ad16314 3 * Licensed under the Apache License, Version 2.0);
alphaemmeo 0:60680ad16314 4 */
alphaemmeo 0:60680ad16314 5
alphaemmeo 0:60680ad16314 6 #include "mbed.h"
alphaemmeo 0:60680ad16314 7 #include "PinMap.h"
alphaemmeo 0:60680ad16314 8 #include "BufferedSerial.h"
alphaemmeo 0:60680ad16314 9 //#include "GenericPingPong.h"
alphaemmeo 0:60680ad16314 10
alphaemmeo 0:60680ad16314 11 void SystemClock_Config(void);
alphaemmeo 0:60680ad16314 12
alphaemmeo 0:60680ad16314 13 extern BufferedSerial *ser;
alphaemmeo 0:60680ad16314 14 extern void dump(const char *title, const void *data, int len, bool dwords = false);
alphaemmeo 0:60680ad16314 15
alphaemmeo 0:60680ad16314 16 #define dprintf(...) { ser->printf(__VA_ARGS__); ser->printf("\r\n"); }
alphaemmeo 0:60680ad16314 17
alphaemmeo 0:60680ad16314 18 /*!
alphaemmeo 0:60680ad16314 19 * Defines the application data transmission duty cycle. 5s, value in [ms].
alphaemmeo 0:60680ad16314 20 */
alphaemmeo 0:60680ad16314 21 #define APP_TX_DUTYCYCLE 60000
alphaemmeo 0:60680ad16314 22
alphaemmeo 0:60680ad16314 23 /*!
alphaemmeo 0:60680ad16314 24 * Defines a random delay for application data transmission duty cycle. 1s,
alphaemmeo 0:60680ad16314 25 * value in [ms].
alphaemmeo 0:60680ad16314 26 */
alphaemmeo 0:60680ad16314 27 #define APP_TX_DUTYCYCLE_RND 1000
alphaemmeo 0:60680ad16314 28
alphaemmeo 0:60680ad16314 29
alphaemmeo 0:60680ad16314 30 /*!
alphaemmeo 0:60680ad16314 31 * LoRaWAN application port
alphaemmeo 0:60680ad16314 32 */
alphaemmeo 0:60680ad16314 33 #define LORAWAN_APP_PORT 1
alphaemmeo 0:60680ad16314 34
alphaemmeo 0:60680ad16314 35 #define LORAWAN_APP_DATA_SIZE 1
alphaemmeo 0:60680ad16314 36
alphaemmeo 0:60680ad16314 37 /*!
alphaemmeo 0:60680ad16314 38 * User application data buffer size
alphaemmeo 0:60680ad16314 39 */
alphaemmeo 0:60680ad16314 40 #define LORAWAN_APP_DATA_MAX_SIZE 64
alphaemmeo 0:60680ad16314 41
alphaemmeo 0:60680ad16314 42 /*!
alphaemmeo 0:60680ad16314 43 * Mote device IEEE EUI (big endian)
alphaemmeo 0:60680ad16314 44 */
alphaemmeo 0:60680ad16314 45 //#define LORAWAN_DEVICE_EUI { IEEE_OUI, 0x44, 0x55, 0x66, 0x77, 0x88 }
alphaemmeo 0:60680ad16314 46 #define LORAWAN_DEVICE_EUI { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11 }
alphaemmeo 0:60680ad16314 47
alphaemmeo 0:60680ad16314 48 /*!
alphaemmeo 0:60680ad16314 49 * Application IEEE EUI (big endian)
alphaemmeo 0:60680ad16314 50 */
alphaemmeo 0:60680ad16314 51 #define LORAWAN_APPLICATION_EUI { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11 }
alphaemmeo 0:60680ad16314 52
alphaemmeo 0:60680ad16314 53 /*!
alphaemmeo 0:60680ad16314 54 * AES encryption/decryption cipher application key
alphaemmeo 0:60680ad16314 55 */
alphaemmeo 0:60680ad16314 56 #define LORAWAN_APPLICATION_KEY { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11 }
alphaemmeo 0:60680ad16314 57
alphaemmeo 0:60680ad16314 58 /*!
alphaemmeo 0:60680ad16314 59 * When set to 1 the application uses the Over-the-Air activation procedure
alphaemmeo 0:60680ad16314 60 * When set to 0 the application uses the Personalization activation procedure
alphaemmeo 0:60680ad16314 61 */
alphaemmeo 0:60680ad16314 62 #define OVER_THE_AIR_ACTIVATION 0
alphaemmeo 0:60680ad16314 63
alphaemmeo 0:60680ad16314 64 /*!
alphaemmeo 0:60680ad16314 65 * Indicates if the end-device is to be connected to a private or public network
alphaemmeo 0:60680ad16314 66 */
alphaemmeo 0:60680ad16314 67 #define LORAWAN_PUBLIC_NETWORK true
alphaemmeo 0:60680ad16314 68
alphaemmeo 0:60680ad16314 69 /*!
alphaemmeo 0:60680ad16314 70 * Default datarate
alphaemmeo 0:60680ad16314 71 */
alphaemmeo 0:60680ad16314 72 #define LORAWAN_DEFAULT_DATARATE DR_0
alphaemmeo 0:60680ad16314 73
alphaemmeo 0:60680ad16314 74 /*!
alphaemmeo 0:60680ad16314 75 * LoRaWAN confirmed messages
alphaemmeo 0:60680ad16314 76 */
alphaemmeo 0:60680ad16314 77 #define LORAWAN_CONFIRMED_MSG_ON false
alphaemmeo 0:60680ad16314 78
alphaemmeo 0:60680ad16314 79 /*!
alphaemmeo 0:60680ad16314 80 * Current network ID
alphaemmeo 0:60680ad16314 81 */
alphaemmeo 0:60680ad16314 82 #define LORAWAN_NETWORK_ID ( uint32_t )0
alphaemmeo 0:60680ad16314 83
alphaemmeo 0:60680ad16314 84 /*!
alphaemmeo 0:60680ad16314 85 * Device address on the network (big endian)
alphaemmeo 0:60680ad16314 86 */
alphaemmeo 0:60680ad16314 87 #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x12345678
alphaemmeo 0:60680ad16314 88
alphaemmeo 0:60680ad16314 89 /*!
alphaemmeo 0:60680ad16314 90 * AES encryption/decryption cipher network session key
alphaemmeo 0:60680ad16314 91 */
alphaemmeo 0:60680ad16314 92 #define LORAWAN_NWKSKEY { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }
alphaemmeo 0:60680ad16314 93
alphaemmeo 0:60680ad16314 94 /*!
alphaemmeo 0:60680ad16314 95 * AES encryption/decryption cipher application session key
alphaemmeo 0:60680ad16314 96 */
alphaemmeo 0:60680ad16314 97 #define LORAWAN_APPSKEY { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }
alphaemmeo 0:60680ad16314 98
alphaemmeo 0:60680ad16314 99 /*!
alphaemmeo 0:60680ad16314 100 * LoRaWAN Adaptive Data Rate
alphaemmeo 0:60680ad16314 101 *
alphaemmeo 0:60680ad16314 102 * \remark Please note that when ADR is enabled the end-device should be static
alphaemmeo 0:60680ad16314 103 */
alphaemmeo 0:60680ad16314 104 #define LORAWAN_ADR_ON 1
alphaemmeo 0:60680ad16314 105
alphaemmeo 0:60680ad16314 106 #if defined( USE_BAND_868 )
alphaemmeo 0:60680ad16314 107
alphaemmeo 0:60680ad16314 108 /*!
alphaemmeo 0:60680ad16314 109 * LoRaWAN ETSI duty cycle control enable/disable
alphaemmeo 0:60680ad16314 110 *
alphaemmeo 0:60680ad16314 111 * \remark Please note that ETSI mandates duty cycled transmissions. Use only for test purposes
alphaemmeo 0:60680ad16314 112 */
alphaemmeo 0:60680ad16314 113 #define LORAWAN_DUTYCYCLE_ON false
alphaemmeo 0:60680ad16314 114
alphaemmeo 0:60680ad16314 115 #define LC4 { 867100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
alphaemmeo 0:60680ad16314 116 #define LC5 { 867300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
alphaemmeo 0:60680ad16314 117 #define LC6 { 867500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
alphaemmeo 0:60680ad16314 118 #define LC7 { 867700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
alphaemmeo 0:60680ad16314 119 #define LC8 { 867900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }
alphaemmeo 0:60680ad16314 120 #define LC9 { 868800000, { ( ( DR_7 << 4 ) | DR_7 ) }, 2 }
alphaemmeo 0:60680ad16314 121 #define LC10 { 868300000, { ( ( DR_6 << 4 ) | DR_6 ) }, 1 }
alphaemmeo 0:60680ad16314 122
alphaemmeo 0:60680ad16314 123 #endif
alphaemmeo 0:60680ad16314 124
alphaemmeo 0:60680ad16314 125 /*!
alphaemmeo 0:60680ad16314 126 * Indicates if the MAC layer network join status has changed.
alphaemmeo 0:60680ad16314 127 */
alphaemmeo 0:60680ad16314 128 static bool IsNetworkJoinedStatusUpdate = false;