I tried using SLCAN adapter to check UAVCAN messages which is getting broadcast-ed from my pixhawk Board. I have created a new CAN message with a datatype Id 760(since this number was not used by any)
Once I power on my board, I am facing this in GUI tool:
Its showing “unrecognized message type id 760” . I have not specified any node Id to this! Then when I initiate the command “uavcan start” in QGroundControl(this would start my broadcasting of messages) , I get this:
The node spin error increase from 1 to 1000 then it throws up error. I am not able to find what I am missing here. I looked into forums. This error was new!
It would be great if someone could help me.
Thanks and regards
Have you imported your data type definition into the GUI tool?
Yes, I chose the location of my data type definition and imported it during the launch of GUI tool. I also follwed this link : CAN bus for the rest of us
UAVCAN: CANbus for the rest of us - Blog - ArduPilot Discourse . I initialized the local node to 127 and checked it.
But I still see the error " Unrecognized message type ID 760" at the bottom.
I tried to do Fetch all in Node properties but it was not successful.
Got the error : Param fetch failed:request timed out
data type definition file which i created :
uint8 valor [Only this variable I have declared inside the file]
Am i missing something ?
I tried everything I could. But I am still getting above errors. When I launch the UAVCAN GUI tool:
Location of custom DSDL definition[optional] field is available.
I tried adding my data type definition files, it did not work and I even tried by taking a new patch from Git for latest firmware code and test it.No luck. Least I should be able to see the status of existing nodes from new patch!!
I looked into forums and no sign of this particular error. I followed all the documentation and tried to my knowledge. No clue how to solve this issue.
your inputs would be highly helpful.
Thanks and Regards
I think the easiest way forward is to single-step through the GUI tool and see what is happening with the custom definitions. Or at least you could just sprinkle some logging around the relevant pieces of the logic to understand what’s really happening. For some reason the GUI tool doesn’t see your definitions.
Thank you for answering all of my questions. I was able to get something working now!!
Now I was able to add the path where my CAN messages are located into GUI tool and I could see the messages flowing out in Bus monitor
The data hex value is as expected. The data type is showing as <unknown message 760>
[but uavcan.equipment.teste.TesteCommand is what I expect to see]**
like in the example all other CAN messages have a path under data type for ex. uavcan.equipemnt.gnss.Fix.
But it’s not happening in my case. I followed the documentation for uavcan and created a CAN message under
Do I have to include the new CAN messages which I created in the above path to any files? I was not able to find any relevant documentation for it.!!
Any inputs would be really helpful!
Thanks and Regards
There is, unfortunately, a known issue with the GUI tool: custom definitions are not passed to children processes yet. It is documented here: https://github.com/UAVCAN/gui_tool/issues/32
Since the bus monitor runs in a separate process, it is unaware of vendor-specific definitions. The fix should be relatively straightforward, just pass the relevant definitions from
uavcan.DATATYPES into the child process upon its spawning. We would appreciate a pull request!
Hope you are doing good. Sorry for the delayed reply. I was able to fix the issue of custom definitions to the children node. GUI tool is working perfectly fine and I could see the CAN IDs of the external and pixhawk device with their data and corresponding datatype ID. Have attached the screenshot below:
Thank you for your inputs
I expect other users might benefit from your fix. Please, consider submitting a pull request.
Sure. I would be happy to do it.
Thanks and Regards