Connecting a Multi-Tech Systems Dragonfly™ to Twilio's Sync for IoT Quickstart. Blink a dev board LED.
Dependencies: MQTT MbedJSONValue mbed mtsas
Fork of DragonflyMQTT by
Code to connect a Multi-Tech® MultiConnect® Dragonfly™ to Twilio's Sync for IoT: https://www.twilio.com/docs/api/devices
Uses MQTT over TLS and subscribes to a topic where you can control an LED. See also our Quickstart using this code, here: https://www.twilio.com/docs/quickstart/sync-iot/mqtt-multi-tech-multiconnect-dragonfly-sync-iot
Diff: MTSCellularManager.cpp
- Revision:
- 0:b32fa0c757d7
- Child:
- 1:5a896191c3c4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MTSCellularManager.cpp Tue May 09 13:16:48 2017 +0000 @@ -0,0 +1,47 @@ +#include "MTSCellularManager.hpp" + +MTSCellularManager::MTSCellularManager(const char* apn_) : apn(apn_), io(NULL), radio(NULL) { +} + +MTSCellularManager::~MTSCellularManager() { + delete radio; + delete io; +} + +bool MTSCellularManager::init() { + logInfo("initializing cellular radio"); + + io = new mts::MTSSerialFlowControl(RADIO_TX, RADIO_RX, RADIO_RTS, RADIO_CTS); + // radio default baud rate is 115200 + io->baud(115200); + if (! io) + return false; + + radio = mts::CellularFactory::create(io); + if (! radio) + return false; + + // Transport must be set properly before any TCPSocketConnection or UDPSocket objects are created + Transport::setTransport(radio); + + logInfo("setting APN"); + if (radio->setApn(apn) != MTS_SUCCESS) { + logError("failed to set APN to \"%s\"", apn); + return false; + } + + logInfo("bringing up the link"); + if (! radio->connect()) { + logError("failed to bring up the link"); + return false; + } else { + return true; + } +} + +void MTSCellularManager::uninit() { + logInfo("finished - bringing down link"); + radio->disconnect(); + delete radio; + delete io; +} \ No newline at end of file