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.

[参考译文] CC3220SF:无法使用 Azure Simplelink SDK 将大型数据发送到物联网集线器

Guru**** 2562870 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/984368/cc3220sf-unable-to-send-large-data-to-iot-hub-using-azure-simplelink-sdk

器件型号:CC3220SF
Thread 中讨论的其他器件:SYSBIOS

您好!

使用  azure_cc32xx_4_10_01_01 SDK 的 iothub_client_sample_mqTT 示例发送大约5K 或更多字节的数据时遇到问题。

我创建了一个大约5K 的示例字符串、并修改了以下代码以将其发送到物联网集线器:

静态 char sampleText[]=
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexexttexttexttexttexttext\r\n"
"texttexttexttexttexttexexttexexttexexttexttexexttexttexttexttext\r\n";

if ((messages[iter].messageHandle = IoTHubMessage_CreateFromByteArray ((const unsigned char*) samplpleText、strlen (samplpleText)))= NULL)

display_printf (display、0、0、"error:iotHubMessageHandle is NULL!");

其他

display_printf (display、0、0、"迭代%d 中发送的数据长度:%d"、iterator、strlen (samplpleText));

(空) IoTHubMessage_SetMessageId (messages[iter].messageHandle、"MSG_ID");
(空) IoTHubMessage_SetCorrelationId (messages[iter].messageHandle、"core_ID");

messages[iterator].messageTrackingId =迭代器;
map_handle propMap = IoTHubMessage_Properties (messages[iter].messageHandle);
(void) sprintf_s (propText、sizeof (propText)、温度> 28? "true":"false");
if (Map_AddOrUpdate (propMap、"temperatureAlert"、propText)!= map_OK)

display_printf (display、0、0、"error:map_AddOrUpdate failed!");

if (IoTHubClient_LL_SendEventAsync (iotHubClientHandle、messages[iter].messageHandle、SendConfirmationCallback、&messages[iter])!= IOTHUB_CLIENT_OK)

Display_printf (display、0、0、"error:IoTHubClient_LL_SendEventAsync ......... 失败!");

其他

Display_printf (display、0、0、"IoTHubClient_LL_SendEventAsync 可接受的消息[%d]、用于传输到物联网集线器。"、(int)迭代器);

但是、在 SDK 中启用日志时遇到以下错误:

错误:文件:../../sdk/c-utility/src/buffer.c 函数:buffer_prepend 行:555
失败:分配温度缓冲区。
错误:文件:../../sdk/umqtt/src/mqtt_client.c Func:MQTT_CLIENT_PUBLISH Line:1089
错误:MQTT_CODE_PUBLISH 失败
错误:文件:../../sdk/iothub_client/src/iothubtransport_mqtt_common.c Func:publish_MQTT_msg Line:892
尝试发布 MQTT 消息失败
已接收确认[0]、用于消息跟踪 ID = 0、结果= IOTHUB_CLIENT_CONFIRMATION_ERROR

我已经尝试在 FreeRTOSConfig.h 中增加堆内存、但这没有帮助。

请注意、我还尝试使用 HTTP 示例发送。 但是、即使这样也失败了。

请帮助我解决此问题、以便将大数据发送到云。

谢谢、

Kishore。

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

    您好 Kishore、

    您能否在尝试分配时确定堆的大小?

    如果您使用的是最新版本的 CC32xx SDK 和带 FreeRTOS 的 Code Composer Studio、则可以使用 ROV 工具。

    此致、

    Sarah

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

    您好、Sarah、

    我使用 的是 simplelink_cc32xx_sdk_4_10_00_07、并如前所述安装了 CCS 版本10.2。 我尝试使用 FreeRTOS 示例运行 ROV。 但我遇到 SYSBIOS 错误。

    因此、我运行 了 iothub_client_sample_mqTT 的 Tirtos 示例。 我已启用 azure 库中的日志记录、并尝试发送大小为5544的字符串、我遇到了与我在问题说明中所述相同的问题。 此外、我会按照您的要求附加堆存储器映射。  

    请帮助我解决此问题。

    谢谢、

    Kishore。

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

    您好 Kishore、

    最近才在 SDK 4.30版中引入了对 FreeRTOS 的 ROV 支持。

    您是否在项目 cmd 文件中更改了堆大小?

    此致、

    Sarah

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

    您好、Sarah、

    我能够在 CCS 中为 Tirtos 项目更改项目 cmd 文件中的堆大小、并成功发送大数据。

    我还尝试通过更改 FreeRTOSConfig.h 文件中的堆大小来在 CCS 中运行 FreeRTOS 项目、并且能够成功发送数据。

    但是、相同的更改不适用于 IAR 中的 FreeRTOS 项目。 我使用的是 IAR 版本8.50.1。

    我能否知道如何解决此问题?

    谢谢、

    Kishore。

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

    您好 Kishore、

    IAR 项目有一个.ICF 文件而不是.cmd。 你试过这个吗?

    此致、

    Sarah