Erick / Mbed 2 deprecated ICE_BLE_TEST

Dependencies:   NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed

Fork of ICE by Erick

Committer:
davidjhoward
Date:
Fri Sep 30 12:22:20 2016 +0000
Revision:
149:950c90425f7c
Parent:
138:27c39d0e4e81
Child:
151:9d47fe5ba805
base for virtual inputs/outputs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davidjhoward 16:7f6599312962 1 #include "mbed.h"
davidjhoward 16:7f6599312962 2 #include "mDot.h"
davidjhoward 16:7f6599312962 3 #include "MTSLog.h"
davidjhoward 16:7f6599312962 4 #include "LoRaInit.h"
davidjhoward 16:7f6599312962 5
davidjhoward 16:7f6599312962 6 static std::string config_network_name = "davedesk";
davidjhoward 16:7f6599312962 7 static std::string config_network_pass = "davedesk";
davidjhoward 16:7f6599312962 8 static uint8_t config_frequency_sub_band = 7;
davidjhoward 16:7f6599312962 9
davidjhoward 21:85c69494c0ff 10 void mDotRadioInit(mDot *dot)
davidjhoward 16:7f6599312962 11 {
davidjhoward 16:7f6599312962 12 int32_t ret;
davidjhoward 138:27c39d0e4e81 13
davidjhoward 16:7f6599312962 14 // print library version information
davidjhoward 21:85c69494c0ff 15 logInfo("version: %s", dot->getId().c_str());
jmarkel44 20:653923c2f37a 16 logInfo("Program is: mDot_LoRa_pump_control");
davidjhoward 138:27c39d0e4e81 17
davidjhoward 21:85c69494c0ff 18 dot->resetConfig();
davidjhoward 138:27c39d0e4e81 19
davidjhoward 138:27c39d0e4e81 20 // set the logging level
jmarkel44 36:f240f5a6d0ed 21 dot->setLogLevel(mts::MTSLog::ERROR_LEVEL);
davidjhoward 138:27c39d0e4e81 22
davidjhoward 16:7f6599312962 23 logInfo("setting frequency sub band");
davidjhoward 21:85c69494c0ff 24 if ((ret = dot->setFrequencySubBand(config_frequency_sub_band)) != mDot::MDOT_OK) {
davidjhoward 16:7f6599312962 25 logError("failed to set frequency sub band %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 16:7f6599312962 26 }
davidjhoward 138:27c39d0e4e81 27
davidjhoward 16:7f6599312962 28 logInfo("setting network name");
davidjhoward 21:85c69494c0ff 29 if ((ret = dot->setNetworkName(config_network_name)) != mDot::MDOT_OK) {
davidjhoward 16:7f6599312962 30 logError("failed to set network name %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 16:7f6599312962 31 }
davidjhoward 138:27c39d0e4e81 32
davidjhoward 16:7f6599312962 33 logInfo("setting network password");
davidjhoward 21:85c69494c0ff 34 if ((ret = dot->setNetworkPassphrase(config_network_pass)) != mDot::MDOT_OK) {
davidjhoward 16:7f6599312962 35 logError("failed to set network password %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 16:7f6599312962 36 }
davidjhoward 138:27c39d0e4e81 37
davidjhoward 16:7f6599312962 38 logInfo("setting TX spreading factor");
davidjhoward 21:85c69494c0ff 39 if ((ret = dot->setTxDataRate(mDot::SF_7)) != mDot::MDOT_OK) {
davidjhoward 16:7f6599312962 40 logError("failed to set TX datarate %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 16:7f6599312962 41 }
davidjhoward 138:27c39d0e4e81 42
davidjhoward 138:27c39d0e4e81 43 logInfo("setting TX Output power");
davidjhoward 21:85c69494c0ff 44 if ((ret = dot->setTxPower(18)) != mDot::MDOT_OK) {
davidjhoward 16:7f6599312962 45 logError("failed to set TX outputpower %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 16:7f6599312962 46 }
davidjhoward 16:7f6599312962 47
davidjhoward 138:27c39d0e4e81 48 logInfo("setting RX Delay");
davidjhoward 149:950c90425f7c 49 if ((ret = dot->setRxDelay(1)) != mDot::MDOT_OK) {
davidjhoward 138:27c39d0e4e81 50 logError("failed to set TX outputpower %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 138:27c39d0e4e81 51 }
davidjhoward 138:27c39d0e4e81 52
davidjhoward 16:7f6599312962 53 // request receive confirmation of packets from the gateway
davidjhoward 16:7f6599312962 54 logInfo("enabling ACKs");
davidjhoward 149:950c90425f7c 55 if ((ret = dot->setAck(1)) != mDot::MDOT_OK) {
davidjhoward 16:7f6599312962 56 logError("failed to enable ACKs %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 16:7f6599312962 57 }
davidjhoward 138:27c39d0e4e81 58
davidjhoward 16:7f6599312962 59 // save this configuration to the mDot's NVM
davidjhoward 16:7f6599312962 60 logInfo("saving config");
davidjhoward 21:85c69494c0ff 61 if (! dot->saveConfig()) {
davidjhoward 16:7f6599312962 62 logError("failed to save configuration");
davidjhoward 16:7f6599312962 63 }
davidjhoward 138:27c39d0e4e81 64
davidjhoward 68:dbe39d83eb98 65 // logInfo("joining network");
davidjhoward 68:dbe39d83eb98 66 // while ((ret = dot->joinNetwork()) != mDot::MDOT_OK) {
davidjhoward 68:dbe39d83eb98 67 // logError("failed to join network %d:%s", ret, mDot::getReturnCodeString(ret).c_str());
davidjhoward 138:27c39d0e4e81 68 // in the 868 (EU) frequency band, we need to wait until another channel is available before transmitting again
davidjhoward 68:dbe39d83eb98 69 // osDelay(std::max((uint32_t)1000, (uint32_t)dot->getNextTxMs()));
davidjhoward 68:dbe39d83eb98 70 // }
davidjhoward 68:dbe39d83eb98 71 // logInfo("Joined Network");
davidjhoward 16:7f6599312962 72 }