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 miao zhicheng

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

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