MQTT大型OTA文件传输在1024块处失败。

0

【以下的问题经过翻译处理】 我正在努力在MQTT模式下设置freeRTOS OTA示例,以便传输大文件(> 10MB)。我已经修改了“pOtaInterfaces”,使用“fseek()”和“fwrite()”将文件写入SD卡。在小文件上,这运行得非常完美,并且我收到了完整的文件。然而,在大文件上,当传输到块1024时,我开始收到“接收到重复的块”的消息,并且块号似乎已经混淆了。它从1023跳到1025,然后到1027,再到1056。这看起来非常像库中有些东西正在破坏记录块的系统中的任意位10。我想这就是位图系统。此时传输速度大大减慢,如果我等待其完成,则会有损坏的文件。请问是否有人非常熟悉此OTA位图系统,以帮助我确定SDK中是否确实存在bug?

profile picture
EXPERTE
gefragt vor 5 Monaten9 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 嗨,安德鲁。请检查您的项目中OTA_MAX_BLOCK_BITMAP_SIZE的值。我怀疑它是128。这意味着需要128字节或1024位来跟踪块。如果是这种情况,您需要增加此值以获得足够的位来跟踪您的块数量。

您应该查看所有这些设置并根据需要进行调整:https://github.com/aws/ota-for-aws-iot-embedded-sdk/blob/fb4aece8c7ee4211b17ee48196222c04795b7a51/source/include/ota_private.h#L62-L70

更多信息请参见此处(尽管它不包括位图设置):https://www.freertos.org/Documentation/api-ref/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/ota_config.html

顺便说一下,您的设备是否包括HTTP客户端?对于如此大的文件,您的MQTT消息成本可能会超过作业执行成本。您可能会发现HTTP文件传输更具有成本效益。

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen