Steven Kramer / Mbed 2 deprecated mDot_LoRa_Sensornode_SRK

Dependencies:   libmDot mbed-rtos mbed

Fork of mDot_LoRa_Sensornode by Adrian Mitevski

Committer:
mitea1
Date:
Fri Aug 12 11:19:14 2016 +0000
Revision:
1:fe242f3e341b
Parent:
0:f2815503561f
Child:
4:135e5ebdf555
added OTAA Join Mode for LoRa Connection

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mitea1 0:f2815503561f 1 /*
mitea1 0:f2815503561f 2 * LoRaConfig.cpp
mitea1 0:f2815503561f 3 *
mitea1 0:f2815503561f 4 * Created on: Jun 11, 2016
mitea1 0:f2815503561f 5 * Author: Adrian
mitea1 0:f2815503561f 6 */
mitea1 0:f2815503561f 7
mitea1 0:f2815503561f 8 #include "LoRaConfig.h"
mitea1 0:f2815503561f 9
mitea1 0:f2815503561f 10 //LoRaConfig::LoRaConfig(){
mitea1 0:f2815503561f 11 //
mitea1 0:f2815503561f 12 //}
mitea1 0:f2815503561f 13 //
mitea1 0:f2815503561f 14 //LoRaConfig::~LoRaConfig(){
mitea1 0:f2815503561f 15 //
mitea1 0:f2815503561f 16 //}
mitea1 0:f2815503561f 17
mitea1 0:f2815503561f 18 void LoRaConfig::build(LORA_MODE desiredMode){
mitea1 1:fe242f3e341b 19
mitea1 0:f2815503561f 20 setLORA_MODE(desiredMode);
mitea1 1:fe242f3e341b 21 setNetworkName(LORA_NETWORK_NAME);
mitea1 1:fe242f3e341b 22 setNetworkPassphrase(LORA_NETWORK_PASSPHRASE);
mitea1 1:fe242f3e341b 23 setAppEUI();
mitea1 1:fe242f3e341b 24 setAppKey();
mitea1 1:fe242f3e341b 25 setDeviceEUI();
mitea1 0:f2815503561f 26
mitea1 0:f2815503561f 27 switch(desiredMode){
mitea1 0:f2815503561f 28
mitea1 0:f2815503561f 29 case LORA_MODE_0_OFF:
mitea1 0:f2815503561f 30 setNetworkPublicity(true);
mitea1 0:f2815503561f 31 setActivity(false);
mitea1 0:f2815503561f 32 setFrequencySubBand(LORA_SUBBAND_0);
mitea1 0:f2815503561f 33 setSpreadingFactor(LORA_SPREADING_FACTOR_7);
mitea1 0:f2815503561f 34 setTxPowerdBm(LORA_TX_POWER_16_DBM);
mitea1 0:f2815503561f 35 setAcknowledgeRetries(LORA_ACKNOWLEDGE_RETRIES_1);
mitea1 1:fe242f3e341b 36 setJOIN_MODE(ABP);
mitea1 0:f2815503561f 37 break;
mitea1 0:f2815503561f 38
mitea1 0:f2815503561f 39 case LORA_MODE_1:
mitea1 0:f2815503561f 40 setNetworkPublicity(true);
mitea1 0:f2815503561f 41 setActivity(true);
mitea1 1:fe242f3e341b 42 setFrequencySubBand(LORA_SUBBAND_1);
mitea1 1:fe242f3e341b 43 setSpreadingFactor(LORA_SPREADING_FACTOR_8);
mitea1 0:f2815503561f 44 setTxPowerdBm(LORA_TX_POWER_16_DBM);
mitea1 1:fe242f3e341b 45 setAcknowledgeRetries(LORA_ACKNOWLEDGE_RETRIES_0);
mitea1 1:fe242f3e341b 46 setJOIN_MODE(OTA);
mitea1 0:f2815503561f 47 break;
mitea1 0:f2815503561f 48
mitea1 0:f2815503561f 49 case LORA_MODE_2:
mitea1 0:f2815503561f 50 setNetworkPublicity(true);
mitea1 0:f2815503561f 51 setActivity(true);
mitea1 0:f2815503561f 52 setFrequencySubBand(LORA_SUBBAND_0);
mitea1 0:f2815503561f 53 setSpreadingFactor(LORA_SPREADING_FACTOR_12);
mitea1 0:f2815503561f 54 setTxPowerdBm(LORA_TX_POWER_16_DBM);
mitea1 0:f2815503561f 55 setAcknowledgeRetries(LORA_ACKNOWLEDGE_RETRIES_1);
mitea1 1:fe242f3e341b 56 setJOIN_MODE(ABP);
mitea1 0:f2815503561f 57 break;
mitea1 0:f2815503561f 58
mitea1 0:f2815503561f 59 case LORA_MODE_3:
mitea1 0:f2815503561f 60 setNetworkPublicity(true);
mitea1 0:f2815503561f 61 setActivity(true);
mitea1 0:f2815503561f 62 setFrequencySubBand(LORA_SUBBAND_0);
mitea1 0:f2815503561f 63 setSpreadingFactor(LORA_SPREADING_FACTOR_7);
mitea1 0:f2815503561f 64 setTxPowerdBm(LORA_TX_POWER_16_DBM);
mitea1 0:f2815503561f 65 setAcknowledgeRetries(LORA_ACKNOWLEDGE_RETRIES_1);
mitea1 1:fe242f3e341b 66 setJOIN_MODE(ABP);
mitea1 0:f2815503561f 67 break;
mitea1 0:f2815503561f 68
mitea1 0:f2815503561f 69 case LORA_MODE_4:
mitea1 0:f2815503561f 70 setNetworkPublicity(true);
mitea1 0:f2815503561f 71 setActivity(true);
mitea1 0:f2815503561f 72 setFrequencySubBand(LORA_SUBBAND_0);
mitea1 0:f2815503561f 73 setSpreadingFactor(LORA_SPREADING_FACTOR_7);
mitea1 0:f2815503561f 74 setTxPowerdBm(LORA_TX_POWER_16_DBM);
mitea1 0:f2815503561f 75 setAcknowledgeRetries(LORA_ACKNOWLEDGE_RETRIES_1);
mitea1 1:fe242f3e341b 76 setJOIN_MODE(ABP);
mitea1 0:f2815503561f 77 break;
mitea1 0:f2815503561f 78
mitea1 0:f2815503561f 79 case LORA_MODE_5:
mitea1 0:f2815503561f 80 setNetworkPublicity(true);
mitea1 0:f2815503561f 81 setActivity(true);
mitea1 0:f2815503561f 82 setFrequencySubBand(LORA_SUBBAND_0);
mitea1 0:f2815503561f 83 setSpreadingFactor(LORA_SPREADING_FACTOR_7);
mitea1 0:f2815503561f 84 setTxPowerdBm(LORA_TX_POWER_20_DBM);
mitea1 0:f2815503561f 85 setAcknowledgeRetries(LORA_ACKNOWLEDGE_RETRIES_1);
mitea1 1:fe242f3e341b 86 setJOIN_MODE(ABP);
mitea1 0:f2815503561f 87 break;
mitea1 0:f2815503561f 88
mitea1 0:f2815503561f 89 default:
mitea1 0:f2815503561f 90 setNetworkPublicity(true);
mitea1 0:f2815503561f 91 setActivity(false);
mitea1 0:f2815503561f 92 setFrequencySubBand(LORA_SUBBAND_0);
mitea1 0:f2815503561f 93 setSpreadingFactor(LORA_SPREADING_FACTOR_7);
mitea1 0:f2815503561f 94 setTxPowerdBm(LORA_TX_POWER_16_DBM);
mitea1 0:f2815503561f 95 setAcknowledgeRetries(LORA_ACKNOWLEDGE_RETRIES_1);
mitea1 1:fe242f3e341b 96 setJOIN_MODE(ABP);
mitea1 0:f2815503561f 97 break;
mitea1 0:f2815503561f 98 }
mitea1 0:f2815503561f 99 }
mitea1 0:f2815503561f 100
mitea1 0:f2815503561f 101 bool LoRaConfig::isPublic(){
mitea1 0:f2815503561f 102 return publicity;
mitea1 0:f2815503561f 103 }
mitea1 0:f2815503561f 104
mitea1 0:f2815503561f 105 bool LoRaConfig::isActiv(){
mitea1 0:f2815503561f 106 return activity;
mitea1 0:f2815503561f 107 }
mitea1 0:f2815503561f 108
mitea1 0:f2815503561f 109 std::string LoRaConfig::getNetworkName(){
mitea1 0:f2815503561f 110 return *networkName;
mitea1 0:f2815503561f 111 }
mitea1 0:f2815503561f 112
mitea1 0:f2815503561f 113 std::string LoRaConfig::getNetworkPassphrase(){
mitea1 0:f2815503561f 114 return *networkPassphrase;
mitea1 0:f2815503561f 115 }
mitea1 0:f2815503561f 116
mitea1 1:fe242f3e341b 117 std::string LoRaConfig::getNetworkAddress(){
mitea1 1:fe242f3e341b 118 return *networkAddress;
mitea1 1:fe242f3e341b 119 }
mitea1 1:fe242f3e341b 120
mitea1 1:fe242f3e341b 121 std::vector<uint8_t> LoRaConfig::getAppEUI(){
mitea1 1:fe242f3e341b 122 return *appEUI;
mitea1 1:fe242f3e341b 123 }
mitea1 1:fe242f3e341b 124
mitea1 1:fe242f3e341b 125 std::vector<uint8_t> LoRaConfig::getAppKey(){
mitea1 1:fe242f3e341b 126 return *appKey;
mitea1 1:fe242f3e341b 127 }
mitea1 1:fe242f3e341b 128
mitea1 1:fe242f3e341b 129 std::vector<uint8_t> LoRaConfig::getDeviceEUI(){
mitea1 1:fe242f3e341b 130 return *deviceEUI;
mitea1 1:fe242f3e341b 131 }
mitea1 1:fe242f3e341b 132
mitea1 0:f2815503561f 133 uint8_t LoRaConfig::getFrequencySubBand(){
mitea1 0:f2815503561f 134 return frequencySubBand;
mitea1 0:f2815503561f 135 }
mitea1 0:f2815503561f 136
mitea1 0:f2815503561f 137 uint8_t LoRaConfig::getSpreadingFactor(){
mitea1 0:f2815503561f 138 return spreadingFactor;
mitea1 0:f2815503561f 139 }
mitea1 0:f2815503561f 140
mitea1 0:f2815503561f 141 uint8_t LoRaConfig::getTxPowerdBm(){
mitea1 0:f2815503561f 142 return txPowerdBm;
mitea1 0:f2815503561f 143 }
mitea1 0:f2815503561f 144
mitea1 0:f2815503561f 145 uint8_t LoRaConfig::getAcknowledgeRetries(){
mitea1 0:f2815503561f 146 return acknowledgeRetries;
mitea1 0:f2815503561f 147 }
mitea1 0:f2815503561f 148
mitea1 0:f2815503561f 149 LORA_MODE LoRaConfig::getLORA_MODE(){
mitea1 0:f2815503561f 150 return loraMode;
mitea1 0:f2815503561f 151 }
mitea1 0:f2815503561f 152
mitea1 1:fe242f3e341b 153 JOIN_MODE LoRaConfig::getJOIN_MODE(){
mitea1 1:fe242f3e341b 154 return joinMode;
mitea1 1:fe242f3e341b 155 }
mitea1 1:fe242f3e341b 156
mitea1 0:f2815503561f 157 void LoRaConfig::setNetworkPublicity(bool publicity){
mitea1 0:f2815503561f 158 this->publicity = publicity;
mitea1 0:f2815503561f 159 }
mitea1 0:f2815503561f 160
mitea1 0:f2815503561f 161 void LoRaConfig::setActivity(bool activity){
mitea1 0:f2815503561f 162 this->activity = activity;
mitea1 0:f2815503561f 163 }
mitea1 0:f2815503561f 164
mitea1 0:f2815503561f 165 void LoRaConfig::setNetworkName(char* networkName){
mitea1 0:f2815503561f 166 this->networkName = new std::string(networkName);
mitea1 0:f2815503561f 167 }
mitea1 0:f2815503561f 168
mitea1 0:f2815503561f 169 void LoRaConfig::setNetworkPassphrase(char* networkPassphrase){
mitea1 0:f2815503561f 170 this->networkPassphrase = new std::string(networkPassphrase);
mitea1 0:f2815503561f 171 }
mitea1 0:f2815503561f 172
mitea1 1:fe242f3e341b 173 void LoRaConfig::setNetworkAddress(char* networkAddress){
mitea1 1:fe242f3e341b 174 this->networkAddress = new std::string(networkAddress);
mitea1 1:fe242f3e341b 175 }
mitea1 1:fe242f3e341b 176
mitea1 1:fe242f3e341b 177 void LoRaConfig::setAppEUI(){
mitea1 1:fe242f3e341b 178 this->appEUI = new std::vector<uint8_t>();
mitea1 1:fe242f3e341b 179
mitea1 1:fe242f3e341b 180 for(int i = 0; i < 8; i++){
mitea1 1:fe242f3e341b 181 this->appEUI->push_back(LORA_APP_EUI[i]);
mitea1 1:fe242f3e341b 182 }
mitea1 1:fe242f3e341b 183 }
mitea1 1:fe242f3e341b 184
mitea1 1:fe242f3e341b 185 void LoRaConfig::setAppKey(){
mitea1 1:fe242f3e341b 186 this->appKey = new std::vector<uint8_t>();
mitea1 1:fe242f3e341b 187
mitea1 1:fe242f3e341b 188 for(int i = 0; i < 16; i++){
mitea1 1:fe242f3e341b 189 this->appKey->push_back(LORA_APP_KEY[i]);
mitea1 1:fe242f3e341b 190 }
mitea1 1:fe242f3e341b 191 }
mitea1 1:fe242f3e341b 192
mitea1 1:fe242f3e341b 193 void LoRaConfig::setDeviceEUI(){
mitea1 1:fe242f3e341b 194 this->deviceEUI = new std::vector<uint8_t>();
mitea1 1:fe242f3e341b 195
mitea1 1:fe242f3e341b 196 for(int i = 0; i < 8; i++){
mitea1 1:fe242f3e341b 197 this->deviceEUI->push_back(LORA_DEVICE_EUI[i]);
mitea1 1:fe242f3e341b 198 }
mitea1 1:fe242f3e341b 199 }
mitea1 1:fe242f3e341b 200
mitea1 0:f2815503561f 201 void LoRaConfig::setFrequencySubBand(uint8_t frequencySubBand){
mitea1 0:f2815503561f 202 this->frequencySubBand = frequencySubBand;
mitea1 0:f2815503561f 203 }
mitea1 0:f2815503561f 204
mitea1 0:f2815503561f 205 void LoRaConfig::setSpreadingFactor(uint8_t spreadingFactor){
mitea1 0:f2815503561f 206 this->spreadingFactor = spreadingFactor;
mitea1 0:f2815503561f 207 }
mitea1 0:f2815503561f 208
mitea1 0:f2815503561f 209 void LoRaConfig::setTxPowerdBm(uint8_t txPowerdBm){
mitea1 0:f2815503561f 210 this->txPowerdBm = txPowerdBm;
mitea1 0:f2815503561f 211 }
mitea1 0:f2815503561f 212
mitea1 0:f2815503561f 213 void LoRaConfig::setAcknowledgeRetries(uint8_t acknowledgeRetries){
mitea1 0:f2815503561f 214 this->acknowledgeRetries = acknowledgeRetries;
mitea1 0:f2815503561f 215 }
mitea1 0:f2815503561f 216
mitea1 0:f2815503561f 217 void LoRaConfig::setLORA_MODE(LORA_MODE loraMode){
mitea1 0:f2815503561f 218 this->loraMode = loraMode;
mitea1 0:f2815503561f 219 }
mitea1 0:f2815503561f 220
mitea1 1:fe242f3e341b 221 void LoRaConfig::setJOIN_MODE(JOIN_MODE joinMode){
mitea1 1:fe242f3e341b 222 this->joinMode = joinMode;
mitea1 1:fe242f3e341b 223 }
mitea1 0:f2815503561f 224
mitea1 1:fe242f3e341b 225