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.

[参考译文] LAUNCHCC3220MODASF:无法通过 Azure IOT 插件中的 iothub_client_sample_MQTT 实例与 Azure IOT Hub 通信

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1276277/launchcc3220modasf-unable-to-communicate-with-azure-iot-hub-using-iothub_client_sample_mqtt-instance-from-azure-iot-plugin

器件型号:LAUNCHCC3220MODASF
主题中讨论的其他器件:CC3220SF-LAUNCHXLCC3220SF

您好!

我尝试使用 azure_cc32xx_4_10_01_01 SDK 中的 iothub_client_sample_MQTT 示例通过 CC3220SF-LaunchXL 连接到 Azure IoT Hub。

>> CCS 版本:12.0

>> simplelink_cc32xx_sdk_4_10_00_07

在执行示例期间不会触发"ReceiveMessageCallback"的回调函数。 此外、消息不会发送到 Azure Cloud。 控制台显示以下消息

启动 iohub_client_sample_mqTT 示例

当前时间:周五9月19日05:57:20 2023

 

CC32XX 已连接到 AP 并获取了 IP 地址。

IP 地址:172.20.10.2

IoTHubClient_LL_SetMessageCallback...成功。

IoTHubClient_LL_SendEventAsync 已接受消息[0],用于传输到物联网集线器。

IoTHubClient_LL_SendEventASYNC 接受的消息[1]、用于传输到物联网集线器。

IoTHubClient_LL_SendEventASYNC 接受的消息[2]、用于传输到物联网集线器。

IoTHubClient_LL_SendEventASYNC 接受的消息[3]、用于传输到物联网集线器。

IoTHubClient_LL_SendEventAsync 已接受消息[4],用于传输到物联网集线器。

我尝试更新服务包 sp_3.15.0.1_2.0.0.0_2.2.0.7.bin。 但这并没有解决问题、

请帮助我解决此问题。

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

    您好!

    您是否刚开始使用 Azure? 您是否已查看插件的用户指南?

    https://dev.ti.com/tirex/explore/node?node=A__AFO7-fE66c6CZmRL83W9ew__com.ti.AZURE_CC32XX__9QUeYYT__LATEST

    什洛米

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

    您好!

    是的、我将关注此文档并更新示例、以使用您的 Azure 连接字符串和 Wi-Fi 接入点信息。 但我无法与 azure IoT 集线器建立连接

    请帮助我解决此问题。

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

    您好!

    请检查以下看起来类似的主题:

    https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/979225/cc3220sf-launchxl-not-able-to-communicate-with-azure-iot-hub-with-iothub_client_sample_mqtt-example-from-azure-iot-plugin

    (如果问题无法解决、请至少按照步骤添加日志)

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

    您好!


    您能否帮助启用调试日志
    如何进行第一步  
    1.链接到 Azure 库的调试版本,例如
     PAL_SL_DEBUG.A、COMMON_SL_DEBUG.A、...



    我们正尝试注释掉 ENABLE_LOCKING
    出现以下错误

    ****项目 iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs ****的配置调试构建

    "C:\\ti\\ccs1240\\ccs\\utils\\bin\\gmake"-k -j 12所有-O

    构建目标:"iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs.out"
    调用:ARM 链接器
    "c:/ti/ccs1240/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/bin/armcl /ti/azure_cc32xx_4_10_01_01/source /ti/simplelink_cc32xx_sdk_4_10_00_07/kernel/tirtos/packages -mv7M4 --code_state=16 --float_support=none -me --define=NET_SL - define=use_baltime_cert -g /ti/simplelink_cc32xx_sdk_4_10_00_07/source --c99 /ti/ccs1240/ccs/tools/compiler/ti-cgt-arm_20.2.7.LTS/lib - diag_warning=225 - diag_warning=255 - rom_model -o "iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirfs_ccs.out".cms"/syscfg/ti_net_config.obj ".cs"".crts""./ccs.obj"/syscfg/ti_drivers_config.obj "./certs.obj""./iotb_client_sample_mqtt.lib".lib".".main_tirtos"/ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/sdk/lib/ccs/m4/iotclient_sl_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/http/lib/ccs/m4/httpclient_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/drivers/net/wifi/ccs/rtos/simplelink.a "/ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/sdk/lib/ccs/m4/common_sl_release.a "/syscfg/ti_drivers_net_wifi_config.obj /ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/pal/lib/ccs/m4/pal_sl_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/sntp/lib/ccs/m4/sntp_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/net/lib/ccs/m4/slnetsock_release.a /ti/simplelink_cc32xx_sdk_4_10_00_07/source/ti/drivers/net/wifi/slnetif/ccs/Release/slnetifwifi.a /ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/sdk/lib/ccs/m4/umqtt_sl_release.a /Users/noush/workspace_v12/tirtos_builds_CC3220SF_LAUNCHXL_release_ccs/Debug/configPkg/linker.cmd


    第一个引用的未定义
    文件中的符号
    ---------------- ----------------
    xloging_set_log_function ./iothub_client_sample_mqtt.obj

    错误#10234-D:未解析的符号仍存在
    错误#10010:链接期间遇到错误;未编译"iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs.out"

    >>编译失败
    Makefile:161:目标"iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs.out"的配方失败
    gmake[1]:***[iothub_client_sample_mqtt_CC3220SF_LAUNCHXL_tirtos_ccs.out]错误1
    Makefile:154:食谱目标'all'失败
    gmake:***[全部]错误2

    ****构建完成****

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

    您正在链接到"发布"库、例如"C:/ti/azure_cc32xx_4_10_01_01/source/third_party/azure-iot-pal-simplelink/build_all/sdk/lib/ccs/m4/common_sl_ 版本 .a"-您应该改用调试库(例如 common_sl_ 调试 .a)、您可以在同一文件夹中找到它们。

    转到"Project Properties"->"Build"->"Arm Linker"->"File Search Path"、然后将"...release.a"替换为"...debug.a"。

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

    您好!

    我们已更新服务包和根证书目录、

    控制台输出:

    启动 iohub_client_sample_mqTT 示例
    startsntp:当前时间:星期三4 05:00:43 2023


    CC32XX 已连接到 AP 并获取了 IP 地址。

    IP 地址:192.168.1.26

    IoTHubClient_LL_SetMessageCallback...成功。
    IoTHubClient_LL_SendEventAsync 已接受消息[0],用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    IoTHubClient_LL_SendEventASYNC 接受的消息[1]、用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    IoTHubClient_LL_SendEventASYNC 接受的消息[2]、用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    IoTHubClient_LL_SendEventASYNC 接受的消息[3]、用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    IoTHubClient_LL_SendEventAsync 已接受消息[4],用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话

    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话


    但这并没有解决问题、

    请帮助我解决此问题

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

    这 不应该解决任何 问题-只是为了获得有关问题的更多信息(我们刚刚启用了日志)。

    我们现在知道我们在连接到 TLS 服务器时遇到了问题、但它没有为我们提供足够的信息(错误代码)。

    问题可能与您正在使用的证书有关、但为了获得更多信息、我需要精确确定错误代码。

    在 /source/third_party/azure-iot-pal-simplelink/pal src / tlsi_sl.c、查找下面的行(应该是第381行-我不明白它是如何在日志中被提及的第371行):

    Fullscreen
    1
    LogError("SlNetSock_startSec failed to start session\n");
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    并对其进行更新(以便我们可以看到来自 SlNetSock_startSec 的错误代码)

    Fullscreen
    1
    LogError("SlNetSock_startSec failed to start session %d\n", status);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    您需要重新构建 Azure PAL 库:

    打开快速入门指南(位于 /docs 文件夹中)并检查"构建 Azure PAL 和 SDK 库"中的说明。

    然后重新编译应用。

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

    您好!

    这是具有错误代码状态的调试日志  

    在  tlsi_sl.c 中修改

    371  LogError ("SlNetSock_startSec 启动会话%d\n"失败,状态);

    控制台输出:

    启动 iohub_client_sample_mqTT 示例
    startSNTP:当前时间:10月5日星期四11:54:07 2023


    CC32XX 已连接到 AP 并获取了 IP 地址。

    IP 地址:192.168.1.26

    IoTHubClient_LL_SetMessageCallback...成功。
    IoTHubClient_LL_SendEventAsync 已接受消息[0],用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话-468

    IoTHubClient_LL_SendEventASYNC 接受的消息[1]、用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话-468

    IoTHubClient_LL_SendEventASYNC 接受的消息[2]、用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话-468

    IoTHubClient_LL_SendEventASYNC 接受的消息[3]、用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话-468

    IoTHubClient_LL_SendEventAsync 已接受消息[4],用于传输到物联网集线器。
    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话-468

    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话-468

    错误:文件:../../pal / src / tlsi_sl.c Func:tlsio_sl_open 行:371
    SlNetSock_startSec 无法启动会话-468

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

    -468表示证书未包含在已安装的证书目录中。

    这只是一个警告(连接已建立)、如果这是预期结果(例如、如果您仍在使用游乐场根 CA 或新 Azure 根 CA 不是 CC32xx 官方目录的一部分)、则可以忽略该警告(即、如果您仍在使用游乐场根 CA 或新 Azure 根 CA)。

    问题是、代码似乎没有忽略此内容、并将其报告为错误。

    您可以做的是更改第380行的 tlsi_sl.c ("if (status < 0){")、如下所示:

    Fullscreen
    1
    2
    if (status < 0 && status != SL_ERROR_BSD_
    ESECUNKNOWNROOTCA) {
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    您可以在以下位置阅读有关 CC32xx 证书处理的信息: https://www.ti.com/lit/pdf/swpu332 (有关具体错误的详细信息、请参阅第5章"疑难解答")。