MQTTClient test to subscribe to Pachube feed

Dependencies:   NetServices mbed DNSResolver

Committer:
SomeRandomBloke
Date:
Tue Mar 20 21:06:24 2012 +0000
Revision:
0:fb491df6af35

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
SomeRandomBloke 0:fb491df6af35 1 #include "mbed.h"
SomeRandomBloke 0:fb491df6af35 2 #include "EthernetNetIf.h"
SomeRandomBloke 0:fb491df6af35 3 #include "MQTTClient.h"
SomeRandomBloke 0:fb491df6af35 4 #include "dnsresolve.h"
SomeRandomBloke 0:fb491df6af35 5
SomeRandomBloke 0:fb491df6af35 6 EthernetNetIf ethernet;
SomeRandomBloke 0:fb491df6af35 7
SomeRandomBloke 0:fb491df6af35 8 void callback(char* topic, char* payload); /*Callback function prototype*/
SomeRandomBloke 0:fb491df6af35 9
SomeRandomBloke 0:fb491df6af35 10 MQTTClient mqtt;
SomeRandomBloke 0:fb491df6af35 11
SomeRandomBloke 0:fb491df6af35 12 Serial pc(USBTX, USBRX); // tx, rx
SomeRandomBloke 0:fb491df6af35 13
SomeRandomBloke 0:fb491df6af35 14 void callback(char* topic, char* payload)
SomeRandomBloke 0:fb491df6af35 15 {
SomeRandomBloke 0:fb491df6af35 16 printf("Topic: %s\r\n", topic);
SomeRandomBloke 0:fb491df6af35 17 printf("Payload: %s\r\n\r\n", payload);
SomeRandomBloke 0:fb491df6af35 18 //Send incoming payloads back to topic "/mbed".
SomeRandomBloke 0:fb491df6af35 19 // mqtt.publish("mbed", payload);
SomeRandomBloke 0:fb491df6af35 20 }
SomeRandomBloke 0:fb491df6af35 21
SomeRandomBloke 0:fb491df6af35 22 int main()
SomeRandomBloke 0:fb491df6af35 23 {
SomeRandomBloke 0:fb491df6af35 24 pc.baud(115200);
SomeRandomBloke 0:fb491df6af35 25 printf("\r\n############### MQTTClient Tester ###########\r\n\r\n");
SomeRandomBloke 0:fb491df6af35 26 DNSResolver resolver;
SomeRandomBloke 0:fb491df6af35 27
SomeRandomBloke 0:fb491df6af35 28 EthernetErr ethErr = ethernet.setup();
SomeRandomBloke 0:fb491df6af35 29 if(ethErr){
SomeRandomBloke 0:fb491df6af35 30 printf("Ethernet Error %d\r\n", ethErr);
SomeRandomBloke 0:fb491df6af35 31 return -1;
SomeRandomBloke 0:fb491df6af35 32 }
SomeRandomBloke 0:fb491df6af35 33
SomeRandomBloke 0:fb491df6af35 34 char clientID[] = "mbed"; /*Client name show for MQTT server*/
SomeRandomBloke 0:fb491df6af35 35 char sub_topic[] = "/v2/feeds/XXXXXX.csv"; /*Subscribe to topic - a Pachube feed, replace XXXXXX with your own feed number */
SomeRandomBloke 0:fb491df6af35 36
SomeRandomBloke 0:fb491df6af35 37 IpAddr serverIpAddr = resolver.resolveName("api.pachube.com");
SomeRandomBloke 0:fb491df6af35 38
SomeRandomBloke 0:fb491df6af35 39 mqtt.init(&serverIpAddr, 1883, "your-api-key-here", NULL, callback);
SomeRandomBloke 0:fb491df6af35 40
SomeRandomBloke 0:fb491df6af35 41 if(!mqtt.connect(clientID)){
SomeRandomBloke 0:fb491df6af35 42 printf("\r\nConnect to server failed ..\r\n");
SomeRandomBloke 0:fb491df6af35 43 return -1;
SomeRandomBloke 0:fb491df6af35 44 }
SomeRandomBloke 0:fb491df6af35 45 printf("\r\nConnect to server sucessed ..\r\n");
SomeRandomBloke 0:fb491df6af35 46
SomeRandomBloke 0:fb491df6af35 47 // mqtt.publish(pub_topic, "Hello here is mbed...");
SomeRandomBloke 0:fb491df6af35 48 mqtt.subscribe(sub_topic);
SomeRandomBloke 0:fb491df6af35 49
SomeRandomBloke 0:fb491df6af35 50 int flag = 0;
SomeRandomBloke 0:fb491df6af35 51 /*Keep alive for 300s or 5mins*/
SomeRandomBloke 0:fb491df6af35 52 while(flag < 300){
SomeRandomBloke 0:fb491df6af35 53 Net::poll();
SomeRandomBloke 0:fb491df6af35 54 wait(1);
SomeRandomBloke 0:fb491df6af35 55 flag++;
SomeRandomBloke 0:fb491df6af35 56 mqtt.live();
SomeRandomBloke 0:fb491df6af35 57 }
SomeRandomBloke 0:fb491df6af35 58
SomeRandomBloke 0:fb491df6af35 59 mqtt.disconnect();
SomeRandomBloke 0:fb491df6af35 60
SomeRandomBloke 0:fb491df6af35 61 printf("#### End of the test.. ####\r\n\r\n");
SomeRandomBloke 0:fb491df6af35 62 }