1.环境介绍
MT7620(此处并不是很重要,ubuntu其实也可以)
2.具体操作
1)安装mosquitto库
在menuconfig下找到该库,然后打上<*>编译,让你的sdk下拥有这个库
2)直接上代码
struct mosquitto *mosq;
void my_connect_callback(struct mosquitto *mosq, void *obj, int rc)
{
//printf("rc11: %d\n", rc);
}
void my_disconnect_callback(struct mosquitto *mosq, void *obj, int result)
{
mosquitto_destroy(mosq);
mosquitto_lib_cleanup();
}
void my_publish_callback(struct mosquitto *mosq, void *obj, int mid)
{
//printf("%d ", message_count);
}
void my_message_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *msg)
{
char *message = NULL;
message = (char *)msg->payload;
printf("recv len is: %d, message is %s\n", msg->payloadlen, msg->payload);
}
int mqttInit(void)
{
int mid = 0;
mosquitto_lib_init();
mosq = mosquitto_new("mqtt", true, NULL);
mosquitto_connect_callback_set(mosq, my_connect_callback);
mosquitto_disconnect_callback_set(mosq, my_disconnect_callback);
mosquitto_publish_callback_set(mosq, my_publish_callback);
mosquitto_message_callback_set(mosq, my_message_callback);
mosquitto_connect(mosq, "自己的 mqtt server", 1883, 600);
mosquitto_subscribe(mosq, &mid, “sub的topic”, 1);
mosquitto_publish(mosq, NULL, “pub的topic“”, “发送的内容长度”, “所要发送的内容”, 1, false);
return SUCCESSES;
}
3. 重点
最后就是起一个线程不停地去跑mosquitto_loop_start(mosq);
4. 交叉编译然后在板子上运行
检测的话可以通过mosquitto_sub或者mosquitto_pub来进行联调