v1
Dependencies: MQTTSN mbed-http
Client-AE.cpp@15:557d0008dd2d, 2019-03-11 (annotated)
- Committer:
- m_ahsan
- Date:
- Mon Mar 11 07:51:06 2019 +0000
- Revision:
- 15:557d0008dd2d
123
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
m_ahsan | 15:557d0008dd2d | 1 | #define MQTTSNCLIENT_QOS2 1 |
m_ahsan | 15:557d0008dd2d | 2 | |
m_ahsan | 15:557d0008dd2d | 3 | #include "mbed.h" |
m_ahsan | 15:557d0008dd2d | 4 | #include "stdio.h" |
m_ahsan | 15:557d0008dd2d | 5 | #include "MQTT_server_setting.h" |
m_ahsan | 15:557d0008dd2d | 6 | #include "MQTTSNUDP.h" |
m_ahsan | 15:557d0008dd2d | 7 | #include "MQTTSNClient.h" |
m_ahsan | 15:557d0008dd2d | 8 | #include "MbedJSONValue.h" |
m_ahsan | 15:557d0008dd2d | 9 | #include "Enumeration.h" |
m_ahsan | 15:557d0008dd2d | 10 | #include "sensor.h" |
m_ahsan | 15:557d0008dd2d | 11 | #include "easy-connect.h" |
m_ahsan | 15:557d0008dd2d | 12 | #include "MQTTSN_func.h" |
m_ahsan | 15:557d0008dd2d | 13 | #include "registration.h" |
m_ahsan | 15:557d0008dd2d | 14 | |
m_ahsan | 15:557d0008dd2d | 15 | NetworkInterface* network = NULL; |
m_ahsan | 15:557d0008dd2d | 16 | |
m_ahsan | 15:557d0008dd2d | 17 | int main() { |
m_ahsan | 15:557d0008dd2d | 18 | |
m_ahsan | 15:557d0008dd2d | 19 | float version = 0.47; |
m_ahsan | 15:557d0008dd2d | 20 | MQTTSNUDP* ipstack = NULL; |
m_ahsan | 15:557d0008dd2d | 21 | MQTTSN::Client<MQTTSNUDP, Countdown> *client = NULL; |
m_ahsan | 15:557d0008dd2d | 22 | |
m_ahsan | 15:557d0008dd2d | 23 | ///////////////////////////////////////////////////////////////////////////////////////// |
m_ahsan | 15:557d0008dd2d | 24 | printf("Nai binary hai ye theek hai Opening network interface...\r\n"); |
m_ahsan | 15:557d0008dd2d | 25 | { |
m_ahsan | 15:557d0008dd2d | 26 | network = easy_connect(true); // If true, prints out connection details. |
m_ahsan | 15:557d0008dd2d | 27 | if (!network) { |
m_ahsan | 15:557d0008dd2d | 28 | printf("Unable to open network interface.\r\n"); |
m_ahsan | 15:557d0008dd2d | 29 | return -1; |
m_ahsan | 15:557d0008dd2d | 30 | } |
m_ahsan | 15:557d0008dd2d | 31 | } |
m_ahsan | 15:557d0008dd2d | 32 | printf("Network interface opened successfully.\r\n"); |
m_ahsan | 15:557d0008dd2d | 33 | printf("\r\n"); |
m_ahsan | 15:557d0008dd2d | 34 | JUMP: |
m_ahsan | 15:557d0008dd2d | 35 | ipstack = new MQTTSNUDP(network); |
m_ahsan | 15:557d0008dd2d | 36 | //MQTTSNUDP ipstack = MQTTSNUDP(network); |
m_ahsan | 15:557d0008dd2d | 37 | |
m_ahsan | 15:557d0008dd2d | 38 | const char* Local_IP = network->get_ip_address(); |
m_ahsan | 15:557d0008dd2d | 39 | printf("IP Address of Device is: %s\n", Local_IP); |
m_ahsan | 15:557d0008dd2d | 40 | |
m_ahsan | 15:557d0008dd2d | 41 | const char* Local_MAC = network->get_mac_address(); |
m_ahsan | 15:557d0008dd2d | 42 | printf("MAC Address of Device is: %s\n", Local_MAC); |
m_ahsan | 15:557d0008dd2d | 43 | |
m_ahsan | 15:557d0008dd2d | 44 | client = new MQTTSN::Client<MQTTSNUDP, Countdown>(*ipstack); |
m_ahsan | 15:557d0008dd2d | 45 | //////////////////////////////////UDP Connect/////////////////////////////////////////// |
m_ahsan | 15:557d0008dd2d | 46 | printf("Connecting to %s:%d\n", MQTT_SERVER_HOST_NAME, PORT); |
m_ahsan | 15:557d0008dd2d | 47 | rc = ipstack->connect(MQTT_SERVER_HOST_NAME, PORT); |
m_ahsan | 15:557d0008dd2d | 48 | if (rc != 0) |
m_ahsan | 15:557d0008dd2d | 49 | printf("rc from UDP connect is %d\n", rc); |
m_ahsan | 15:557d0008dd2d | 50 | else |
m_ahsan | 15:557d0008dd2d | 51 | printf("UDP connected\n"); |
m_ahsan | 15:557d0008dd2d | 52 | //////////////////////////////////MQTT Connect/////////////////////////////////////////// |
m_ahsan | 15:557d0008dd2d | 53 | attemptConnect(client, ipstack); |
m_ahsan | 15:557d0008dd2d | 54 | Registration(client, ipstack); |
m_ahsan | 15:557d0008dd2d | 55 | while(1) |
m_ahsan | 15:557d0008dd2d | 56 | { |
m_ahsan | 15:557d0008dd2d | 57 | // Check connection // |
m_ahsan | 15:557d0008dd2d | 58 | if(!client->isConnected()){ |
m_ahsan | 15:557d0008dd2d | 59 | break; |
m_ahsan | 15:557d0008dd2d | 60 | } |
m_ahsan | 15:557d0008dd2d | 61 | // Received a control message. // |
m_ahsan | 15:557d0008dd2d | 62 | if(isMessageArrived) { |
m_ahsan | 15:557d0008dd2d | 63 | isMessageArrived = false; |
m_ahsan | 15:557d0008dd2d | 64 | // Just print it out here. |
m_ahsan | 15:557d0008dd2d | 65 | //printf("\r\nMessage arrived:\r\n%s\r\n", messageBuffer); |
m_ahsan | 15:557d0008dd2d | 66 | //process_msg(); |
m_ahsan | 15:557d0008dd2d | 67 | //free(messageBuffer); |
m_ahsan | 15:557d0008dd2d | 68 | } |
m_ahsan | 15:557d0008dd2d | 69 | // Publish data // |
m_ahsan | 15:557d0008dd2d | 70 | //PUB_Count++; |
m_ahsan | 15:557d0008dd2d | 71 | |
m_ahsan | 15:557d0008dd2d | 72 | client->yield(4000); |
m_ahsan | 15:557d0008dd2d | 73 | //wait(4); |
m_ahsan | 15:557d0008dd2d | 74 | |
m_ahsan | 15:557d0008dd2d | 75 | } |
m_ahsan | 15:557d0008dd2d | 76 | |
m_ahsan | 15:557d0008dd2d | 77 | //if ((rc = client->unsubscribe(topicid2)) != 0) |
m_ahsan | 15:557d0008dd2d | 78 | // printf("rc from unsubscribe was %d\n", rc); |
m_ahsan | 15:557d0008dd2d | 79 | |
m_ahsan | 15:557d0008dd2d | 80 | if ((rc = client->disconnect()) != 0) |
m_ahsan | 15:557d0008dd2d | 81 | printf("rc from disconnect was %d\n", rc); |
m_ahsan | 15:557d0008dd2d | 82 | |
m_ahsan | 15:557d0008dd2d | 83 | ipstack->disconnect(); |
m_ahsan | 15:557d0008dd2d | 84 | |
m_ahsan | 15:557d0008dd2d | 85 | delete ipstack; |
m_ahsan | 15:557d0008dd2d | 86 | delete client; |
m_ahsan | 15:557d0008dd2d | 87 | |
m_ahsan | 15:557d0008dd2d | 88 | printf("Version %.2f: finish %d msgs\n", version, arrivedcount); |
m_ahsan | 15:557d0008dd2d | 89 | printf("Finishing with %d messages received\n", arrivedcount); |
m_ahsan | 15:557d0008dd2d | 90 | goto JUMP; |
m_ahsan | 15:557d0008dd2d | 91 | |
m_ahsan | 15:557d0008dd2d | 92 | return 0; |
m_ahsan | 15:557d0008dd2d | 93 | |
m_ahsan | 15:557d0008dd2d | 94 | } |