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: C027_Support C12832 MQTT mbed
Fork of Cellular_HelloMQTT by
Diff: main.cpp
- Revision:
- 10:6f1c3b718b9c
- Parent:
- 8:b32c94be6522
- Child:
- 11:c074866fcad7
--- a/main.cpp Mon May 12 10:19:47 2014 +0000
+++ b/main.cpp Tue May 13 06:15:02 2014 +0000
@@ -71,102 +71,85 @@
int main(int argc, char* argv[])
{
+ Serial pc(USBTX,USBRX);
+ pc.baud(115200);
+
// turn on the supplies of the Modem and the GPS
c027.mdmPower(true);
- wait(2);
- // Create the modem object
+ printf("Modem Initialize\r\n");
MDMSerial mdm;
-
- // initialize the modem
- printf("Modem Initialize\r\n");
- MDMParser::DevStatus devStatus;
- bool mdmOk = mdm.init(SIMPIN, &devStatus);
- if (mdmOk)
- {
- // wait until we are connected
- printf("Network Check\r\n");
- MDMParser::NetStatus netStatus;
- while (!mdm.checkNetStatus(&netStatus))
- wait_ms(1000);
-
- printf("Network Join\r\n");
- // join the internet connection
- MDMParser::IP ip = mdm.join(APN,USERNAME,PASSWORD);
- if (ip != NOIP)
- {
- printf(" IP Address: " IPSTR "\r\n", IPNUM(ip));
-
- IPStack ipstack = IPStack();
- float version = 0.43;
- char* topic = "mbed-sample";
-
- lcd.printf("Version is %f\n", version);
- printf("Version is %f\n", version);
-
- MQTT::Client<IPStack, Countdown> client = MQTT::Client<IPStack, Countdown>(ipstack);
-
- char* hostname = "m2m.eclipse.org";
- int port = 1883;
- lcd.printf("Connecting to %s:%d\n", hostname, port);
- int rc = ipstack.connect(hostname, port);
- if (rc != 0)
- lcd.printf("rc from TCP connect is %d\n", rc);
-
- MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
- data.MQTTVersion = 3;
- data.clientID.cstring = "mbed-icraggs";
- rc = client.connect(&data);
- if (rc != 0)
- lcd.printf("rc from MQTT connect is %d\n", rc);
+ if (!mdm.connect(SIMPIN, APN,USERNAME,PASSWORD, true))
+ return -1;
- rc = client.subscribe(topic, MQTT::QOS1, messageArrived);
- if (rc != 0) {
- printf("rc from MQTT subscribe is %d\n", rc);
- }
-
- MQTT::Message message;
+ IPStack ipstack = IPStack();
+ float version = 0.43;
+ char* topic = "mbed-sample";
+
+ lcd.printf("Version is %f\n", version);
+ printf("Version is %f\n", version);
+
+ MQTT::Client<IPStack, Countdown> client = MQTT::Client<IPStack, Countdown>(ipstack);
+
+ char* hostname = "m2m.eclipse.org";
+ int port = 1883;
+ lcd.printf("Connecting to %s:%d\n", hostname, port);
+ int rc = ipstack.connect(hostname, port);
+ if (rc != 0)
+ lcd.printf("rc from TCP connect is %d\n", rc);
+
+ MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
+ data.MQTTVersion = 3;
+ data.clientID.cstring = "mbed-icraggs";
+ rc = client.connect(&data);
+ if (rc != 0)
+ lcd.printf("rc from MQTT connect is %d\n", rc);
+
+ rc = client.subscribe(topic, MQTT::QOS1, messageArrived);
+ if (rc != 0) {
+ printf("rc from MQTT subscribe is %d\n", rc);
+ }
+
+ MQTT::Message message;
+
+ // QoS 0
+ char buf[100];
+ sprintf(buf, "Hello World! QoS 0 message from app version %f\n", version);
+ message.qos = MQTT::QOS0;
+ message.retained = false;
+ message.dup = false;
+ message.payload = (void*)buf;
+ message.payloadlen = strlen(buf)+1;
+ rc = client.publish(topic, &message);
+ while (arrivedcount == 0)
+ client.yield(100);
- // QoS 0
- char buf[100];
- sprintf(buf, "Hello World! QoS 0 message from app version %f\n", version);
- message.qos = MQTT::QOS0;
- message.retained = false;
- message.dup = false;
- message.payload = (void*)buf;
- message.payloadlen = strlen(buf)+1;
- rc = client.publish(topic, &message);
- while (arrivedcount == 0)
- client.yield(100);
-
- // QoS 1
- sprintf(buf, "Hello World! QoS 1 message from app version %f\n", version);
- message.qos = MQTT::QOS1;
- message.payloadlen = strlen(buf)+1;
- rc = client.publish(topic, &message);
- while (arrivedcount == 1)
- client.yield(100);
-
- // QoS 2
- sprintf(buf, "Hello World! QoS 2 message from app version %f\n", version);
- message.qos = MQTT::QOS2;
- message.payloadlen = strlen(buf)+1;
- rc = client.publish(topic, &message);
- while (arrivedcount == 2)
- client.yield(100);
-
- rc = client.unsubscribe(topic);
- if (rc != 0) {
- printf("rc from unsubscribe was %d\n", rc);
- }
-
- rc = client.disconnect();
- if (rc != 0) {
- printf("rc from disconnect was %d\n", rc);
- }
+ // QoS 1
+ sprintf(buf, "Hello World! QoS 1 message from app version %f\n", version);
+ message.qos = MQTT::QOS1;
+ message.payloadlen = strlen(buf)+1;
+ rc = client.publish(topic, &message);
+ while (arrivedcount == 1)
+ client.yield(100);
+
+ // QoS 2
+ sprintf(buf, "Hello World! QoS 2 message from app version %f\n", version);
+ message.qos = MQTT::QOS2;
+ message.payloadlen = strlen(buf)+1;
+ rc = client.publish(topic, &message);
+ while (arrivedcount == 2)
+ client.yield(100);
+
+ rc = client.unsubscribe(topic);
+ if (rc != 0) {
+ printf("rc from unsubscribe was %d\n", rc);
+ }
+
+ rc = client.disconnect();
+ if (rc != 0) {
+ printf("rc from disconnect was %d\n", rc);
+ }
- mdm.disconnect();
- }
- }
+ mdm.disconnect();
mdm.powerOff();
c027.mdmPower(false);
