Sample test program for the MQTT PubSubClient library
Dependencies: C12832_lcd EthernetInterface MQTT mbed-rtos mbed
main.cpp@1:5570162c5994, 2013-05-26 (annotated)
- Committer:
- jwende
- Date:
- Sun May 26 16:55:47 2013 +0000
- Revision:
- 1:5570162c5994
- Parent:
- 0:3f9dd63f4f98
Sample test program for the MQTT PubSubClient Library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jwende | 0:3f9dd63f4f98 | 1 | #include "mbed.h" |
jwende | 0:3f9dd63f4f98 | 2 | #include "EthernetInterface.h" |
jwende | 0:3f9dd63f4f98 | 3 | #include "C12832_lcd.h" |
jwende | 0:3f9dd63f4f98 | 4 | #include "PubSubClient.h" |
jwende | 0:3f9dd63f4f98 | 5 | |
jwende | 0:3f9dd63f4f98 | 6 | C12832_LCD lcd; |
jwende | 0:3f9dd63f4f98 | 7 | Serial pc(USBTX, USBRX); |
jwende | 0:3f9dd63f4f98 | 8 | |
jwende | 0:3f9dd63f4f98 | 9 | char* serverIpAddr = "192.168.2.111"; /*Sever ip address*/ |
jwende | 0:3f9dd63f4f98 | 10 | int port = 1883; /*Sever Port*/ |
jwende | 0:3f9dd63f4f98 | 11 | void callback(char* topic, char* payload, unsigned int len); /*Callback function prototype*/ |
jwende | 0:3f9dd63f4f98 | 12 | PubSubClient mqtt(serverIpAddr, port, callback); |
jwende | 0:3f9dd63f4f98 | 13 | EthernetInterface eth; |
jwende | 0:3f9dd63f4f98 | 14 | |
jwende | 0:3f9dd63f4f98 | 15 | void callback(char* topic, char* payload, unsigned int len) |
jwende | 0:3f9dd63f4f98 | 16 | { |
jwende | 0:3f9dd63f4f98 | 17 | lcd.printf("Topic: %s\r\n", topic); |
jwende | 0:3f9dd63f4f98 | 18 | lcd.printf("Payload: %s\r\n\r\n", payload); |
jwende | 0:3f9dd63f4f98 | 19 | //Send incoming payloads back to topic "/mbed". |
jwende | 0:3f9dd63f4f98 | 20 | mqtt.publish("mbed", payload, len); |
jwende | 0:3f9dd63f4f98 | 21 | } |
jwende | 0:3f9dd63f4f98 | 22 | |
jwende | 0:3f9dd63f4f98 | 23 | int main() { |
jwende | 0:3f9dd63f4f98 | 24 | |
jwende | 0:3f9dd63f4f98 | 25 | eth.init(); //Use DHCP |
jwende | 0:3f9dd63f4f98 | 26 | eth.connect(); |
jwende | 0:3f9dd63f4f98 | 27 | lcd.cls(); |
jwende | 0:3f9dd63f4f98 | 28 | lcd.locate(0,3); |
jwende | 0:3f9dd63f4f98 | 29 | pc.printf("IP Address is %s\n", eth.getIPAddress()); |
jwende | 0:3f9dd63f4f98 | 30 | |
jwende | 0:3f9dd63f4f98 | 31 | pc.printf("MQTTClient Tester"); |
jwende | 0:3f9dd63f4f98 | 32 | |
jwende | 0:3f9dd63f4f98 | 33 | |
jwende | 0:3f9dd63f4f98 | 34 | char clientID[] = "mbed"; /*Client nanme show for MQTT server*/ |
jwende | 0:3f9dd63f4f98 | 35 | char pub_topic[] = "mbed"; /*Publish to topic : "/mbed" */ |
jwende | 0:3f9dd63f4f98 | 36 | char sub_topic[] = "mirror"; /*Subscribe to topic : "/mirror" */ |
jwende | 0:3f9dd63f4f98 | 37 | |
jwende | 0:3f9dd63f4f98 | 38 | if(!mqtt.connect(clientID)){ |
jwende | 0:3f9dd63f4f98 | 39 | pc.printf("\r\nConnect to server failed ..\r\n"); |
jwende | 0:3f9dd63f4f98 | 40 | return -1; |
jwende | 0:3f9dd63f4f98 | 41 | } |
jwende | 0:3f9dd63f4f98 | 42 | |
jwende | 0:3f9dd63f4f98 | 43 | pc.printf("\r\nConnect to server sucessed ..\r\n"); |
jwende | 0:3f9dd63f4f98 | 44 | |
jwende | 0:3f9dd63f4f98 | 45 | mqtt.publish(pub_topic, "Hello here is mbed..."); |
jwende | 0:3f9dd63f4f98 | 46 | mqtt.subscribe(sub_topic); |
jwende | 0:3f9dd63f4f98 | 47 | |
jwende | 0:3f9dd63f4f98 | 48 | |
jwende | 0:3f9dd63f4f98 | 49 | pc.printf("#### End of the test.. ####"); |
jwende | 0:3f9dd63f4f98 | 50 | |
jwende | 0:3f9dd63f4f98 | 51 | //eth.disconnect(); |
jwende | 0:3f9dd63f4f98 | 52 | |
jwende | 0:3f9dd63f4f98 | 53 | while(1) { |
jwende | 0:3f9dd63f4f98 | 54 | mqtt.loop(); |
jwende | 0:3f9dd63f4f98 | 55 | } |
jwende | 0:3f9dd63f4f98 | 56 | } |