HuyNQ
Dependencies: C12832 MQTT_MbedOS
Fork of mbed-os-mqtt by
main.cpp@2:c89dbc1d8123, 2017-11-02 (annotated)
- Committer:
- kokichi226
- Date:
- Thu Nov 02 09:59:26 2017 +0000
- Revision:
- 2:c89dbc1d8123
- Parent:
- 1:8d33e7fdd27c
Fix Printf
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
azazeal88 | 0:35df42ee93ed | 1 | #include "mbed.h" |
azazeal88 | 0:35df42ee93ed | 2 | #include "MQTTEthernet.h" |
azazeal88 | 0:35df42ee93ed | 3 | #include "MQTTClient.h" |
azazeal88 | 0:35df42ee93ed | 4 | |
azazeal88 | 0:35df42ee93ed | 5 | |
azazeal88 | 0:35df42ee93ed | 6 | // MQTT Variables |
kokichi226 | 1:8d33e7fdd27c | 7 | char* MqttHostname = "192.168.1.105"; |
azazeal88 | 0:35df42ee93ed | 8 | int MqttPort = 1883; |
kokichi226 | 1:8d33e7fdd27c | 9 | char* MqttTopic = "mbed-sample-dssdsdhhuynq"; |
kokichi226 | 1:8d33e7fdd27c | 10 | char* MqttClientId = "changeme-huynq-zcaxcaz"; |
azazeal88 | 0:35df42ee93ed | 11 | |
azazeal88 | 0:35df42ee93ed | 12 | int main() |
azazeal88 | 0:35df42ee93ed | 13 | { |
kokichi226 | 1:8d33e7fdd27c | 14 | |
kokichi226 | 2:c89dbc1d8123 | 15 | printf("Example MQTT client\r\n"); |
azazeal88 | 0:35df42ee93ed | 16 | |
azazeal88 | 0:35df42ee93ed | 17 | // Brings up the network interface |
azazeal88 | 0:35df42ee93ed | 18 | MQTTEthernet eth = MQTTEthernet(); |
azazeal88 | 0:35df42ee93ed | 19 | const char *ip = eth.get_ip_address(); |
azazeal88 | 0:35df42ee93ed | 20 | |
kokichi226 | 1:8d33e7fdd27c | 21 | |
kokichi226 | 2:c89dbc1d8123 | 22 | printf("IP address is: %s\r\n", ip ? ip : "No IP"); |
azazeal88 | 0:35df42ee93ed | 23 | |
azazeal88 | 0:35df42ee93ed | 24 | // Create Mbed Client Interface |
azazeal88 | 0:35df42ee93ed | 25 | MQTT::Client<MQTTEthernet, Countdown> client = MQTT::Client<MQTTEthernet, Countdown>(eth); |
azazeal88 | 0:35df42ee93ed | 26 | |
azazeal88 | 0:35df42ee93ed | 27 | // Create TCP connection |
azazeal88 | 0:35df42ee93ed | 28 | eth.open(eth.getEth()); |
azazeal88 | 0:35df42ee93ed | 29 | int rc = eth.connect(MqttHostname, MqttPort); |
kokichi226 | 2:c89dbc1d8123 | 30 | printf("TCP Status: %s\r\n", (rc == 0) ? "Success" : "Failure"); |
azazeal88 | 0:35df42ee93ed | 31 | |
azazeal88 | 0:35df42ee93ed | 32 | // Wait for a short length of time to allow user to see output messages. |
azazeal88 | 0:35df42ee93ed | 33 | Thread::wait(2000); |
azazeal88 | 0:35df42ee93ed | 34 | |
azazeal88 | 0:35df42ee93ed | 35 | if(rc == 0){ |
azazeal88 | 0:35df42ee93ed | 36 | |
kokichi226 | 1:8d33e7fdd27c | 37 | |
kokichi226 | 1:8d33e7fdd27c | 38 | printf("Starting MQTT Client"); |
azazeal88 | 0:35df42ee93ed | 39 | |
azazeal88 | 0:35df42ee93ed | 40 | MQTTPacket_connectData data = MQTTPacket_connectData_initializer; |
azazeal88 | 0:35df42ee93ed | 41 | data.MQTTVersion = 3; |
azazeal88 | 0:35df42ee93ed | 42 | data.clientID.cstring = MqttClientId; |
azazeal88 | 0:35df42ee93ed | 43 | rc = client.connect(data); |
azazeal88 | 0:35df42ee93ed | 44 | |
kokichi226 | 1:8d33e7fdd27c | 45 | |
kokichi226 | 2:c89dbc1d8123 | 46 | printf("MQTT Client: %s\r\n", (rc == 0) ? "Connected" : "Failed"); |
azazeal88 | 0:35df42ee93ed | 47 | |
azazeal88 | 0:35df42ee93ed | 48 | while(rc == 0){ |
azazeal88 | 0:35df42ee93ed | 49 | MQTT::Message message; |
azazeal88 | 0:35df42ee93ed | 50 | |
azazeal88 | 0:35df42ee93ed | 51 | // QoS 0 |
azazeal88 | 0:35df42ee93ed | 52 | char buf[100]; |
azazeal88 | 0:35df42ee93ed | 53 | sprintf(buf, "Hello World!"); |
azazeal88 | 0:35df42ee93ed | 54 | message.qos = MQTT::QOS0; |
azazeal88 | 0:35df42ee93ed | 55 | message.retained = false; |
azazeal88 | 0:35df42ee93ed | 56 | message.dup = false; |
azazeal88 | 0:35df42ee93ed | 57 | message.payload = (void*)buf; |
azazeal88 | 0:35df42ee93ed | 58 | message.payloadlen = strlen(buf)+1; |
azazeal88 | 0:35df42ee93ed | 59 | rc = client.publish(MqttTopic, message); |
azazeal88 | 0:35df42ee93ed | 60 | |
azazeal88 | 0:35df42ee93ed | 61 | Thread::wait(5000); |
azazeal88 | 0:35df42ee93ed | 62 | |
azazeal88 | 0:35df42ee93ed | 63 | } |
azazeal88 | 0:35df42ee93ed | 64 | } |
azazeal88 | 0:35df42ee93ed | 65 | |
azazeal88 | 0:35df42ee93ed | 66 | // It is good practice to close the socket |
azazeal88 | 0:35df42ee93ed | 67 | eth.disconnect(); |
azazeal88 | 0:35df42ee93ed | 68 | } |
azazeal88 | 0:35df42ee93ed | 69 |