|
楼主 |
发表于 2024-11-6 05:33:19
|
显示全部楼层
本帖最后由 wes58 于 2024-11-6 10:28 编辑
TL_YB 发表于 2024-11-5 19:21
From the .scv file you provided, it seems that your environment frequently experiences serial port c ...
Hi,
Thanks for your help so far.
I don't think that there is any serial port congestion. You can see that there aren't any messages except one send to the gateway and 2 send back to ZGC. And as I said, there is only gateway and one device - that doesn't send any reports. What if you had 20 devices sending reports all the time?
The reason that there are 2 packets in the rx buffer is because gateway didn't receive/process the first packet - didn't send ZBHCI_CMD_ACKNOWLEDGE. And because of that, g_hciOtaTimer time was never cancelled and another ZBHCI_CMD_OTA_BLOCK_REQUEST was made.
I have noticed that sometimes the same packet (file offset) is sent 3 to 5 times.
ZBHCI_CMD_OTA_BLOCK_REQUEST
ZBHCI_CMD_OTA_BLOCK_RESPONSE
ZBHCI_CMD_ACKNOWLEDGE
ZBHCI_CMD_OTA_BLOCK_REQUEST
ZBHCI_CMD_OTA_BLOCK_RESPONSE
ZBHCI_CMD_OTA_BLOCK_REQUEST
ZBHCI_CMD_OTA_BLOCK_RESPONSE
ZBHCI_CMD_ACKNOWLEDGE
ZBHCI_MSG_STATUS_BAD_MSG
Anyway, I can't fix it. And the only reason I tried ZGC_TOOL was because I needed to know what messages are sent and what responses are received during OTA process.
I can't use ZGC_TOOL with my main gateway, because I have uart connected to ESP32 which communicates with the gateway.
That's why I need to write my own code to do all this. And becase I am using ZigBee BLE concurrent SDK I will most likely do it via ZBHCI_BLE.
Since, the part that I tried with ZGC_TOOL is only part of the OTA process - transferring firmware to the gateway - I assume that next part will be to select which device OTA upgrade will be sent to - via "Image Notify" message - Am I correct?
And then would I have to do HCI_OTA again with ticked "Localbinfile"?
I don't know and I can't test it.
Would you have (or could you make) a complete packet log for the whole OTA process? That would help me a lot.
|
|