IOT_MQTT_Yield会block住timeout的时间去尝试接收数据,直到timeout才会退出。
IOT_MQTT_Yield会尝试接收数据,直到timeout时间到后才会退出。
IOT_MQTT_Yield的作用是尝试接收数据。因此在需要接收数据时,例如订阅和取消订阅之后,发布QoS1消息之后,或是希望收到发布的数据时,都需要主动调用该函数。 IOT_MQTT_Yield参数timeout的意义是什么? IOT_MQTT_Yield会尝试接收数据,直到timeout时间到后才会退出。 IOT_MQTT_Yield与HAL_SleepMs的区别 IOT_MQTT_Yield与...
(2) IOT_MQTT_Subscribe() -> qcloud_iot_mqtt_subscribe() 2.5 IOT_MQTT_Yield () 函数IOT_MQTT_Yield ()主要功能为检查mqtt是否连接并保持活跃状态,以同步方式读取处理mqtt代理发来的消息,其内部主要调用的是函数qcloud_iot_mqtt_yield()。 该函数的执行逻辑如下: (1)先检查mqtt是否已经手动关闭,或重连标志...
static void mqtt_yield_thread(void *arg) 主要是对mqtt_yield函数的返回值做处理,比如在disconnect的时候销毁这个线程。 核心的处理函数mqtt_yield 数据包的处理mqtt_packet_handle static int mqtt_packet_handle(mqtt_client_t* c, platform_timer_t* timer) ...
while(1){if((rc=MQTTYield(&client,1000))!=0)printf("Return code from yield is %d\n",rc);} MQTT接口说明 网络接口初始化 函数 void NewNetwork(Network*n) 描述 网络接口初始化 参数 n:Network结构体指针 返回值 void 客户端初始化 网络层连接 ...
IOT_MQTT_Yield 接口原型 int IOT_MQTT_Yield(void *handle, int timeout_ms); 接口说明 用于接收网络报文并将消息分发到用户的回调函数中。 参数说明 参数 数据类型 方向 说明 handle void * 输入 MQTT句柄,可为NULL。 timeout_ms int 输入 尝试接收报文的超时时间。 返回值说明 值 说明 0 成功 IOT_MQTT...
MQTTYield(&client,1000);//在需要接收数据时, 都需要主动调用该函数printf("---1s--- \n"); }returnrc; } aiot_mqtt_sign.c 暂时为空文件即可, 连接阿里云时才会使用到。 先填好通信猫软件上的参数 注意,这里填写的发布和订阅的主题是和aiot_c_demo.c内的发布订阅的主题对应的。 MQTT,依靠主题来建...
MQTTYield(&c, 1000); if (++cnt % 5 == 0) { MQTTMessage msg = { QOS1, 0, 0, 0,"Hello world", strlen("Hello world"), }; msg.id = ++msgid; rc = MQTTPublish(&c, pubTopic, &msg); printf("MQTTPublish %d, msgid %d\n", rc, msgid); ...