20171208
Dependencies: mbed simple-demo-76 LoRaWAN-lib_20171208 SX1276Lib_20171208
Fork of simple-demo-76 by
app/main.cpp@11:6fdaaa5dc69a, 2017-12-08 (annotated)
- Committer:
- cdebank
- Date:
- Fri Dec 08 14:23:38 2017 +0000
- Revision:
- 11:6fdaaa5dc69a
- Parent:
- 10:9364ab3a08eb
20171208
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mluis | 0:92bca02df485 | 1 | /* |
mluis | 0:92bca02df485 | 2 | / _____) _ | | |
mluis | 0:92bca02df485 | 3 | ( (____ _____ ____ _| |_ _____ ____| |__ |
mluis | 0:92bca02df485 | 4 | \____ \| ___ | (_ _) ___ |/ ___) _ \ |
mluis | 0:92bca02df485 | 5 | _____) ) ____| | | || |_| ____( (___| | | | |
mluis | 0:92bca02df485 | 6 | (______/|_____)_|_|_| \__)_____)\____)_| |_| |
mluis | 0:92bca02df485 | 7 | (C)2015 Semtech |
mluis | 0:92bca02df485 | 8 | |
mluis | 0:92bca02df485 | 9 | Description: LoRaMac classA device implementation |
mluis | 0:92bca02df485 | 10 | |
mluis | 0:92bca02df485 | 11 | License: Revised BSD License, see LICENSE.TXT file include in the project |
mluis | 0:92bca02df485 | 12 | |
mluis | 0:92bca02df485 | 13 | Maintainer: Miguel Luis and Gregory Cristian |
mluis | 0:92bca02df485 | 14 | */ |
mluis | 0:92bca02df485 | 15 | #include "mbed.h" |
mluis | 0:92bca02df485 | 16 | #include "board.h" |
mluis | 0:92bca02df485 | 17 | #include "radio.h" |
mluis | 0:92bca02df485 | 18 | #include "LoRaMac.h" |
mluis | 0:92bca02df485 | 19 | |
mluis | 3:9c6f7f082151 | 20 | |
cdebank | 11:6fdaaa5dc69a | 21 | #define APPDATA_SIZE 7 |
joshcurry | 10:9364ab3a08eb | 22 | #define LORAWAN_DEFAULT_DATARATE DR_0 |
joshcurry | 10:9364ab3a08eb | 23 | #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x01234567 |
cdebank | 11:6fdaaa5dc69a | 24 | #define LORAWAN_NWKSKEY { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 } |
cdebank | 11:6fdaaa5dc69a | 25 | #define LORAWAN_APPSKEY { 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 } |
mluis | 1:352f608c3337 | 26 | |
joshcurry | 10:9364ab3a08eb | 27 | uint8_t AppData[APPDATA_SIZE]; |
mluis | 0:92bca02df485 | 28 | static uint8_t NwkSKey[] = LORAWAN_NWKSKEY; |
mluis | 0:92bca02df485 | 29 | static uint8_t AppSKey[] = LORAWAN_APPSKEY; |
mluis | 0:92bca02df485 | 30 | |
mluis | 0:92bca02df485 | 31 | |
mluis | 0:92bca02df485 | 32 | |
joshcurry | 10:9364ab3a08eb | 33 | void McpsConfirm( McpsConfirm_t *mcpsConfirm ) |
mluis | 0:92bca02df485 | 34 | { |
joshcurry | 10:9364ab3a08eb | 35 | return; |
mluis | 0:92bca02df485 | 36 | } |
mluis | 0:92bca02df485 | 37 | |
joshcurry | 10:9364ab3a08eb | 38 | void McpsIndication( McpsIndication_t *mcpsIndication ) |
mluis | 0:92bca02df485 | 39 | { |
joshcurry | 10:9364ab3a08eb | 40 | return; |
mluis | 3:9c6f7f082151 | 41 | } |
mluis | 3:9c6f7f082151 | 42 | |
mluis | 3:9c6f7f082151 | 43 | |
mluis | 9:ee9dcbb9708d | 44 | |
joshcurry | 10:9364ab3a08eb | 45 | |
mluis | 0:92bca02df485 | 46 | int main( void ) |
mluis | 0:92bca02df485 | 47 | { |
joshcurry | 10:9364ab3a08eb | 48 | //Initialise firmware |
cdebank | 11:6fdaaa5dc69a | 49 | DigitalOut led(PA_3); |
cdebank | 11:6fdaaa5dc69a | 50 | led = 1; |
joshcurry | 10:9364ab3a08eb | 51 | |
mluis | 3:9c6f7f082151 | 52 | LoRaMacPrimitives_t LoRaMacPrimitives; |
mluis | 3:9c6f7f082151 | 53 | LoRaMacCallback_t LoRaMacCallbacks; |
mluis | 3:9c6f7f082151 | 54 | MibRequestConfirm_t mibReq; |
mluis | 0:92bca02df485 | 55 | |
joshcurry | 10:9364ab3a08eb | 56 | LoRaMacPrimitives.MacMcpsConfirm = McpsConfirm; |
joshcurry | 10:9364ab3a08eb | 57 | LoRaMacPrimitives.MacMcpsIndication = McpsIndication; |
cdebank | 11:6fdaaa5dc69a | 58 | // LoRaMacPrimitives.MacMlmeConfirm = McpsConfirm; |
joshcurry | 10:9364ab3a08eb | 59 | LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks ); |
mluis | 7:3173f0508a98 | 60 | |
cdebank | 11:6fdaaa5dc69a | 61 | LoRaMacChannelAdd( 3, ( ChannelParams_t ){ 868100000, { ( ( DR_5 << 4 ) | DR_5 ) }, 3 } ); |
cdebank | 11:6fdaaa5dc69a | 62 | //LoRaMacChannelAdd( 4, ( ChannelParams_t ){ 867300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ); |
cdebank | 11:6fdaaa5dc69a | 63 | //LoRaMacChannelAdd( 5, ( ChannelParams_t ){ 867500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ); |
cdebank | 11:6fdaaa5dc69a | 64 | //LoRaMacChannelAdd( 6, ( ChannelParams_t ){ 867700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ); |
cdebank | 11:6fdaaa5dc69a | 65 | //LoRaMacChannelAdd( 7, ( ChannelParams_t ){ 867900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ); |
cdebank | 11:6fdaaa5dc69a | 66 | //LoRaMacChannelAdd( 8, ( ChannelParams_t ){ 868800000, { ( ( DR_7 << 4 ) | DR_7 ) }, 2 } ); |
cdebank | 11:6fdaaa5dc69a | 67 | //LoRaMacChannelAdd( 9, ( ChannelParams_t ){ 868300000, { ( ( DR_6 << 4 ) | DR_6 ) }, 1 } ); |
mluis | 7:3173f0508a98 | 68 | |
joshcurry | 10:9364ab3a08eb | 69 | //Join ABP |
mluis | 0:92bca02df485 | 70 | |
joshcurry | 10:9364ab3a08eb | 71 | mibReq.Type = MIB_NET_ID; |
joshcurry | 10:9364ab3a08eb | 72 | mibReq.Param.NetID = 0; |
joshcurry | 10:9364ab3a08eb | 73 | LoRaMacMibSetRequestConfirm( &mibReq ); |
joshcurry | 10:9364ab3a08eb | 74 | |
joshcurry | 10:9364ab3a08eb | 75 | mibReq.Type = MIB_DEV_ADDR; |
joshcurry | 10:9364ab3a08eb | 76 | mibReq.Param.DevAddr = LORAWAN_DEVICE_ADDRESS; |
joshcurry | 10:9364ab3a08eb | 77 | LoRaMacMibSetRequestConfirm( &mibReq ); |
mluis | 3:9c6f7f082151 | 78 | |
joshcurry | 10:9364ab3a08eb | 79 | mibReq.Type = MIB_NWK_SKEY; |
joshcurry | 10:9364ab3a08eb | 80 | mibReq.Param.NwkSKey = NwkSKey; |
joshcurry | 10:9364ab3a08eb | 81 | LoRaMacMibSetRequestConfirm( &mibReq ); |
mluis | 3:9c6f7f082151 | 82 | |
joshcurry | 10:9364ab3a08eb | 83 | mibReq.Type = MIB_APP_SKEY; |
joshcurry | 10:9364ab3a08eb | 84 | mibReq.Param.AppSKey = AppSKey; |
joshcurry | 10:9364ab3a08eb | 85 | LoRaMacMibSetRequestConfirm( &mibReq ); |
mluis | 9:ee9dcbb9708d | 86 | |
joshcurry | 10:9364ab3a08eb | 87 | mibReq.Type = MIB_NETWORK_JOINED; |
joshcurry | 10:9364ab3a08eb | 88 | mibReq.Param.IsNetworkJoined = true; |
joshcurry | 10:9364ab3a08eb | 89 | LoRaMacMibSetRequestConfirm( &mibReq ); |
joshcurry | 10:9364ab3a08eb | 90 | |
joshcurry | 10:9364ab3a08eb | 91 | mibReq.Type = MIB_CHANNELS_TX_POWER; |
joshcurry | 10:9364ab3a08eb | 92 | mibReq.Param.ChannelsTxPower = LORAMAC_MAX_TX_POWER; |
joshcurry | 10:9364ab3a08eb | 93 | LoRaMacMibSetRequestConfirm( &mibReq ); |
joshcurry | 10:9364ab3a08eb | 94 | |
joshcurry | 10:9364ab3a08eb | 95 | mibReq.Type = MIB_CHANNELS_DEFAULT_TX_POWER; |
joshcurry | 10:9364ab3a08eb | 96 | mibReq.Param.ChannelsDefaultTxPower = LORAMAC_MAX_TX_POWER; |
joshcurry | 10:9364ab3a08eb | 97 | LoRaMacMibSetRequestConfirm( &mibReq ); |
mluis | 3:9c6f7f082151 | 98 | |
joshcurry | 10:9364ab3a08eb | 99 | //Prepareframe |
mluis | 3:9c6f7f082151 | 100 | |
cdebank | 11:6fdaaa5dc69a | 101 | AppData[0] = 0x43; |
cdebank | 11:6fdaaa5dc69a | 102 | AppData[1] = 0x68; |
cdebank | 11:6fdaaa5dc69a | 103 | AppData[2] = 0x72; |
cdebank | 11:6fdaaa5dc69a | 104 | AppData[3] = 0x69; |
cdebank | 11:6fdaaa5dc69a | 105 | AppData[4] = 0x73; |
cdebank | 11:6fdaaa5dc69a | 106 | AppData[5] = 0x21; |
cdebank | 11:6fdaaa5dc69a | 107 | AppData[6] = 0x21; |
joshcurry | 10:9364ab3a08eb | 108 | |
joshcurry | 10:9364ab3a08eb | 109 | //Sendframe |
joshcurry | 10:9364ab3a08eb | 110 | |
joshcurry | 10:9364ab3a08eb | 111 | McpsReq_t mcpsReq; |
joshcurry | 10:9364ab3a08eb | 112 | |
joshcurry | 10:9364ab3a08eb | 113 | uint8_t AppPort = 3; |
cdebank | 11:6fdaaa5dc69a | 114 | mcpsReq.Type = MCPS_UNCONFIRMED; |
cdebank | 11:6fdaaa5dc69a | 115 | mcpsReq.Req.Unconfirmed.fPort = AppPort; |
cdebank | 11:6fdaaa5dc69a | 116 | mcpsReq.Req.Unconfirmed.fBuffer = AppData; |
cdebank | 11:6fdaaa5dc69a | 117 | mcpsReq.Req.Unconfirmed.fBufferSize = APPDATA_SIZE; |
cdebank | 11:6fdaaa5dc69a | 118 | mcpsReq.Req.Unconfirmed.Datarate = DR_5; |
joshcurry | 10:9364ab3a08eb | 119 | |
joshcurry | 10:9364ab3a08eb | 120 | LoRaMacMcpsRequest( &mcpsReq ); |
joshcurry | 10:9364ab3a08eb | 121 | |
cdebank | 11:6fdaaa5dc69a | 122 | while(1){ |
cdebank | 11:6fdaaa5dc69a | 123 | wait(1); |
cdebank | 11:6fdaaa5dc69a | 124 | led = !led; |
cdebank | 11:6fdaaa5dc69a | 125 | LoRaMacMcpsRequest( &mcpsReq ); |
cdebank | 11:6fdaaa5dc69a | 126 | } |
joshcurry | 10:9364ab3a08eb | 127 | } |
mluis | 3:9c6f7f082151 | 128 |