This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3100:无法移植 CC3200 SDK v1.5 MQTT 客户端更改

Guru**** 1818760 points
Other Parts Discussed in Thread: CC3100, CC3135, CC3120
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1072991/cc3100-trouble-porting-the-cc3200-sdk-v1-5-mqtt-client-changes

部件号:CC3100
“线程”中讨论的其它部件: CC3135CC3120

您好,

我一直在努力将 MQTT 客户端更新从 CC3200 SDK v1.5移植 到 使用 CC3100的应用程序。

 sl_mqtt_client.c我在处理文件时遇到了一些问题。 _sl_ExtLib_AwaitedAckLockedSet 该函数 (特别是_sl_ExtLib_AwaitedAckSet内部呼叫周围的互斥)正在阻止与我们的代理断开连接。

在中 _sl_ExtLib_AwaitedAckLockedSet运行的调用通常 sl_ExtLib_MqttClientUnsub 可以防止这种情况发生。 将呼叫切换到未受保护的版本: _sl_ExtLib_AwaitedAckSet解决了问题。 这样做是可以的——还是我误解了这一点?

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Wilmer,

    当 SL_ExtLib_MqttClientUnsub 被调用时,您是否知道互斥锁在_SL_ExtLib_AwaitedAckLockedSet 内阻止调用_SL_ExtLib_AwaitedAckLockedSet 的其他位置?

    移植过程中是否有任何可能影响这一点的更改?

    此致,

    杰西

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    没有改变,不 这是一个直接的港口。 我做了一些测试,发现当连接断开(AP 关闭/重新启动)时 ,SL_ExtLib_MqttDiscann 回调从未被调用。 将其缩小到 _sl_ExtLib_AwaitedAckLockedSet了呼入范围  sl_ExtLib_MqttClientUnsub.

    我可能是错的,因为这是根本原因;但我的主要问题 sl_ExtLib_MqttDisconn没有被触发。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Wilmer,你好,一个不相关的问题。 为什么选择 CC3100?

    这是一款旧设备,不建议用于新设计。 CC3100无法获得 WFA 认证(因为它不支持 WPA3)。  CC3120和 CC3135设备支持 WPA3,它们的 SDK 通过安全更新和错误修复进行定期维护。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这适用于  正在维护的旧产品。

    我找到了问题。 我在 SL_ExtLib_MqttDisconn 回调中调用 SL_ExtLib_MqttClientUnsub,由于超时设置为永远等待锁定可用,因此锁定已被卡住。