I am using an LPC55S16 with the ESA CANOpen stack provided by MCUXpresso. It is part pf a legacy system. The legacy system used node guarding. Is this actually supported?
Whenever the master makes a node guard request, it seems the LPC does not generate a response.
Here is the documentation:
8.4.5 #define USE_NODE_GUARDING [0]
CANopen experts do not recommend the usage of node guarding. Instead, the newer heartbeat method should be used. However, to be compliant with legacy devices, Micro CANopen Plus supports minimal node guarding functionality that is enabled if this setting is enabled.
Must be zero for CANopen FD.
I am NOT using FD, so I set the #define to 1. It looks like the slave is entering MCOUSER_NMTChange, but no response is put on the bus (that function just prints the current state). Is it up to me to modify that method to generate the response?
I realize node guarding is not the way things are done these days, but as I said it is a legacy system. Ironically, the previous CANOpen stack was also from ESA....
Thanks!
Edit: Does this maybe have ties to MCOP_HandleGuarding defined in mcop.h?
Hi,
I have asked AE team for the question if the CAN open stack supports node guarding feature.
I will answer you after I get answer
BR
XiangJun Rong
Hi,
This is AE team reply:
"In addition to the documentation from ESA, we also added note in the code to not use node guarding. There isnt an implementation as stated in documentation. It enables a variable that can be used, but it would be responsability of the application to make use of it. I dont believe the ESA libraries make use of it based on the documentation. We also do not have access to source code from library provided by ESA.
"
Hope it can help you
BR
XiangJun Rong