Simple implementation of LoRaWAN-demo-76 by Semtech.
Dependencies: mbed LoRaWAN-lib SX1276Lib
Dependents: simple-demo-76_revised_20171113 simple-demo-76_revised_20171208
Fork of LoRaWAN-demo-76 by
main.cpp
00001 /* 00002 / _____) _ | | 00003 ( (____ _____ ____ _| |_ _____ ____| |__ 00004 \____ \| ___ | (_ _) ___ |/ ___) _ \ 00005 _____) ) ____| | | || |_| ____( (___| | | | 00006 (______/|_____)_|_|_| \__)_____)\____)_| |_| 00007 (C)2015 Semtech 00008 00009 Description: LoRaMac classA device implementation 00010 00011 License: Revised BSD License, see LICENSE.TXT file include in the project 00012 00013 Maintainer: Miguel Luis and Gregory Cristian 00014 */ 00015 #include "mbed.h" 00016 #include "board.h" 00017 #include "radio.h" 00018 #include "LoRaMac.h" 00019 00020 00021 #define APPDATA_SIZE 4 00022 #define LORAWAN_DEFAULT_DATARATE DR_0 00023 #define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x01234567 00024 #define LORAWAN_NWKSKEY { 0x11, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 } 00025 #define LORAWAN_APPSKEY { 0x11, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 } 00026 00027 uint8_t AppData[APPDATA_SIZE]; 00028 static uint8_t NwkSKey[] = LORAWAN_NWKSKEY; 00029 static uint8_t AppSKey[] = LORAWAN_APPSKEY; 00030 00031 00032 00033 void McpsConfirm( McpsConfirm_t *mcpsConfirm ) 00034 { 00035 return; 00036 } 00037 00038 void McpsIndication( McpsIndication_t *mcpsIndication ) 00039 { 00040 return; 00041 } 00042 00043 00044 00045 00046 int main( void ) 00047 { 00048 //Initialise firmware 00049 00050 LoRaMacPrimitives_t LoRaMacPrimitives; 00051 LoRaMacCallback_t LoRaMacCallbacks; 00052 MibRequestConfirm_t mibReq; 00053 00054 LoRaMacPrimitives.MacMcpsConfirm = McpsConfirm; 00055 LoRaMacPrimitives.MacMcpsIndication = McpsIndication; 00056 // LoRaMacPrimitives.MacMlmeConfirm = McpsConfirm; 00057 LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks ); 00058 00059 LoRaMacChannelAdd( 3, ( ChannelParams_t ){ 867100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ); 00060 LoRaMacChannelAdd( 4, ( ChannelParams_t ){ 867300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 }); 00061 LoRaMacChannelAdd( 5, ( ChannelParams_t ){ 867500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ); 00062 LoRaMacChannelAdd( 6, ( ChannelParams_t ){ 867700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ); 00063 LoRaMacChannelAdd( 7, ( ChannelParams_t ){ 867900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } ); 00064 LoRaMacChannelAdd( 8, ( ChannelParams_t ){ 868800000, { ( ( DR_7 << 4 ) | DR_7 ) }, 2 } ); 00065 LoRaMacChannelAdd( 9, ( ChannelParams_t ){ 868300000, { ( ( DR_6 << 4 ) | DR_6 ) }, 1 } ); 00066 00067 //Join ABP 00068 00069 mibReq.Type = MIB_NET_ID; 00070 mibReq.Param.NetID = 0; 00071 LoRaMacMibSetRequestConfirm( &mibReq ); 00072 00073 mibReq.Type = MIB_DEV_ADDR; 00074 mibReq.Param.DevAddr = LORAWAN_DEVICE_ADDRESS; 00075 LoRaMacMibSetRequestConfirm( &mibReq ); 00076 00077 mibReq.Type = MIB_NWK_SKEY; 00078 mibReq.Param.NwkSKey = NwkSKey; 00079 LoRaMacMibSetRequestConfirm( &mibReq ); 00080 00081 mibReq.Type = MIB_APP_SKEY; 00082 mibReq.Param.AppSKey = AppSKey; 00083 LoRaMacMibSetRequestConfirm( &mibReq ); 00084 00085 mibReq.Type = MIB_NETWORK_JOINED; 00086 mibReq.Param.IsNetworkJoined = true; 00087 LoRaMacMibSetRequestConfirm( &mibReq ); 00088 00089 mibReq.Type = MIB_CHANNELS_TX_POWER; 00090 mibReq.Param.ChannelsTxPower = LORAMAC_MAX_TX_POWER; 00091 LoRaMacMibSetRequestConfirm( &mibReq ); 00092 00093 mibReq.Type = MIB_CHANNELS_DEFAULT_TX_POWER; 00094 mibReq.Param.ChannelsDefaultTxPower = LORAMAC_MAX_TX_POWER; 00095 LoRaMacMibSetRequestConfirm( &mibReq ); 00096 00097 //Prepareframe 00098 00099 AppData[0] = 0xFF; 00100 AppData[1] = 0xFF; 00101 AppData[2] = 0xFF; 00102 AppData[3] = 0xFF; 00103 00104 //Sendframe 00105 00106 McpsReq_t mcpsReq; 00107 00108 uint8_t AppPort = 3; 00109 mcpsReq.Type = MCPS_CONFIRMED; 00110 mcpsReq.Req.Confirmed.fPort = AppPort; 00111 mcpsReq.Req.Confirmed.fBuffer = AppData; 00112 mcpsReq.Req.Confirmed.fBufferSize = APPDATA_SIZE; 00113 mcpsReq.Req.Confirmed.Datarate = LORAWAN_DEFAULT_DATARATE; 00114 00115 LoRaMacMcpsRequest( &mcpsReq ); 00116 00117 while(1); 00118 } 00119
Generated on Fri Jul 15 2022 03:19:08 by 1.7.2