RobotWebTools / rclnodejs

Node.js version of ROS 2.0 client
https://docs.ros.org/en/humble/Concepts/Basic/About-Client-Libraries.html?highlight=rclnodejs#community-maintained
Apache License 2.0
321 stars 71 forks source link

Typescript definition of slam_toolbox incorrect for generated .d.ts file. #980

Closed dnikitop closed 2 months ago

dnikitop commented 2 months ago

Description slam_toolbox defines services with msgs defined in same srvs folder. Logic in rostsd_gen is to place these message in the "srvs" namespace, but are reference with .msg instead.

Example (inside interfaces.d.ts):

      export interface AddSubmap_Event {
        info: service_msgs.msg.ServiceEventInfo;
        request: slam_toolbox.msg.AddSubmap_Request[];
        response: slam_toolbox.msg.AddSubmap_Response[];
      }

Should be

      export interface AddSubmap_Event {
        info: service_msgs.msg.ServiceEventInfo;
        request: slam_toolbox.srvs.AddSubmap_Request[];
        response: slam_toolbox.srvs.AddSubmap_Response[];
      }

Fixable by changing isInternalServiceEventMsgInterface to see if subFolder is 'srvs', or pass down original subFolder of definition and see if it's the same as the rosMsgInterface.subFolder.

Steps To Reproduce

Run run generate-ros-messages on workspace with slam_toolbox installed. Expected Behavior

Actual Behavior

minggangw commented 2 months ago

@dnikitop thanks for your feedback, will take a look later.