-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
Problem experienced on a ZombieVerter VCU that appears to be under heavy load (for unclear reasons but very repeatable). Fetching the device database using CAN SDO will just stop part way through.
There appear to be two distinct failure modes:
- The param DB download just stops after a few seconds. Looking at the CAN trace it seems like the client has a requested the next segment but no reply is forthcoming from the device. Adding some trace variables show the request has made it into
CanSdo::ProcessSDObut no frame is emitted by the call toLine 234 in 087010a
canHardware->Send(0x580 + nodeId, data); - The param DB download is terminated early. This appears to be because the required 7 bytes needed to fill a CAN SDO frame are not available. The code here triggers and terminates the download. The client registers this but objects because it is malformed JSON. This can be triggered by adding
Line 150 in 087010a
if (PRINT_BUF_EMPTY()) uDelay(1000)aftert.Run()in the main loop.
A wireshark capture of the first failure is attached:
db-download-failure.pcapng.gz
This is best viewed using the CANOPEN dissector. It omits the stream of CAN frames being sent by the VCU to CAN ID 0x100 and 0x300 every 10ms.
Issue #39 was found while trying to characterise this. This is a separate and internally sourced issue.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels