Demo program for UBLOX cell modem using Nucleo-L073RZ
Dependencies: C027_Support MQTT mbed-dev
Fork of Cellular_HelloMQTT by
Diff: main.cpp
- Revision:
- 17:8a0680427384
- Parent:
- 15:710f99b36ff2
diff -r c65e14e13728 -r 8a0680427384 main.cpp --- a/main.cpp Thu Jul 03 17:28:22 2014 +0000 +++ b/main.cpp Tue Jan 24 17:06:14 2017 +0000 @@ -32,116 +32,116 @@ #include "MDM.h" //! Set your secret SIM pin here (e.g. "1234"). Check your SIM manual. #define SIMPIN NULL -/*! The APN of your network operator SIM, sometimes it is "internet" check your - contract with the network operator. You can also try to look-up your settings in +/*! The APN of your network operator SIM, sometimes it is "internet" check your + contract with the network operator. You can also try to look-up your settings in google: https://www.google.de/search?q=APN+list */ -#define APN NULL +#define APN "epc.tmobile.com" //! Set the user name for your APN, or NULL if not needed #define USERNAME NULL //! Set the password for your APN, or NULL if not needed -#define PASSWORD NULL +#define PASSWORD NULL //------------------------------------------------------------------------------------ -#include "C12832.h" -#if defined(TARGET_LPC1768) && !defined(TARGET_UBLOX_C027) -C12832 lcd(p5, p7, p6, p8, p11); // The classic TARGET_MBED_LPC1768 -#else -C12832 lcd(D11, D13, D12, D7, D10); -#endif - #include "MQTTSocket.h" #include "MQTTClient.h" +DigitalOut myled(LED1); int arrivedcount = 0; void messageArrived(MQTT::MessageData& md) { MQTT::Message &message = md.message; - lcd.cls(); - lcd.locate(0,3); - printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\n", message.qos, message.retained, message.dup, message.id); - printf("Payload %.*s\n", message.payloadlen, (char*)message.payload); + printf("Message arrived: qos %d, retained %d, dup %d, packetid %d\r\n", message.qos, message.retained, message.dup, message.id); + printf("Payload %.*s\r", message.payloadlen, (char*)message.payload); ++arrivedcount; - lcd.puts((char*)message.payload); } int main(int argc, char* argv[]) { - MDMSerial mdm; + + printf("start\r\n"); + MDMSerial mdm(PC_10,PC_11); //mdm.setDebug(4); // enable this for debugging issues - if (!mdm.connect(SIMPIN, APN,USERNAME,PASSWORD)) - return -1; + printf("attempting to connect to network\r\n"); + if (!mdm.connect(SIMPIN, APN,USERNAME,PASSWORD)){ + printf("no connect\r\n"); + while(1) { + myled = 1; + wait(0.25); + myled = 0; + wait(0.25); + } + } MQTTSocket ipstack = MQTTSocket(); float version = 0.47; - char* topic = "mbed-sample"; + char* topic = "HelloWorld"; - lcd.printf("Version is %f\n", version); - printf("Version is %f\n", version); + printf("Version is %f\r\n", version); MQTT::Client<MQTTSocket, Countdown> client = MQTT::Client<MQTTSocket, Countdown>(ipstack); char* hostname = "m2m.eclipse.org"; int port = 1883; - lcd.printf("Connecting to %s:%d\n", hostname, port); + printf("Connecting to %s:%d\r\n", hostname, port); int rc = ipstack.connect(hostname, port); if (rc != 0) - lcd.printf("rc from TCP connect is %d\n", rc); + printf("rc from TCP connect is %d\r\n", rc); MQTTPacket_connectData data = MQTTPacket_connectData_initializer; - data.MQTTVersion = 3; - data.clientID.cstring = "mbed-sample"; - if ((rc = client.connect(&data)) != 0) - lcd.printf("rc from MQTT connect is %d\n", rc); + data.MQTTVersion = 4; + data.clientID.cstring = "MQTT_Test"; + if ((rc = client.connect(data)) != 0) + printf("rc from MQTT connect is %d\n", rc); - if ((rc = client.subscribe(topic, MQTT::QOS1, messageArrived)) != 0) - lcd.printf("rc from MQTT subscribe is %d\n", rc); + if ((rc = client.subscribe(topic, MQTT::QOS0, messageArrived)) != 0) + printf("rc from MQTT subscribe is %d\r\n", rc); MQTT::Message message; // QoS 0 char buf[100]; - sprintf(buf, "Hello World! QoS 0 message from app version %f\n", version); + sprintf(buf, "Hello World! QoS 0 message from app version %f\r\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); + 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); + sprintf(buf, "Hello World! QoS 1 message from app version %f\r\n", version); message.qos = MQTT::QOS1; message.payloadlen = strlen(buf)+1; - rc = client.publish(topic, &message); + 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); + //todo configure server for QoS2 + sprintf(buf, "Hello World! QoS 2 message from app version %f\r\n", version); message.qos = MQTT::QOS2; message.payloadlen = strlen(buf)+1; - rc = client.publish(topic, &message); + rc = client.publish(topic, message); while (arrivedcount == 2) client.yield(100); - + */ if ((rc = client.unsubscribe(topic)) != 0) - printf("rc from unsubscribe was %d\n", rc); + printf("rc from unsubscribe was %d\r\n", rc); if ((rc = client.disconnect()) != 0) - printf("rc from disconnect was %d\n", rc); + printf("rc from disconnect was %d\r\n", rc); ipstack.disconnect(); mdm.disconnect(); mdm.powerOff(); - lcd.cls(); - lcd.locate(0,3); - lcd.printf("Version %.2f: finish %d msgs\n", version, arrivedcount); - printf("Finishing with %d messages received\n", arrivedcount); + printf("Version %.2f: finish %d msgs\r\n", version, arrivedcount); + printf("Finishing with %d messages received\r\n", arrivedcount); return 0; -} \ No newline at end of file +} +