TencentCloud / tencentcloud-iot-sdk-embedded-c

SDK for connecting to Tencent Cloud IoT from a device using embedded C.
https://cloud.tencent.com/product/iothub
Other
148 stars 71 forks source link

设备启动后第二次执行IOT_MQTT_Construct会导致qcloud_get_log_level返回错误 #17

Closed jiaotilizi closed 5 years ago

jiaotilizi commented 5 years ago

设备启动后,执行一次IOT_MQTT_Construct和IOT_MQTT_Destroy后,再次执行IOT_MQTT_Construct会导致qcloud_get_log_level返回错误,定位时发现IOT_MQTT_Destroy动作未将sg_log_sub_ok复位,希望SDK开发人员帮忙确认是否有必要在Destroy Client后加一个复位动作,如果有必要,希望排查一下这种情况的其他全局变量(如:sg_client_token、sg_devinfo_initialized等)。

spikelin commented 5 years ago

是的,在IOT_MQTT_Destroy后没有退出程序而再次IOT_MQTT_Construct确实会导致qcloud_get_log_level返回错误,这是一个已知问题,会在下一个版本修复。临时方案是需要IOT_MQTT_Construct之后第一次调用qcloud_get_log_level时将sg_log_sub_ok置为false,可以在qcloud_get_log_level函数增加一个入口参数来控制。 有同样问题的还有IOT_SYSTEM_GET_TIME接口。其他的全局变量目前还没有发现会导致逻辑问题的。

spikelin commented 5 years ago

v3.0.1已经解决该问题