Giter Site home page Giter Site logo

rosidl_typesupport_opensplice's People

Contributors

b3em avatar clalancette avatar codebot avatar cottsay avatar dhood avatar dirk-thomas avatar esteve avatar gerkey avatar hidmic avatar jacobperron avatar jacquelinekay avatar karsten1987 avatar marceljordense avatar martinbremmer avatar mikaelarguedas avatar mjcarroll avatar nuclearsandwich avatar paulbovbel avatar rohitsalem avatar rotu avatar sloretz avatar sriramster avatar sservulo avatar tfoote avatar theosakamg avatar vmayoral avatar wjwwood avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rosidl_typesupport_opensplice's Issues

Allow generating messages services in an `action` folder

Feature request

Feature description

rosidl_typesupport_opensplice_c and rosidl_typesupport_opensplice_cpp need to allow generating messages and services in an action folder and namespace

Implementation considerations

The service templates would need to change to allow service definitions to live in the .actions folder

#include "@(spec.pkg_name)/srv/@(req_header_file_name).h"
#include "@(spec.pkg_name)/srv/@(res_header_file_name).h"
#include "@(spec.pkg_name)/srv/dds_opensplice/ccpp_@(spec.srv_name)_Request_.h"
#include "@(spec.pkg_name)/srv/dds_opensplice/ccpp_@(spec.srv_name)_Response_.h"
#include "@(spec.pkg_name)/srv/dds_opensplice/ccpp_Sample_@(spec.srv_name)_Request_.h"
#include "@(spec.pkg_name)/srv/dds_opensplice/ccpp_Sample_@(spec.srv_name)_Response_.h"

#include "@(spec.pkg_name)/srv/@(req_header_file_name)__rosidl_typesupport_opensplice_cpp.hpp"
#include "@(spec.pkg_name)/srv/@(res_header_file_name)__rosidl_typesupport_opensplice_cpp.hpp"
#include "@(spec.pkg_name)/srv/dds_opensplice/ccpp_@(spec.srv_name)_Request_.h"
#include "@(spec.pkg_name)/srv/dds_opensplice/ccpp_@(spec.srv_name)_Response_.h"
#include "@(spec.pkg_name)/srv/dds_opensplice/ccpp_Sample_@(spec.srv_name)_Request_.h"
#include "@(spec.pkg_name)/srv/dds_opensplice/ccpp_Sample_@(spec.srv_name)_Response_.h"

connects to ros2/rosidl#301

Using $ENV{AMENT_PREFIX_PATH} under Windows leads to CMake error

Hi,

I was using ros2 eloquent in conjunction with vcpkg. When configuring a simple project, the following line introduced an error somewhere down the find_package call:

The fix for this is as follows:

  file(TO_CMAKE_PATH $ENV{AMENT_PREFIX_PATH} AMENT_PREFIX_PATH)
  find_package(opensplice ${quiet} NO_MODULE COMPONENTS CXX
    PATHS ${AMENT_PREFIX_PATH} /usr /usr/local)

This will correctly escape the path which, due to Windows, contains backslashes.

Best,
René

Generated header guards collide

control_msgs contains a GripperCommand action, which uses the GripperCommand msg.

For ROS2 dashing, this package (released version, 0.7.0, and master) generates C header files with duplicated guard names, e.g.

$ grep -r _GRIPPERCOMMAND__H_ .
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/GripperCommand_.h:#ifndef _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/msg/dds_opensplice/GripperCommand_.h:#define _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/GripperCommand_.h:#ifndef _GRIPPERCOMMAND__H_
./build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/GripperCommand_.h:#define _GRIPPERCOMMAND__H_

For this reason the build fails with:

In file included from /root/target_ws/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/ccpp_GripperCommand_.h:4:0,
                 from /root/target_ws/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/gripper_command__rosidl_typesupport_opensplice_cpp.hpp:10,
                 from /root/target_ws/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp:17:
/root/target_ws/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/GripperCommand_.h:41:37: error: ‘dds_’ in namespace ‘control_msgs::msg’ does not name a type
                ::control_msgs::msg::dds_::GripperCommand_ command_;
                                     ^~~~
/root/target_ws/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp: In function ‘void control_msgs::action::typesupport_opensplice_cpp::convert_ros_message_to_dds(const __ros_msg_type_GripperCommand_Goal&, control_msgs::action::typesupport_opensplice_cpp::__dds_msg_type_GripperCommand_Goal&)’:
/root/target_ws/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp:108:38: error: ‘using __dds_msg_type_GripperCommand_Goal = struct control_msgs::action::dds_::GripperCommand_Goal_ {aka struct control_msgs::action::dds_::GripperCommand_Goal_}’ has no member named ‘command_’
     ros_message.command, dds_message.command_);
                                      ^~~~~~~~
/root/target_ws/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp: In function ‘void control_msgs::action::typesupport_opensplice_cpp::convert_dds_message_to_ros(const __dds_msg_type_GripperCommand_Goal&, control_msgs::action::typesupport_opensplice_cpp::__ros_msg_type_GripperCommand_Goal&)’:
/root/target_ws/build/control_msgs/rosidl_typesupport_opensplice_cpp/control_msgs/action/dds_opensplice/gripper_command__type_support.cpp:164:17: error: ‘const __dds_msg_type_GripperCommand_Goal {aka const struct control_msgs::action::dds_::GripperCommand_Goal_}’ has no member named ‘command_’
     dds_message.command_, ros_message.command);

Furthermore, JointTrajectory.action (control_msgs) collides with JointTrajectory.msg (trajectory_msgs), both use _JOINTTRAJECTORY__H_.

For ROS2 crystal the generated header guards are less likely to collide, because goal, feedback and result are generated separately. (before #11?)

To avoid this problem the guards should contain the package name and the type to make them unique.
The files in dds_opensplice get generated by idlpp though.

Service requests are sent but never Received after the number of nodes reach around 98

Hello, I am new to ros2.
Service requests are sent (by client node) but never Received after the number of nodes reach around 98.
I searched this resp for whatever is related to 98,99,100,
and discovered a hard coded "99" here:

https://github.com/ros2/rosidl_typesupport_opensplice/blob/master/opensplice_cmake_module/config/ros_ospl.xml

Is this the problem?
If it is the problem, how do I modify and make it apply?

when get gid from the Instance handle ,the serial field is fill 0 ?

I found that you get the gid from the instance handle, but set the seril to ZERO.
when i using opensplice's get_matched_subscription_data/get_matched_publication_data/get_discovered_participant_data or read_instance function, it will retrieve the xxxBuiltinTopicData, and we can get the gid from the BuiltinTopicKey_t key field(in fact, it is a typedef int[3]). it seems that the serial is not ZERO.

how can I match it. or what does the serial actual mean. can I just ignore it and only using the first two field of int[3].

[Eloquent] Cannot compile action tutorial with opensplice

Bug report

Required Info:

  • Operating System:
    • ubuntu bionic
  • Installation type:
    • Debs from testing repo on repo.ros2.org
  • Version or commit hash:

    ros-eloquent-opensplice-cmake-module/bionic,bionic,now 0.8.1-1bionic.20191024.044026 amd64 [installed,automatic]
    ros-eloquent-rmw-opensplice-cpp/bionic,bionic,now 0.8.1-1bionic.20191024.062945 amd64 [installed]
    ros-eloquent-rosidl-typesupport-opensplice-c/bionic,bionic,now 0.8.1-1bionic.20191024.062611 amd64 [installed,automatic]
    ros-eloquent-rosidl-typesupport-opensplice-cpp/bionic,bionic,now 0.8.1-1bionic.20191024.062531 amd64 [installed,automatic]
    
  • DDS implementation:
    • Opensplice
  • Client library (if applicable):
    • N/A

Steps to reproduce issue

Follow https://index.ros.org/doc/ros2/Tutorials/Actions/Creating-an-Action/

I attached an archive of the package.
action_tutorials.opspl.bug.tar.gz

Expected behavior

Successful build

Actual behavior

many compile errors

opensplice.action.build.txt

Additional information

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.