MQTTClient test to subscribe to Pachube feed
Dependencies: NetServices mbed DNSResolver
main.cpp@0:fb491df6af35, 2012-03-20 (annotated)
- Committer:
- SomeRandomBloke
- Date:
- Tue Mar 20 21:06:24 2012 +0000
- Revision:
- 0:fb491df6af35
Who changed what in which revision?
User | Revision | Line number | New 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 | } |