I’m using the legacy Python Library ‘uavcan’.
My setup: I’m connecting two CAN-Beds to a Raspberry-Pi that talk via SLCAN. One is ‘ttyACM0’ and the other ‘ttyACM1’
I have a Battery connected to one of the CAN-Beds.
I am able to spin a node and receive battery info. So far so good. Now since I’m building a GUI with PyQt I spin the node into its own QThread and still everything works.
Now, I want to scale my system to two nodes, each in its own QThread. This is where things don’t work anymore.
I connect the battery to both CAN-Beds.
I start each node and I’m expecting to receive data from both nodes but only one receives data. I know both are running because I put some print statements on the infinite loop that runs the spin method.
Something else that I noticed is that I get info for a second from one node and then it stops and the other node is now the only receiving. This is related to the order I start the nodes so maybe there is some resource that can’t be shared.
The only thing that occurs to me is that I’m doing something that wasn’t even supposed to be a use case of the library but
I don’t know enough to know what I don’t know.
Any insights on running parallel nodes are welcome!