BUG FIX: Service uses 2 seperate Typenames for Request/response

This commit is contained in:
Greek 2022-01-28 10:19:52 +01:00 committed by Greek64
parent 854b62a379
commit a2e00cf0f5
6 changed files with 14 additions and 7 deletions

View File

@ -60,7 +60,8 @@ package ros_config is
0 => (
node_id => 0,
SERVICENAME => gen_user_string("Service1"),
TYPENAME => gen_user_string("Type3"),
RQ_TYPENAME => gen_user_string("Type3_Request"),
RR_TYPENAME => gen_user_string("Type3_Response"),
QOS => ROS_QOS_PROFILE_SERVICES_DEFAULT,
MAX_RQ_SIZE => 10,
MAX_RR_SIZE => 10,

View File

@ -61,7 +61,8 @@ package ros_config is
0 => (
node_id => 0,
SERVICENAME => gen_user_string("add_two_ints"),
TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Request_"),
RQ_TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Request_"),
RR_TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Response_"),
QOS => ROS_QOS_PROFILE_TRANSIENT,
MAX_RQ_SIZE => MAX_ADDTWOINTS_RQ_SIZE,
MAX_RR_SIZE => MAX_ADDTWOINTS_RR_SIZE,

View File

@ -61,7 +61,8 @@ package ros_config is
0 => (
node_id => 0,
SERVICENAME => gen_user_string("add_two_ints"),
TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Request_"),
RQ_TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Request_"),
RR_TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Response_"),
QOS => ROS_QOS_PROFILE_TRANSIENT,
MAX_RQ_SIZE => MAX_ADDTWOINTS_RQ_SIZE,
MAX_RR_SIZE => MAX_ADDTWOINTS_RR_SIZE,

View File

@ -132,14 +132,15 @@ package body user_config is
ret(index) := DEFAULT_READER_CONFIG;
set_from_qos_profile(ROS_SERVICES(i).QOS, ret(index));
set_sim_timing(ret(index),SIMULATION_TIMING);
ret(index).TYPENAME := ROS_SERVICES(i).TYPENAME;
tmp := gen_fqn(ROS_NODES(ROS_SERVICES(i).node_id).namespace, ROS_NODES(ROS_SERVICES(i).node_id).name, ROS_SERVICES(i).SERVICENAME);
if (ROS_SERVICES(i).is_client) then
ret(index).TOPICNAME := concat("rr",concat(tmp,"Reply"));
ret(index).MAX_PAYLOAD_SIZE := ROS_SERVICES(i).MAX_RR_SIZE;
ret(index).TYPENAME := ROS_SERVICES(i).RR_TYPENAME;
else
ret(index).TOPICNAME := concat("rq",concat(tmp,"Request"));
ret(index).MAX_PAYLOAD_SIZE := ROS_SERVICES(i).MAX_RQ_SIZE;
ret(index).TYPENAME := ROS_SERVICES(i).RQ_TYPENAME;
end if;
index := index + 1;
end loop;
@ -163,14 +164,15 @@ package body user_config is
ret(index) := DEFAULT_WRITER_CONFIG;
set_from_qos_profile(ROS_SERVICES(i).QOS, ret(index));
set_sim_timing(ret(index),SIMULATION_TIMING);
ret(index).TYPENAME := ROS_SERVICES(i).TYPENAME;
tmp := gen_fqn(ROS_NODES(ROS_SERVICES(i).node_id).namespace, ROS_NODES(ROS_SERVICES(i).node_id).name, ROS_SERVICES(i).SERVICENAME);
if (ROS_SERVICES(i).is_client) then
ret(index).TOPICNAME := concat("rq",concat(tmp,"Request"));
ret(index).MAX_PAYLOAD_SIZE := ROS_SERVICES(i).MAX_RQ_SIZE;
ret(index).TYPENAME := ROS_SERVICES(i).RQ_TYPENAME;
else
ret(index).TOPICNAME := concat("rr",concat(tmp,"Reply"));
ret(index).MAX_PAYLOAD_SIZE := ROS_SERVICES(i).MAX_RR_SIZE;
ret(index).TYPENAME := ROS_SERVICES(i).RR_TYPENAME;
end if;
index := index + 1;
end loop;

View File

@ -129,7 +129,8 @@ package ros_package is
type ROS_SERVICE_TYPE is record
node_id : natural;
SERVICENAME : USER_STRING_TYPE;
TYPENAME : USER_STRING_TYPE;
RQ_TYPENAME : USER_STRING_TYPE;
RR_TYPENAME : USER_STRING_TYPE;
QOS : ROS_QOS_PROFILE_TYPE;
MAX_RQ_SIZE : natural;
MAX_RR_SIZE : natural;

View File

@ -61,7 +61,8 @@ package ros_config is
0 => (
node_id => 0,
SERVICENAME => gen_user_string("add_two_ints"),
TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Request_"),
RQ_TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Request_"),
RR_TYPENAME => gen_user_string("example_interfaces::srv::dds_::AddTwoInts_Response_"),
QOS => ROS_QOS_PROFILE_SERVICES_DEFAULT,
MAX_RQ_SIZE => MAX_ADDTWOINTS_RQ_SIZE,
MAX_RR_SIZE => MAX_ADDTWOINTS_RR_SIZE,