ros-industrial / ros_canopen

CANopen driver framework for ROS (http://wiki.ros.org/ros_canopen)
GNU Lesser General Public License v3.0
328 stars 267 forks source link

Fix edge case in $NODEID parsing within EDS object dictionary values #471

Closed rugged-robotics closed 1 year ago

rugged-robotics commented 1 year ago

This fixes the case where if an EDS contains a value of literal+$NODEID it is currently always interpreted as the literal value. This results in an odd failure mode when object 0x1200 is defined as 0x600+$NODEID where the canopen master will send SDO commands to the CAN ID 0x600.

Fix added as well as relevant test cases.