Echo example of class C devices receiving downlink and sending as next uplink
Dependencies: libmDot-mbed5 ISL29011
Diff: examples/src/auto_ota_example.cpp
- Revision:
- 21:09d05faf0e13
- Parent:
- 17:d4f82e16de5f
- Child:
- 22:d9bc10bbc433
--- a/examples/src/auto_ota_example.cpp Tue May 16 10:47:10 2017 -0500 +++ b/examples/src/auto_ota_example.cpp Fri Jun 09 08:31:21 2017 -0500 @@ -29,6 +29,7 @@ static uint8_t frequency_sub_band = 0; static bool public_network = false; static uint8_t ack = 0; +static bool adr = true; // deepsleep consumes slightly less current than sleep // in sleep mode, IO state is maintained, RAM is retained, and application will resume after waking up @@ -37,6 +38,7 @@ static bool deep_sleep = true; mDot* dot = NULL; +lora::ChannelPlan* plan = NULL; Serial pc(USBTX, USBRX); @@ -55,7 +57,23 @@ mts::MTSLog::setLogLevel(mts::MTSLog::TRACE_LEVEL); - dot = mDot::getInstance(); +#if CHANNEL_PLAN == CP_US915 + plan = new lora::ChannelPlan_US915(); +#elif CHANNEL_PLAN == CP_AU915 + plan = new lora::ChannelPlan_AU915(); +#elif CHANNEL_PLAN == CP_EU868 + plan = new lora::ChannelPlan_EU868(); +#elif CHANNEL_PLAN == CP_KR920 + plan = new lora::ChannelPlan_KR920(); +#elif CHANNEL_PLAN == CP_AS923 + plan = new lora::ChannelPlan_AS923(); +#elif CHANNEL_PLAN == CP_AS923_JAPAN + plan = new lora::ChannelPlan_AS923_Japan(); +#endif + assert(plan); + + dot = mDot::getInstance(plan); + assert(dot); // attach the custom events handler dot->setEvents(&events); @@ -90,9 +108,12 @@ // network link checks are a good alternative to requiring the gateway to ACK every packet and should allow a single gateway to handle more Dots // check the link every count packets // declare the Dot disconnected after threshold failed link checks - // for count = 3 and threshold = 5, the Dot will be considered disconnected after 15 missed packets in a row + // for count = 3 and threshold = 5, the Dot will ask for a link check response every 5 packets and will consider the connection lost if it fails to receive 3 responses in a row update_network_link_check_config(3, 5); + // enable or disable Adaptive Data Rate + dot->setAdr(adr); + // save changes to configuration logInfo("saving configuration"); if (!dot->saveConfig()) {