Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NaturalTinyShell_ice libmDot-12Sept mbed-rtos mbed
Fork of ICE by
src/mDotLoRa/LoRaInit.cpp@21:85c69494c0ff, 2016-09-08 (annotated)
- Committer:
- davidjhoward
- Date:
- Thu Sep 08 15:16:31 2016 +0000
- Revision:
- 21:85c69494c0ff
- Parent:
- 20:653923c2f37a
- Child:
- 27:38205cebc3da
update mDot
Who changed what in which revision?
| User | Revision | Line number | New 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 | 16:7f6599312962 | 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 | 16:7f6599312962 | 17 | |
| davidjhoward | 21:85c69494c0ff | 18 | dot->resetConfig(); |
| davidjhoward | 16:7f6599312962 | 19 | |
| davidjhoward | 21:85c69494c0ff | 20 | dot->setLogLevel(mts::MTSLog::INFO_LEVEL); |
| davidjhoward | 16:7f6599312962 | 21 | // dot->setLogLevel(mts::MTSLog::TRACE_LEVEL); |
| davidjhoward | 16:7f6599312962 | 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 | 16:7f6599312962 | 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 | 16:7f6599312962 | 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 | 16:7f6599312962 | 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 | 16:7f6599312962 | 42 | |
| davidjhoward | 16:7f6599312962 | 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 | 16:7f6599312962 | 48 | // request receive confirmation of packets from the gateway |
| davidjhoward | 16:7f6599312962 | 49 | logInfo("enabling ACKs"); |
| davidjhoward | 21:85c69494c0ff | 50 | if ((ret = dot->setAck(1)) != mDot::MDOT_OK) { |
| davidjhoward | 16:7f6599312962 | 51 | logError("failed to enable ACKs %d:%s", ret, mDot::getReturnCodeString(ret).c_str()); |
| davidjhoward | 16:7f6599312962 | 52 | } |
| davidjhoward | 16:7f6599312962 | 53 | |
| davidjhoward | 16:7f6599312962 | 54 | // save this configuration to the mDot's NVM |
| davidjhoward | 16:7f6599312962 | 55 | logInfo("saving config"); |
| davidjhoward | 21:85c69494c0ff | 56 | if (! dot->saveConfig()) { |
| davidjhoward | 16:7f6599312962 | 57 | logError("failed to save configuration"); |
| davidjhoward | 16:7f6599312962 | 58 | } |
| davidjhoward | 16:7f6599312962 | 59 | |
| davidjhoward | 16:7f6599312962 | 60 | logInfo("joining network"); |
| davidjhoward | 21:85c69494c0ff | 61 | while ((ret = dot->joinNetwork()) != mDot::MDOT_OK) { |
| davidjhoward | 16:7f6599312962 | 62 | logError("failed to join network %d:%s", ret, mDot::getReturnCodeString(ret).c_str()); |
| davidjhoward | 16:7f6599312962 | 63 | // in the 868 (EU) frequency band, we need to wait until another channel is available before transmitting again |
| davidjhoward | 21:85c69494c0ff | 64 | osDelay(std::max((uint32_t)1000, (uint32_t)dot->getNextTxMs())); |
| davidjhoward | 16:7f6599312962 | 65 | } |
| davidjhoward | 16:7f6599312962 | 66 | logInfo("Joined Network"); |
| davidjhoward | 16:7f6599312962 | 67 | } |
