diff --git a/type_description_interfaces/CMakeLists.txt b/type_description_interfaces/CMakeLists.txt index e860c778..b7101d60 100644 --- a/type_description_interfaces/CMakeLists.txt +++ b/type_description_interfaces/CMakeLists.txt @@ -20,6 +20,7 @@ rosidl_generate_interfaces(${PROJECT_NAME} "msg/FieldType.msg" "msg/IndividualTypeDescription.msg" "msg/TypeDescription.msg" + "srv/GetTypeDescription.srv" ADD_LINTER_TESTS ) diff --git a/type_description_interfaces/package.xml b/type_description_interfaces/package.xml index dd3fe970..731c3350 100644 --- a/type_description_interfaces/package.xml +++ b/type_description_interfaces/package.xml @@ -12,6 +12,7 @@ ament_cmake rosidl_core_generators + service_msgs rosidl_core_runtime diff --git a/type_description_interfaces/srv/GetTypeDescription.srv b/type_description_interfaces/srv/GetTypeDescription.srv new file mode 100644 index 00000000..6568852a --- /dev/null +++ b/type_description_interfaces/srv/GetTypeDescription.srv @@ -0,0 +1,19 @@ +string type_name +string type_version_hash +--- +# True if the type description information is available and populated in the response +bool successful +# Empty if 'successful' was true, otherwise contains details on why it failed +string failure_reason + +# The idl or msg file name +string type_description_raw_file_name +# The idl or msg file, with comments and whitespace +# The file extension and/or the contents can be used to determine the format +string type_description_raw +# The parsed type description which can be used programmatically +TypeDescription type_description + +# Key-value pairs of extra information. +string[] extra_information_keys +string[] extra_information_values