3 changed files with 65 additions and 54 deletions
@ -0,0 +1,6 @@ |
|||
{ |
|||
"files.associations": { |
|||
"map": "cpp", |
|||
"set": "cpp" |
|||
} |
|||
} |
@ -0,0 +1,9 @@ |
|||
# Defines the Chromium style for automatic reformatting. |
|||
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html |
|||
Language: Cpp |
|||
BasedOnStyle: Google |
|||
ColumnLimit: 120 |
|||
AlignConsecutiveMacros: true |
|||
AlignConsecutiveDeclarations: true |
|||
AlignConsecutiveAssignments: true |
|||
AlignOperands: true |
@ -1,68 +1,64 @@ |
|||
// |
|||
// Created by zwsd |
|||
// |
|||
#include "MQTTClient.h" |
|||
#include "stdlib.h" |
|||
#include "string.h" |
|||
#include "unistd.h" |
|||
#include "MQTTClient.h" |
|||
|
|||
#define ADDRESS "mqtt://iot-06z00dtdbnukzsk.mqtt.iothub.aliyuncs.com:1883" |
|||
#define ADDRESS "mqtt://iot-06z00dtdbnukzsk.mqtt.iothub.aliyuncs.com:1883" |
|||
#define USERNAME "mh_2&iekhmHv4wIC" |
|||
#define PASSWORD "8491b7d3391d51f40120bb9d81a4b713c624ce7beb216b9d37076508ac6e7446" |
|||
#define CLIENTID "iekhmHv4wIC.mh_2|securemode=2,signmethod=hmacsha256,timestamp=1680575050297|" |
|||
#define QOS 0 |
|||
#define TOPIC "/sys/iekhmHv4wIC/mh_2/thing/event/property/post" |
|||
#define TIMEOUT 10000L |
|||
#define QOS 0 |
|||
#define TOPIC "/sys/iekhmHv4wIC/mh_2/thing/event/property/post" |
|||
#define TIMEOUT 10000L |
|||
|
|||
void publish(MQTTClient client, char *topic, char *payload) |
|||
{ |
|||
MQTTClient_message message = MQTTClient_message_initializer; |
|||
message.payload = payload; |
|||
message.payloadlen = strlen(payload); |
|||
message.qos = QOS; |
|||
message.retained = 0; |
|||
MQTTClient_deliveryToken token; |
|||
MQTTClient_publishMessage(client, topic, &message, &token); |
|||
MQTTClient_waitForCompletion(client, token, TIMEOUT); |
|||
printf("Send `%s` to topic `%s` \n", payload, TOPIC); |
|||
void publish(MQTTClient client, char *topic, char *payload) { |
|||
MQTTClient_message message = MQTTClient_message_initializer; |
|||
message.payload = payload; |
|||
message.payloadlen = strlen(payload); |
|||
message.qos = QOS; |
|||
message.retained = 0; |
|||
MQTTClient_deliveryToken token; |
|||
MQTTClient_publishMessage(client, topic, &message, &token); |
|||
MQTTClient_waitForCompletion(client, token, TIMEOUT); |
|||
printf("Send `%s` to topic `%s` \n", payload, TOPIC); |
|||
} |
|||
|
|||
int on_message(void *context, char *topicName, int topicLen, MQTTClient_message *message) |
|||
{ |
|||
char *payload = message->payload; |
|||
printf("Received `%s` from `%s` topic \n", payload, topicName); |
|||
MQTTClient_freeMessage(&message); |
|||
MQTTClient_free(topicName); |
|||
return 1; |
|||
int on_message(void *context, char *topicName, int topicLen, MQTTClient_message *message) { |
|||
char *payload = message->payload; |
|||
printf("Received `%s` from `%s` topic \n", payload, topicName); |
|||
MQTTClient_freeMessage(&message); |
|||
MQTTClient_free(topicName); |
|||
return 1; |
|||
} |
|||
|
|||
int main(int argc, char *argv[]) |
|||
{ |
|||
int rc; |
|||
MQTTClient client; |
|||
int main(int argc, char *argv[]) { |
|||
int rc; |
|||
MQTTClient client; |
|||
|
|||
MQTTClient_create(&client, ADDRESS, CLIENTID, 0, NULL); |
|||
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer; |
|||
conn_opts.username = USERNAME; |
|||
conn_opts.password = PASSWORD; |
|||
MQTTClient_setCallbacks(client, NULL, NULL, on_message, NULL); |
|||
if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS) |
|||
{ |
|||
printf("Failed to connect, return code %d\n", rc); |
|||
exit(-1); |
|||
} |
|||
else |
|||
{ |
|||
printf("Connected to MQTT Broker!\n"); |
|||
} |
|||
// subscribe topic |
|||
MQTTClient_subscribe(client, TOPIC, QOS); |
|||
char payload[23]; |
|||
for (int i = 0; i < 100; i += 1) |
|||
{ |
|||
// publish message to broker |
|||
snprintf(payload, 23, "{\"RunningState\": \"%d\"}", i); |
|||
publish(client, TOPIC, payload); |
|||
sleep(1); |
|||
} |
|||
MQTTClient_disconnect(client, TIMEOUT); |
|||
MQTTClient_destroy(&client); |
|||
return rc; |
|||
MQTTClient_create(&client, ADDRESS, CLIENTID, 0, NULL); |
|||
MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer; |
|||
conn_opts.username = USERNAME; |
|||
conn_opts.password = PASSWORD; |
|||
MQTTClient_setCallbacks(client, NULL, NULL, on_message, NULL); |
|||
if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS) { |
|||
printf("Failed to connect, return code %d\n", rc); |
|||
exit(-1); |
|||
} else { |
|||
printf("Connected to MQTT Broker!\n"); |
|||
} |
|||
// subscribe topic |
|||
MQTTClient_subscribe(client, TOPIC, QOS); |
|||
char payload[23]; |
|||
for (int i = 0; i < 100; i += 1) { |
|||
// publish message to broker |
|||
snprintf(payload, 23, "{\"RunningState\": \"%d\"}", i); |
|||
publish(client, TOPIC, payload); |
|||
sleep(1); |
|||
} |
|||
MQTTClient_disconnect(client, TIMEOUT); |
|||
MQTTClient_destroy(&client); |
|||
return rc; |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue