You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello
I'm trying to use CANopenLinux as a PDO consumer with a callback function.
The TPDO device supports the 401 profile, so I've added the required Objects from that to the basic 301 profile to create my own OD.c and OD.h for CANopenLinux.
I've implemented a test app that uses the ASCII gateway to read and write objects, and issue start etc.
For the PDO exchange, I've used the GW to read the 4x TPDOs from the remote device and then write this information to the Linux 4x default RPDOs, so that the mappings are the same at both ends of the exchange.
I've also added 4x calls to CO_RPDO_initCallbackPre() immediately after the calls to CO_CANopenInitPDO() in main().
I am not getting any errors with the above but neither am I seeing any callbacks. I am seeing CAN messages with the correct IDs, so the device is transmitting ok.
I'm not sure whether my approach of doing the configuration over via the GW is valid?
Or whether I need to make function calls within CANopenLinux instead?
Any help and guidance would be gratefully received.
Thanks.
The text was updated successfully, but these errors were encountered:
What you describe seems very complicated. Once you understand CANopen, it should be quite simple.
Use gateway for reading/writing object dictionary entries on any node on the network. You have full access without PDOs.
Configure PDOs only with communication and mapping parameters. No callbacks. If you have a CANopenLinux test app and remote 401 device, then map remote PDOs to OD entries of your CANopenLinux test app. (OD entries was created before, no need for mappings to be on the same indexes on both devices). Then read/write OD entries on your CANopenLinux test app. If you need callbacks, use OD_extension (advanced).
Hello
I'm trying to use CANopenLinux as a PDO consumer with a callback function.
The TPDO device supports the 401 profile, so I've added the required Objects from that to the basic 301 profile to create my own OD.c and OD.h for CANopenLinux.
I've implemented a test app that uses the ASCII gateway to read and write objects, and issue start etc.
For the PDO exchange, I've used the GW to read the 4x TPDOs from the remote device and then write this information to the Linux 4x default RPDOs, so that the mappings are the same at both ends of the exchange.
I've also added 4x calls to CO_RPDO_initCallbackPre() immediately after the calls to CO_CANopenInitPDO() in main().
I am not getting any errors with the above but neither am I seeing any callbacks. I am seeing CAN messages with the correct IDs, so the device is transmitting ok.
I'm not sure whether my approach of doing the configuration over via the GW is valid?
Or whether I need to make function calls within CANopenLinux instead?
Any help and guidance would be gratefully received.
Thanks.
The text was updated successfully, but these errors were encountered: