1.mqtt参数初始化
unsigned char sendbuf[80], readbuf[80];
MQTTClient client;
Network network;
MQTTPacket_connectData connectData = MQTTPacket_connectData_initializer;
NetworkInit(&network);
MQTTClientInit(&client, &network, 30000, sendbuf, sizeof(sendbuf), readbuf, sizeof(readbuf));
2.mqtt网络层连接
char* address = “iot.eclipse.org”;
if ((rc = NetworkConnect(&network, address, 1883)) != 0)
printf(“Return code from network connect is %d\n”, rc);
3.mqtt协议层连接
connectData.MQTTVersion = 3;
connectData.clientID.cstring = “FreeRTOS_sample”;
if ((rc = MQTTConnect(&client, &connectData)) != 0)
printf(“Return code from MQTT connect is %d\n”, rc);
else
printf(“MQTT Connected\n”);
4.主题订阅(可选)
void messageArrived(MessageData* data)
{
printf(“Message arrived on topic %.*s: %.*s\n”, data->topicName->lenstring.len, data->topicName->lenstring.data,
data->message->payloadlen, data->message->payload);
}
if ((rc = MQTTSubscribe(&client, “FreeRTOS/sample/#”, 2, messageArrived)) != 0)
printf(“Return code from MQTT subscribe is %d\n”, rc);