rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 5.1.5
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version humble
Last Updated 2024-02-17
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Chris Lalancette
  • Alejandro Hernandez Cordero

Authors

  • Karsten Knese

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

API

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • Functions for interfacing with process environment variables:
    • rcutils_get_env()
    • rcutils_get_home_dir()
    • rcutils_set_env()
    • rcutils/env.h
    • rcutils/get_env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • Some basic utilities to load, unload and get symbols from shared libraries at run-time.
    • rcutils/shared_library.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

5.1.5 (2024-02-16)

  • Fix if(TARGET ...) condition for test (#447) (#448)
  • Contributors: mergify[bot]

5.1.4 (2023-11-13)

  • memmove for overlaping memory (#434) (#437)
  • Contributors: mergify[bot]

5.1.3 (2023-04-25)

  • avoid unnecessary copy for rcutils_char_array_vsprintf. (#412) (#413)
  • Contributors: mergify[bot]

5.1.2 (2022-11-07)

5.1.1 (2022-03-31)

  • Update launch test for change related to enviroment variables in launch (#354)
  • Contributors: Jacob Perron

5.1.0 (2022-03-01)

  • Remove dst_size from strlen usage (#353)
  • Install headers to include\${PROJECT_NAME} (#351)
  • Contributors: Jorge Perez, Shane Loretz

5.0.1 (2022-01-14)

  • Use static_cast instead of C-style cast (#349)
  • Contributors: Jacob Perron

5.0.0 (2021-11-01)

  • Fixing up documentation build when using rosdoc2 (#344)
  • Stop double-defining structs. (#333)
  • Use FindPython3 explicitly instead of FindPythonInterp implicitly (#345)
  • Fix build on Android (#342)
  • Deprecate get_env.h and move content to env.{h,c} (#340)
  • Contributors: Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, Shane Loretz, William Woodall

4.0.2 (2021-04-12)

  • Declare dependency on libatomic (#338)
  • Contributors: Scott K Logan

4.0.1 (2021-04-06)

4.0.0 (2021-03-18)

  • Quiet down a warning in release mode. (#334)
  • Make the logging separate char an implementation detail. (#332)
  • Performance tests demo (#288)
  • Remove references of __xstat (#330)
  • Update the documentation to be more consistent. (#331)
  • Shorten some excessively long lines of CMake (#328)
  • qnx-support: include sys/link.h & avoid using dlinfo (#327)
  • QNX uses XSI-compliant (#326)
  • Contributors: Ahmed Sobhy, Chris Lalancette, Homalozoa X, Jorge Perez, Scott K Logan

3.1.0 (2021-01-25)

  • Add an API for directory iteration (#323)
  • Fix a leak during error handling in dir size calculation (#324)
  • Fix rcutils_shared_library_t path on Windows. (#322)
  • Check linker flags instead of assuming compiler correlation. (#321)
  • Improve shared library relative paths handling (#320)
  • Contributors: Michel Hidalgo, Scott K Logan

3.0.0 (2020-12-02)

  • Update rcutils_calculate_directory_size() to support recursion (#306)
  • Updating QD to QL 1 (#317)
  • Address unused return values found in scan-build (#316)
  • use one copy for continuous area instead of loop copy (#312)
  • use a better way to check whether string is empty (#315)
  • Use helper funciton to copy string (#314)
  • Disable a Windows platform warning. (#311)
  • Fix format of code description on document (#313)
  • Make sure to check the return values of rcutils APIs. (#302)
  • Contributors: Barry Xu, Chen Lihui, Chris Lalancette, Stephen Brawner

2.2.0 (2020-10-19)

  • Add rcutils_expand_user() to expand user directory in path (#298)
  • Update the maintainers. (#299)
  • Remove the temporary variable in RCUTILS_LOGGING_AUTOINIT (#290)
  • Contributors: Chris Lalancette, Christophe Bedard, Felix Endres

2.1.0 (2020-10-02)

  • Add RCUTILS_NO_FAULT_INJECTION() macro. (#295)
  • Inject faults on rcutils_get_env() and rcutils_set_env() call. (#292)
  • env.h and get_env.h docblock fixes (#291)
  • Introduce rcutils_strcasecmp, case insensitive string compare. (#280)
  • Stop using fprintf to avoid using file handles by changing as few lines of code as possible. (#289)
  • Defines QNX implementation for rcutils_get_platform_library_name (#287)
  • Contributors: Ahmed Sobhy, Ivan Santiago Paunovic, Michel Hidalgo, tomoya

2.0.0 (2020-08-28)

  • Add RCUTILS_CAN_SET_ERROR_MSG_AND_RETURN_WITH_ERROR_OF() macro. (#284) To fault inject error messages as well as return codes.
  • Change rcutils_fault_injection_set_count to use int64_t (#283)
  • adds QNX support for rcutils_get_executable_name (#282)
  • Add fault injection hooks to default allocator (#277)
  • Fault injection macros and functionality (plus example) (#264)
  • ensure -fPIC is used when building a static lib (#276)
  • Drop vsnprintf mocks entirely. (#275) Binary API is not portable across platforms and compilation config.
  • Fix vsnprintf mocks for Release builds. (#274)
  • Improve test coverage mocking system calls (#272)
  • Use mimick/mimick.h header (#273)
  • Add mock test for rcutils/strerror (#265)
  • Add compiler option -Wconversion and add explicit casts for conversions that may alter the value or change the sign (#263) See https://github.com/ros2/rcutils/pull/263#issuecomment-663252537.
  • Removed doxygen warnings (#266) (#268)
  • Removed doxygen warnings (#266)
  • Force _GNU_SOURCE if glibc is used. (#267)
  • Add parenthesis around the argument in time conversion macros defined in time.h (#261)
  • Contributors: Ahmed Sobhy, Alejandro Hern

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

Name Repo Deps
control_toolbox github-ros-controls-control_toolbox
fmi_adapter github-boschresearch-fmi_adapter
tf2 github-ros2-geometry2
grid_map_pcl github-ANYbotics-grid_map
grid_map_ros github-ANYbotics-grid_map
image_proc github-ros-perception-image_pipeline
theora_image_transport github-ros-perception-image_transport_plugins
kdl_parser github-ros-kdl_parser
pluginlib github-ros-pluginlib
rviz_visual_testing_framework github-ros2-rviz
turtlebot3_node github-ROBOTIS-GIT-turtlebot3
ur_controllers github-UniversalRobots-Universal_Robots_ROS2_Driver
composition github-ros2-demos
demo_nodes_cpp github-ros2-demos
logging_demo github-ros2-demos
quality_of_service_demo_cpp github-ros2-demos
topic_statistics_demo github-ros2-demos
message_filters github-ros2-message_filters
micro_ros_common_diagnostics github-micro-ROS-micro_ros_diagnostics
rcl github-ros2-rcl
rcl_action github-ros2-rcl
rcl_lifecycle github-ros2-rcl
rcl_yaml_param_parser github-ros2-rcl
rcl_logging_interface github-ros2-rcl_logging
rcl_logging_noop github-ros2-rcl_logging
rcl_logging_spdlog github-ros2-rcl_logging
rclc github-ros2-rclc
rclc_parameter github-ros2-rclc
rclcpp github-ros2-rclcpp
rclcpp_lifecycle github-ros2-rclcpp
rclpy github-ros2-rclpy
rcpputils github-ros2-rcpputils
rmw github-ros2-rmw
rmw_cyclonedds_cpp github-ros2-rmw_cyclonedds
rmw_dds_common github-ros2-rmw_dds_common
rmw_fastrtps_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_dynamic_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_shared_cpp github-ros2-rmw_fastrtps
rmw_gurumdds_cpp github-ros2-rmw_gurumdds
rmw_implementation github-ros2-rmw_implementation
test_rmw_implementation github-ros2-rmw_implementation
ros1_bridge github-ros2-ros1_bridge
hardware_interface github-ros-controls-ros2_control
joint_state_broadcaster github-ros-controls-ros2_controllers
rosbag2_compression github-ros2-rosbag2
rosbag2_compression_zstd github-ros2-rosbag2
rosbag2_cpp github-ros2-rosbag2
rosbag2_storage github-ros2-rosbag2
rosbag2_storage_default_plugins github-ros2-rosbag2
rosbag2_storage_mcap github-ros2-rosbag2
rosbag2_test_common github-ros2-rosbag2
rosbag2_bag_v2_plugins github-ros2-rosbag2_bag_v2
rosidl_generator_c github-ros2-rosidl
rosidl_runtime_c github-ros2-rosidl
rosidl_typesupport_introspection_tests github-ros2-rosidl
rosidl_typesupport_c github-ros2-rosidl_typesupport
rosidl_typesupport_cpp github-ros2-rosidl_typesupport
stubborn_buddies github-open-rmf-stubborn_buddies
test_quality_of_service github-ros2-system_tests
irobot_create_ignition_toolbox github-iRobotEducation-create3_sim
domain_bridge github-ros2-domain_bridge
rmw_connextdds_common github-ros2-rmw_connextdds
sdformat_urdf github-ros-sdformat_urdf
turtlebot4_node github-turtlebot-turtlebot4
turtlebot4_base github-turtlebot-turtlebot4_robot
turtlebot4_ignition_toolbox github-turtlebot-turtlebot4_simulator
ffmpeg_image_transport github-ros-misc-utilities-ffmpeg_image_transport
caret_trace github-tier4-caret_trace
stcamera_components github-ose-support-ros-stcamera_ros2
stcamera_grabber github-ose-support-ros-stcamera_ros2
stcamera_launch github-ose-support-ros-stcamera_ros2

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 6.2.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version iron
Last Updated 2024-02-15
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Alejandro Hernandez Cordero
  • Chris Lalancette
  • William Woodall

Authors

  • Karsten Knese

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

API

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • Functions for interfacing with process environment variables:
    • rcutils_get_env()
    • rcutils_get_home_dir()
    • rcutils_set_env()
    • rcutils/env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • Some basic utilities to load, unload and get symbols from shared libraries at run-time.
    • rcutils/shared_library.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

6.2.2 (2023-11-17)

  • memmove for overlaping memory (#436)
  • Contributors: Tyler Weaver

6.2.1 (2023-04-12)

  • fix memory leak (#423)
  • Contributors: Chen Lihui

6.2.0 (2023-04-11)

  • Add convenience error handling macros (#421)
  • Calculate the next power-of-two for the user in hash_map_init. (#420)
  • update cast to modern style (#418)
  • Remove deprecated header get_env.h (#417)
  • Updates to rcutils to make rosdoc2 generation happier. (#416)
  • add RCUTILS_LOGGING_AUTOINIT_WITH_ALLOCATOR. (#415)
  • Fix memory leak in string_map.c in rcutils (#411)
  • avoid unnecessary copy for rcutils_char_array_vsprintf. (#412)
  • Contributors: Chris Lalancette, Emerson Knapp, Mario Prats, Nikolai Morin, Tomoya Fujita, methylDragon

6.1.1 (2023-02-24)

  • Add missing stddef include for size_t (#410)
  • Contributors: Emerson Knapp

6.1.0 (2023-02-13)

  • Add SHA256 utility implementation (#408)
  • Upgrade rcutils to C++17. (#392)
  • [rolling] Update maintainers - 2022-11-07 (#404)
  • Contributors: Audrow Nash, Chris Lalancette, Emerson Knapp

6.0.1 (2022-11-02)

  • Fix build on OpenHarmony (#395)
  • regression of thread-safety for logging macros (#393)
  • add portable nonnull macros (#382)
  • Fix memory leak when adding the same key to the logger hash map multiple times (#391)
  • time_unix: uses ZEPHYR_VERSION_CODE instead (#390)
  • Cleanup time_unix.c (#389)
  • time_unix: namespace zephyr headers (#383)
  • Restrict overmatching MACH ifdef to only trigger on OSX and Mach (#386)
  • Contributors: AIxWall, Chris Lalancette, Felipe Neves, Jacob Perron, Maximilian Downey Twiss, William Woodall

6.0.0 (2022-09-13)

  • Optimize rcutils_logging_get_logger_effective_level() (#381)
  • Change syntax __VAR_ARGS_ to __VA_ARGS_ (#376)
  • Fix a bug in hash_map_get_next_key_and_data. (#375)
  • More fixes from review.
  • Fixes from review.
  • Make g_rcutils_logging_output_handler static.
  • Make g_rcutils_logging_default_logger_level static.
  • Optimize rcutils_find_lastn where possible.
  • Don\'t bother computing the hash_map key if the hash map is empty.
  • Make sure to expand char_array by at least 1.5x.
  • Optimize index computation in hash_map_find.
  • Improve the performance of rcutils_logging_format_message. (#372)
  • Get rid of unnecessary ret variable.
  • Get rid of unnecessary ifdef cplusplus checks in the C file.
  • Get rid of unnecessary rcutils_custom_add_{gtest,gmock}
  • Get rid of unnecessary and unused RMW switching for logging tests.
  • Remove unnecessary IS_OUTPUT_COLORIZED macro.
  • Rename logging internal structures to use our new convention.
  • Make all of the logging \'expand\' methods static.
  • Fix up error checking for RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED.
  • Cleanup error handling for the RCUTILS_CONSOLE_OUTPUT_FORMAT checks.
  • Revamp error handling in rcutils_logging_initialize_with_allocator.
  • Revamp rcutils_logging_initialize_with_allocator.
  • Make a few logging global variables static.
  • Optimize calls via the RCUTILS_LOG macros. (#369)
  • time_unix: add zephyr posix time (#368)
  • Optimize the implementation of rcutils_char_array_strncpy. (#367)
  • strdup.c: fix arbitrary length overread (#366)
  • Mirror rolling to master
  • strdup.c: fix 1 byte buffer overread (#363)
  • Clarify duration arg description in logging macros (#359)
  • Contributors: Abrar Rahman Protyasha, Audrow Nash, Chris Lalancette, Felipe Neves, Yakumoo, guijan

5.2.0 (2022-04-29)

  • Update rcutils_steady_time_now to return the same data as std::chrono (#357)
  • Contributors: Chris Lalancette

5.1.1 (2022-03-31)

  • Update launch test for change related to enviroment variables in launch (#354)
  • Contributors: Jacob Perron

5.1.0 (2022-03-01)

  • Remove dst_size from strlen usage (#353)
  • Install headers to include\${PROJECT_NAME} (#351)
  • Contributors: Jorge Perez, Shane Loretz

5.0.1 (2022-01-14)

  • Use static_cast instead of C-style cast (#349)
  • Contributors: Jacob Perron

5.0.0 (2021-11-01)

  • Fixing up documentation build when using rosdoc2 (#344)
  • Stop double-defining structs. (#333)
  • Use FindPython3 explicitly instead of FindPythonInterp implicitly (#345)
  • Fix build on Android (#342)
  • Deprecate get_env.h and move content to env.{h,c} (#340)
  • Contributors: Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, Shane Loretz, William Woodall

4.0.2 (2021-04-12)

  • Declare dependency on libatomic (#338)
  • Contributors: Scott K Logan

4.0.1 (2021-04-06)

4.0.0 (2021-03-18)

  • Quiet down a warning in release mode. (#334)
  • Make the logging separate char an implementation detail. (#332)
  • Performance tests demo (#288)
  • Remove references of __xstat (#330)
  • Update the documentation to be more consistent. (#331)
  • Shorten some excessively long lines of CMake (#328)
  • qnx-support: include sys/link.h & avoid using dlinfo (#327)
  • QNX uses XSI-compliant (#326)
  • Contributors: Ahmed Sobhy, Chris Lalancette, Homalozoa X, Jorge Perez, Scott K Logan

3.1.0 (2021-01-25)

  • Add an API for directory iteration (#323)
  • Fix a leak during error handling in dir size calculation (#324)
  • Fix rcutils_shared_library_t path on Windows. (#322)
  • Check linker flags instead of assuming compiler correlation. (#321)
  • Improve shared library relative paths handling (#320)
  • Contributors: Michel Hidalgo, Scott K Logan

3.0.0 (2020-12-02)

  • Update rcutils_calculate_directory_size() to support recursion (#306)
  • Updating QD to QL 1 (#317)
  • Address unused return values found in scan-build (#316)
  • use one copy for continuous area instead of loop copy (#312)
  • use a better way to check whether string is empty (#315)
  • Use helper funciton to copy string (#314)
  • Disable a Windows platform warning. (#311)
  • Fix format of code description on document (#313)
  • Make sure to check the return values of rcutils APIs. (#302)
  • Contributors: Barry Xu, Chen Lihui, Chris Lalancette, Stephen Brawner

2.2.0 (2020-10-19)

  • Add rcutils_expand_user() to expand user directory in path (#298)
  • Update the maintainers. (#299)
  • Remove the temporary variable in RCUTILS_LOGGING_AUTOINIT (#290)
  • Contributors: Chris Lalancette, Christophe Bedard, Felix Endres

2.1.0 (2020-10-02)

  • Add RCUTILS_NO_FAULT_INJECTION() macro. (#295)
  • Inject faults on rcutils_get_env() and rcutils_set_env() call. (#292)
  • env.h and get_env.h docblock fixes (#291)
  • Introduce rcutils_strcasecmp, case insensitive string compare. (#280)
  • Stop using fprintf to avoid using file handles by changing as few lines of code as possible. (#289)
  • Defines QNX implementation for rcutils_get_platform_library_name (#287)
  • Contributors: Ahmed Sobhy, Ivan Santiago Paunovic, Michel Hidalgo, tomoya

2.0.0 (2020-08-28)

  • Add RCUTILS_CAN_SET_ERROR_MSG_AND_RETURN_WITH_ERROR_OF() macro. (#284) To fault inject error messages as well as return codes.
  • Change rcutils_fault_injection_set_count to use int64_t (#283)
  • adds QNX support for rcutils_get_executable_name (#282)
  • Add fault injection hooks to default allocator (#277)
  • Fault injection macros and functionality (plus example) (#264)
  • ensure -fPIC is used when building a static lib (#276)
  • Drop vsnprintf mocks entirely. (#275) Binary API is not portable across platforms and compilation config.
  • Fix vsnprintf mocks for Release builds. (#274)
  • Improve test coverage mocking system calls (#272)
  • Use mimick/mimick.h header (#273)
  • Add mock test for rcutils/strerror (#265)
  • Add compiler option -Wconversion and add explicit casts for conversions that may alter the value or change the sign (#263) See https://github.com/ros2/rcutils/pull/263#issuecomment-663252537.
  • Removed doxygen warnings (#266) (#268)
  • Removed doxygen warnings (#266)
  • Force _GNU_SOURCE if glibc is used. (#267)
  • Add parenthesis around the argument in time conversion macros defined in time.h (#261)
  • Contributors: Ahmed Sobhy, Alejandro Hern

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

Name Repo Deps
control_toolbox github-ros-controls-control_toolbox
fmi_adapter github-boschresearch-fmi_adapter
tf2 github-ros2-geometry2
grid_map_pcl github-ANYbotics-grid_map
grid_map_ros github-ANYbotics-grid_map
image_proc github-ros-perception-image_pipeline
theora_image_transport github-ros-perception-image_transport_plugins
kdl_parser github-ros-kdl_parser
pluginlib github-ros-pluginlib
rviz_visual_testing_framework github-ros2-rviz
ur_controllers github-UniversalRobots-Universal_Robots_ROS2_Driver
composition github-ros2-demos
demo_nodes_cpp github-ros2-demos
logging_demo github-ros2-demos
quality_of_service_demo_cpp github-ros2-demos
topic_statistics_demo github-ros2-demos
libstatistics_collector github-ros-tooling-libstatistics_collector
libyaml_vendor github-ros2-libyaml_vendor
message_filters github-ros2-message_filters
micro_ros_common_diagnostics github-micro-ROS-micro_ros_diagnostics
rcl github-ros2-rcl
rcl_action github-ros2-rcl
rcl_lifecycle github-ros2-rcl
rcl_yaml_param_parser github-ros2-rcl
rcl_logging_interface github-ros2-rcl_logging
rcl_logging_noop github-ros2-rcl_logging
rcl_logging_spdlog github-ros2-rcl_logging
rclc github-ros2-rclc
rclc_parameter github-ros2-rclc
rclcpp github-ros2-rclcpp
rclcpp_lifecycle github-ros2-rclcpp
rclpy github-ros2-rclpy
rcpputils github-ros2-rcpputils
rmw github-ros2-rmw
rmw_cyclonedds_cpp github-ros2-rmw_cyclonedds
rmw_dds_common github-ros2-rmw_dds_common
rmw_fastrtps_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_dynamic_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_shared_cpp github-ros2-rmw_fastrtps
rmw_gurumdds_cpp github-ros2-rmw_gurumdds
rmw_implementation github-ros2-rmw_implementation
test_rmw_implementation github-ros2-rmw_implementation
ros1_bridge github-ros2-ros1_bridge
hardware_interface github-ros-controls-ros2_control
joint_state_broadcaster github-ros-controls-ros2_controllers
rosbag2_compression github-ros2-rosbag2
rosbag2_compression_zstd github-ros2-rosbag2
rosbag2_cpp github-ros2-rosbag2
rosbag2_storage github-ros2-rosbag2
rosbag2_storage_mcap github-ros2-rosbag2
rosbag2_storage_sqlite3 github-ros2-rosbag2
rosbag2_test_common github-ros2-rosbag2
rosbag2_bag_v2_plugins github-ros2-rosbag2_bag_v2
rosidl_generator_c github-ros2-rosidl
rosidl_runtime_c github-ros2-rosidl
rosidl_typesupport_introspection_tests github-ros2-rosidl
rosidl_typesupport_c github-ros2-rosidl_typesupport
rosidl_typesupport_cpp github-ros2-rosidl_typesupport
rosidl_typesupport_tests github-ros2-rosidl_typesupport
rosidl_typesupport_fastrtps_c github-ros2-rosidl_typesupport_fastrtps
rosidl_typesupport_fastrtps_cpp github-ros2-rosidl_typesupport_fastrtps
stubborn_buddies github-open-rmf-stubborn_buddies
test_quality_of_service github-ros2-system_tests
domain_bridge github-ros2-domain_bridge
rmw_connextdds_common github-ros2-rmw_connextdds
sdformat_urdf github-ros-sdformat_urdf
ffmpeg_image_transport github-ros-misc-utilities-ffmpeg_image_transport
rcl_logging_rcutils github-sloretz-rcl_logging_rcutils
rosidl_dynamic_typesupport github-ros2-rosidl_dynamic_typesupport
rosidl_dynamic_typesupport_fastrtps github-ros2-rosidl_dynamic_typesupport_fastrtps

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 6.5.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version rolling
Last Updated 2024-03-15
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Alejandro Hernandez Cordero
  • Chris Lalancette
  • William Woodall

Authors

  • Karsten Knese

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

API

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • Functions for interfacing with process environment variables:
    • rcutils_get_env()
    • rcutils_get_home_dir()
    • rcutils_set_env()
    • rcutils/env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • Some basic utilities to load, unload and get symbols from shared libraries at run-time.
    • rcutils/shared_library.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

6.5.2 (2024-02-07)

  • Clean up unused references to mimick/mocking in tests (#450)
  • Fix if(TARGET ...) condition for test (#447)
  • Zero-initialize rcutils_string_array_t in test_string_array (#446)
  • Use rcutils_string_array_init in rcutils_split & handle alloc fail (#445)
  • Contributors: Christophe Bedard

6.5.1 (2024-01-24)

  • Make rcutils_split() return RCUTILS_RET_BAD_ALLOC if alloc fails (#444)
  • Contributors: Christophe Bedard

6.5.0 (2023-12-26)

  • Remove two last uses of ament_target_dependencies. (#440)
  • time_win32: Update dead link (#438)
  • Contributors: Chris Lalancette, Silvio Traversaro

6.4.1 (2023-11-06)

  • memmove for overlaping memory (#434)
  • Contributors: Tyler Weaver

6.4.0 (2023-10-04)

  • make escape characters work (#426)
  • Contributors: Chen Lihui

6.3.1 (2023-09-07)

  • Remove unused \'max\' functions from sha256.c (#429)
  • Contributors: Chris Lalancette

6.3.0 (2023-04-27)

6.2.1 (2023-04-12)

  • fix memory leak (#423)
  • Contributors: Chen Lihui

6.2.0 (2023-04-11)

  • Add convenience error handling macros (#421)
  • Calculate the next power-of-two for the user in hash_map_init. (#420)
  • update cast to modern style (#418)
  • Remove deprecated header get_env.h (#417)
  • Updates to rcutils to make rosdoc2 generation happier. (#416)
  • add RCUTILS_LOGGING_AUTOINIT_WITH_ALLOCATOR. (#415)
  • Fix memory leak in string_map.c in rcutils (#411)
  • avoid unnecessary copy for rcutils_char_array_vsprintf. (#412)
  • Contributors: Chris Lalancette, Emerson Knapp, Mario Prats, Nikolai Morin, Tomoya Fujita, methylDragon

6.1.1 (2023-02-24)

  • Add missing stddef include for size_t (#410)
  • Contributors: Emerson Knapp

6.1.0 (2023-02-13)

  • Add SHA256 utility implementation (#408)
  • Upgrade rcutils to C++17. (#392)
  • [rolling] Update maintainers - 2022-11-07 (#404)
  • Contributors: Audrow Nash, Chris Lalancette, Emerson Knapp

6.0.1 (2022-11-02)

  • Fix build on OpenHarmony (#395)
  • regression of thread-safety for logging macros (#393)
  • add portable nonnull macros (#382)
  • Fix memory leak when adding the same key to the logger hash map multiple times (#391)
  • time_unix: uses ZEPHYR_VERSION_CODE instead (#390)
  • Cleanup time_unix.c (#389)
  • time_unix: namespace zephyr headers (#383)
  • Restrict overmatching MACH ifdef to only trigger on OSX and Mach (#386)
  • Contributors: AIxWall, Chris Lalancette, Felipe Neves, Jacob Perron, Maximilian Downey Twiss, William Woodall

6.0.0 (2022-09-13)

  • Optimize rcutils_logging_get_logger_effective_level() (#381)
  • Change syntax __VAR_ARGS_ to __VA_ARGS_ (#376)
  • Fix a bug in hash_map_get_next_key_and_data. (#375)
  • More fixes from review.
  • Fixes from review.
  • Make g_rcutils_logging_output_handler static.
  • Make g_rcutils_logging_default_logger_level static.
  • Optimize rcutils_find_lastn where possible.
  • Don\'t bother computing the hash_map key if the hash map is empty.
  • Make sure to expand char_array by at least 1.5x.
  • Optimize index computation in hash_map_find.
  • Improve the performance of rcutils_logging_format_message. (#372)
  • Get rid of unnecessary ret variable.
  • Get rid of unnecessary ifdef cplusplus checks in the C file.
  • Get rid of unnecessary rcutils_custom_add_{gtest,gmock}
  • Get rid of unnecessary and unused RMW switching for logging tests.
  • Remove unnecessary IS_OUTPUT_COLORIZED macro.
  • Rename logging internal structures to use our new convention.
  • Make all of the logging \'expand\' methods static.
  • Fix up error checking for RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED.
  • Cleanup error handling for the RCUTILS_CONSOLE_OUTPUT_FORMAT checks.
  • Revamp error handling in rcutils_logging_initialize_with_allocator.
  • Revamp rcutils_logging_initialize_with_allocator.
  • Make a few logging global variables static.
  • Optimize calls via the RCUTILS_LOG macros. (#369)
  • time_unix: add zephyr posix time (#368)
  • Optimize the implementation of rcutils_char_array_strncpy. (#367)
  • strdup.c: fix arbitrary length overread (#366)
  • Mirror rolling to master
  • strdup.c: fix 1 byte buffer overread (#363)
  • Clarify duration arg description in logging macros (#359)
  • Contributors: Abrar Rahman Protyasha, Audrow Nash, Chris Lalancette, Felipe Neves, Yakumoo, guijan

5.2.0 (2022-04-29)

  • Update rcutils_steady_time_now to return the same data as std::chrono (#357)
  • Contributors: Chris Lalancette

5.1.1 (2022-03-31)

  • Update launch test for change related to enviroment variables in launch (#354)
  • Contributors: Jacob Perron

5.1.0 (2022-03-01)

  • Remove dst_size from strlen usage (#353)
  • Install headers to include\${PROJECT_NAME} (#351)
  • Contributors: Jorge Perez, Shane Loretz

5.0.1 (2022-01-14)

  • Use static_cast instead of C-style cast (#349)
  • Contributors: Jacob Perron

5.0.0 (2021-11-01)

  • Fixing up documentation build when using rosdoc2 (#344)
  • Stop double-defining structs. (#333)
  • Use FindPython3 explicitly instead of FindPythonInterp implicitly (#345)
  • Fix build on Android (#342)
  • Deprecate get_env.h and move content to env.{h,c} (#340)
  • Contributors: Chris Lalancette, Christophe Bedard, Ivan Santiago Paunovic, Shane Loretz, William Woodall

4.0.2 (2021-04-12)

  • Declare dependency on libatomic (#338)
  • Contributors: Scott K Logan

4.0.1 (2021-04-06)

4.0.0 (2021-03-18)

  • Quiet down a warning in release mode. (#334)
  • Make the logging separate char an implementation detail. (#332)
  • Performance tests demo (#288)
  • Remove references of __xstat (#330)
  • Update the documentation to be more consistent. (#331)
  • Shorten some excessively long lines of CMake (#328)
  • qnx-support: include sys/link.h & avoid using dlinfo (#327)
  • QNX uses XSI-compliant (#326)
  • Contributors: Ahmed Sobhy, Chris Lalancette, Homalozoa X, Jorge Perez, Scott K Logan

3.1.0 (2021-01-25)

  • Add an API for directory iteration (#323)
  • Fix a leak during error handling in dir size calculation (#324)
  • Fix rcutils_shared_library_t path on Windows. (#322)
  • Check linker flags instead of assuming compiler correlation. (#321)
  • Improve shared library relative paths handling (#320)
  • Contributors: Michel Hidalgo, Scott K Logan

3.0.0 (2020-12-02)

  • Update rcutils_calculate_directory_size() to support recursion (#306)
  • Updating QD to QL 1 (#317)
  • Address unused return values found in scan-build (#316)
  • use one copy for continuous area instead of loop copy (#312)
  • use a better way to check whether string is empty (#315)
  • Use helper funciton to copy string (#314)
  • Disable a Windows platform warning. (#311)
  • Fix format of code description on document (#313)
  • Make sure to check the return values of rcutils APIs. (#302)
  • Contributors: Barry Xu, Chen Lihui, Chris Lalancette, Stephen Brawner

2.2.0 (2020-10-19)

  • Add rcutils_expand_user() to expand user directory in path (#298)
  • Update the maintainers. (#299)
  • Remove the temporary variable in RCUTILS_LOGGING_AUTOINIT (#290)
  • Contributors: Chris Lalancette, Christophe Bedard, Felix Endres

2.1.0 (2020-10-02)

  • Add RCUTILS_NO_FAULT_INJECTION() macro. (#295)
  • Inject faults on rcutils_get_env() and rcutils_set_env() call. (#292)
  • env.h and get_env.h docblock fixes (#291)
  • Introduce rcutils_strcasecmp, case insensitive string compare. (#280)
  • Stop using fprintf to avoid using file handles by changing as few lines of code as possible. (#289)
  • Defines QNX implementation for rcutils_get_platform_library_name (#287)
  • Contributors: Ahmed Sobhy, Ivan Santiago Paunovic, Michel Hidalgo, tomoya

2.0.0 (2020-08-28)

  • Add RCUTILS_CAN_SET_ERROR_MSG_AND_RETURN_WITH_ERROR_OF() macro. (#284) To fault inject error messages as well as return codes.
  • Change rcutils_fault_injection_set_count to use int64_t (#283)
  • adds QNX support for rcutils_get_executable_name (#282)
  • Add fault injection hooks to default allocator (#277)
  • Fault injection macros and functionality (plus example) (#264)
  • ensure -fPIC is used when building a static lib (#276)
  • Drop vsnprintf mocks entirely. (#275) Binary API is not portable across platforms and compilation config.
  • Fix vsnprintf mocks for Release builds. (#274)
  • Improve test coverage mocking system calls (#272)
  • Use mimick/mimick.h header (#273)
  • Add mock test for rcutils/strerror (#265)
  • Add compiler option -Wconversion and add explicit casts for conversions that may alter the value or change the sign (#263) See https://github.com/ros2/rcutils/pull/263#issuecomment-663252537.
  • Removed doxygen warnings (#266) (#268)
  • Removed doxygen warnings (#266)
  • Force _GNU_SOURCE if glibc is used. (#267)
  • Add parenthesis around the argument in time conversion macros defined in time.h (#261)
  • Contributors: Ahmed Sobhy, Alejandro Hern

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

Name Repo Deps
control_toolbox github-ros-controls-control_toolbox
fmi_adapter github-boschresearch-fmi_adapter
tf2 github-ros2-geometry2
image_proc github-ros-perception-image_pipeline
theora_image_transport github-ros-perception-image_transport_plugins
interactive_markers github-ros-visualization-interactive_markers
kdl_parser github-ros-kdl_parser
pluginlib github-ros-pluginlib
rviz_visual_testing_framework github-ros2-rviz
ur_controllers github-UniversalRobots-Universal_Robots_ROS2_Driver
composition github-ros2-demos
demo_nodes_cpp github-ros2-demos
logging_demo github-ros2-demos
quality_of_service_demo_cpp github-ros2-demos
topic_statistics_demo github-ros2-demos
libstatistics_collector github-ros-tooling-libstatistics_collector
message_filters github-ros2-message_filters
micro_ros_common_diagnostics github-micro-ROS-micro_ros_diagnostics
rcl github-ros2-rcl
rcl_action github-ros2-rcl
rcl_lifecycle github-ros2-rcl
rcl_yaml_param_parser github-ros2-rcl
rcl_logging_interface github-ros2-rcl_logging
rcl_logging_noop github-ros2-rcl_logging
rcl_logging_spdlog github-ros2-rcl_logging
rclc github-ros2-rclc
rclc_parameter github-ros2-rclc
rclcpp github-ros2-rclcpp
rclcpp_lifecycle github-ros2-rclcpp
rclpy github-ros2-rclpy
rcpputils github-ros2-rcpputils
rmw github-ros2-rmw
rmw_cyclonedds_cpp github-ros2-rmw_cyclonedds
rmw_dds_common github-ros2-rmw_dds_common
rmw_fastrtps_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_dynamic_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_shared_cpp github-ros2-rmw_fastrtps
rmw_gurumdds_cpp github-ros2-rmw_gurumdds
rmw_implementation github-ros2-rmw_implementation
test_rmw_implementation github-ros2-rmw_implementation
ros1_bridge github-ros2-ros1_bridge
hardware_interface github-ros-controls-ros2_control
joint_state_broadcaster github-ros-controls-ros2_controllers
rosbag2_compression github-ros2-rosbag2
rosbag2_compression_zstd github-ros2-rosbag2
rosbag2_cpp github-ros2-rosbag2
rosbag2_storage github-ros2-rosbag2
rosbag2_storage_mcap github-ros2-rosbag2
rosbag2_storage_sqlite3 github-ros2-rosbag2
rosbag2_test_common github-ros2-rosbag2
rosbag2_bag_v2_plugins github-ros2-rosbag2_bag_v2
rosidl_generator_c github-ros2-rosidl
rosidl_runtime_c github-ros2-rosidl
rosidl_typesupport_introspection_tests github-ros2-rosidl
rosidl_typesupport_c github-ros2-rosidl_typesupport
rosidl_typesupport_cpp github-ros2-rosidl_typesupport
rosidl_typesupport_tests github-ros2-rosidl_typesupport
rosidl_typesupport_fastrtps_c github-ros2-rosidl_typesupport_fastrtps
rosidl_typesupport_fastrtps_cpp github-ros2-rosidl_typesupport_fastrtps
stubborn_buddies github-open-rmf-stubborn_buddies
test_quality_of_service github-ros2-system_tests
domain_bridge github-ros2-domain_bridge
rmw_connextdds_common github-ros2-rmw_connextdds
sdformat_urdf github-ros-sdformat_urdf
ffmpeg_image_transport github-ros-misc-utilities-ffmpeg_image_transport
rcl_logging_rcutils github-sloretz-rcl_logging_rcutils
rosidl_dynamic_typesupport github-ros2-rosidl_dynamic_typesupport
rosidl_dynamic_typesupport_fastrtps github-ros2-rosidl_dynamic_typesupport_fastrtps

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

No version for distro noetic. Known supported distros are highlighted in the buttons above.

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 0.4.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version ardent
Last Updated 2017-12-09
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Karsten Knese

Authors

No additional authors.

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • A function to get an environment variable's value:
    • rcutils_get_env()
    • rcutils/get_env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG
No CHANGELOG found.

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 0.5.1
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version bouncy
Last Updated 2018-06-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Karsten Knese

Authors

No additional authors.

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • A function to get an environment variable's value:
    • rcutils_get_env()
    • rcutils/get_env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

0.5.0 (2018-06-20)

  • Audited use of malloc/realloc/calloc/free to make sure it always goes through an rcutils_allocator_t (#102)
  • Added ability to include a timestamp when a console logging message happens (#85)
  • Updated to use new memory_tools from osrf_testing_tools_cpp (#101)
  • Fixed a possible bug by preventing the default logger\'s level from being unset (#106)
  • Updated to use launch.legacy instead of launch (now used for new launch system) (#105)
  • Fixed a memory check issue in split.c (#104)
  • Added RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED to control flusing of output from the default output handler of the logging macros. (#98)
  • Can now control shared/static linking via BUILD_SHARED_LIBS (#94)
  • Addressed some MISRA C compliance issues (#91)
  • Fixed a steady time overflow issue (#87)
  • Changed rcutils_time_point_value_t type from uint64_t to int64_t (#84)
  • Fixed out-of-bounds read issue (#83)
  • Contributors: Dirk Thomas, Ethan Gao, Michael Carroll, Mikael Arguedas, Sagnik Basu, Shane Loretz, William Woodall, cshen, dhood, serge-nikulin

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 0.6.2
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version crystal
Last Updated 2019-02-08
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Karsten Knese

Authors

No additional authors.

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • A function to get an environment variable's value:
    • rcutils_get_env()
    • rcutils/get_env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

0.6.2 (2019-02-07)

  • Adding an ArrayList and HashMap implementation to rcutils (#131)
  • Change uncrustify max line length to 0 (#133)
  • Contributors: Jacob Perron, Nick Burek

0.6.1 (2018-12-06)

  • Logging (#127)
  • fixes to support including in c++ and fetch_add (#129)
  • reiterate over char array (#130)
  • add rcutils_unsigned_char_array_t (#125)
  • Contributors: Karsten Knese, Nick Burek, William Woodall

0.6.0 (2018-11-16)

  • Added rcutils_to_native_path function (#119)
  • Moved stdatomic helper to rcutils (#126)
  • Fixed warning in release build due to assert (#124)
  • Updated to avoid dynamic memory allocation during error handling (#121)
  • Added macro semicolons (#120)
  • Added LL suffix to avoid c4307 (#118)
  • Updated to use the same allocator to free allocated message (#115)
  • Renamed rcutils_serialized_message -> rcutils_char_array (#111)
  • Moved serialized_message from rmw (#110)
  • Updated to verify that the requested allocation size does not overflow. (#109)
  • Contributors: Chris Lalancette, Jacob Perron, Karsten Knese, Mikael Arguedas, Ruffin, Shane Loretz, Todd Malsbary, William Woodall

0.5.1 (2018-06-28)

  • Removed redundant stat() call (#108)

0.5.0 (2018-06-20)

  • Audited use of malloc/realloc/calloc/free to make sure it always goes through an rcutils_allocator_t (#102)
  • Added ability to include a timestamp when a console logging message happens (#85)
  • Updated to use new memory_tools from osrf_testing_tools_cpp (#101)
  • Fixed a possible bug by preventing the default logger\'s level from being unset (#106)
  • Updated to use launch.legacy instead of launch (now used for new launch system) (#105)
  • Fixed a memory check issue in split.c (#104)
  • Added RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED to control flusing of output from the default output handler of the logging macros. (#98)
  • Can now control shared/static linking via BUILD_SHARED_LIBS (#94)
  • Addressed some MISRA C compliance issues (#91)
  • Fixed a steady time overflow issue (#87)
  • Changed rcutils_time_point_value_t type from uint64_t to int64_t (#84)
  • Fixed out-of-bounds read issue (#83)
  • Contributors: Dirk Thomas, Ethan Gao, Michael Carroll, Mikael Arguedas, Sagnik Basu, Shane Loretz, William Woodall, cshen, dhood, serge-nikulin

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 0.8.5
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version eloquent
Last Updated 2020-12-04
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Chris Lalancette
  • Alejandro Hernandez Cordero

Authors

  • Karsten Knese

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • A function to get an environment variable's value:
    • rcutils_get_env()
    • rcutils/get_env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

0.8.5 (2020-12-04)

  • Update the maintainers. (#299)
  • check and link against libatomic (#172) (#178) (#217)
  • Contributors: Chris Lalancette, Shane Loretz

0.8.4 (2019-11-18)

  • fix type of logging feature keys (#192)
  • Contributors: Dirk Thomas

0.8.3 (2019-11-12)

  • Fix uninitialized handle error (#187)
  • Use Win32 wrapper around 64 bit atomic operations (#186)
  • Contributors: Sean Kelly

0.8.2 (2019-10-23)

  • Specify working directory for filesystem test (#185)
  • Make use of time source type for throttling logs (#183)
  • Remove ready_fn - will be replaced by ReadyToTest() (#184)
  • Contributors: Brian Marchi, Dan Rose, Peter Baughman

0.8.1 (2019-10-03)

  • Implement rcutils_mkdir. (#166)
  • Contributors: Chris Lalancette

0.8.0 (2019-09-24)

  • Make g_rcutils_log_severity_names public and immutable. (#180)
  • use _WIN32 instead of WIN32 (#179)
  • Revert \"check and link against libatomic (#172)\" (#177)
  • check and link against libatomic (#172)
  • Rewrite test_logging_throttle tests: (#167)
  • Disable uncrustify indentation check for macros that use windows [__pragma]{.title-ref} (#164)
  • Fix armhf warning (#163)
  • Contributors: Christian Rauch, Dirk Thomas, Emerson Knapp, Michel Hidalgo, Shane Loretz, jpsamper2009

0.7.3 (2019-05-29)

  • getprogname() is the correct API to use on Android. (#162)
  • Contributors: Chris Lalancette

0.7.1 (2019-05-08)

  • Add function rcutils_string_array_cmp (#144)
  • Rename result variable for clarity. (#157)
  • Add in utilities needed for log location (#155)
  • remove macros from source file (#156)
  • Migrate launch tests to new launch_testing features & API (#140)
  • Use GCC extension for printf-like functions (#154)
  • Fix leak in test_logging.cpp (#153)
  • Fix leak in test_logging_macros.cpp (#152)
  • Fix remaining leaks in test_string_map.cpp (#151)
  • Fix a leak in test_array_list.cpp (#149)
  • Contributors: Chris Lalancette, Dirk Thomas, Jacob Perron, Michel Hidalgo, Steven! Ragnar

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 0.7.6
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version dashing
Last Updated 2020-11-24
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Karsten Knese

Authors

No additional authors.

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • A function to get an environment variable's value:
    • rcutils_get_env()
    • rcutils/get_env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

0.7.6 (2020-11-24)

  • Add QNX support for rcutils_get_executable_name. (#282) (#308)
  • Contributors: Ahmed Sobhy, Jacob Perron

0.7.5 (2019-12-10)

  • Fix uninitialized handle error (#187) (#191)
  • Contributors: Karsten Knese, Sean Kelly

0.7.4 (2019-11-11)

  • Use Win32 wrapper around 64 bit atomic operations (#186) (#188)
  • Contributors: Sean Kelly

0.7.3 (2019-05-29)

  • getprogname() is the correct API to use on Android. (#162)
  • Contributors: Chris Lalancette

0.7.1 (2019-05-08)

  • Add function rcutils_string_array_cmp (#144)
  • Rename result variable for clarity. (#157)
  • Add in utilities needed for log location (#155)
  • remove macros from source file (#156)
  • Migrate launch tests to new launch_testing features & API (#140)
  • Use GCC extension for printf-like functions (#154)
  • Fix leak in test_logging.cpp (#153)
  • Fix leak in test_logging_macros.cpp (#152)
  • Fix remaining leaks in test_string_map.cpp (#151)
  • Fix a leak in test_array_list.cpp (#149)
  • Contributors: Chris Lalancette, Dirk Thomas, Jacob Perron, Michel Hidalgo, Steven! Ragnar

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

Name Repo Deps
fmi_adapter github-boschresearch-fmi_adapter
image_proc github-ros-perception-image_pipeline
pluginlib github-ros-pluginlib
turtlebot3_node github-ROBOTIS-GIT-turtlebot3
composition github-ros2-demos
demo_nodes_cpp github-ros2-demos
logging_demo github-ros2-demos
quality_of_service_demo_cpp github-ros2-demos
rcl github-ros2-rcl
rcl_action github-ros2-rcl
rcl_lifecycle github-ros2-rcl
rcl_yaml_param_parser github-ros2-rcl
rcl_logging_log4cxx github-ros2-rcl_logging
rcl_logging_noop github-ros2-rcl_logging
rclc github-ros2-rclc
rclpy github-ros2-rclpy
rmw github-ros2-rmw
rmw_connext_cpp github-ros2-rmw_connext
rmw_connext_shared_cpp github-ros2-rmw_connext
rmw_cyclonedds_cpp github-ros2-rmw_cyclonedds
rmw_fastrtps_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_dynamic_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_shared_cpp github-ros2-rmw_fastrtps
rmw_gurumdds_cpp github-ros2-rmw_gurumdds
rmw_gurumdds_shared_cpp github-ros2-rmw_gurumdds
rmw_implementation github-ros2-rmw_implementation
ros1_bridge github-ros2-ros1_bridge
lgsvl_bridge github-lgsvl-ros2-lgsvl-bridge
controller_parameter_server github-ros-controls-ros2_control
hardware_interface github-ros-controls-ros2_control
test_robot_hardware github-ros-controls-ros2_control
rosbag2 github-ros2-rosbag2
rosbag2_converter_default_plugins github-ros2-rosbag2
rosbag2_storage github-ros2-rosbag2
rosbag2_storage_default_plugins github-ros2-rosbag2
rosbag2_test_common github-ros2-rosbag2
rosbag2_bag_v2_plugins github-ros2-rosbag2_bag_v2
rosidl_typesupport_connext_c github-ros2-rosidl_typesupport_connext
rosidl_typesupport_connext_cpp github-ros2-rosidl_typesupport_connext
rmw_opensplice_cpp github-ros2-rmw_opensplice

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 4.0.4
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version galactic
Last Updated 2022-12-03
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Chris Lalancette
  • Alejandro Hernandez Cordero

Authors

  • Karsten Knese

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

API

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • Functions for interfacing with process environment variables:
    • rcutils_get_env()
    • rcutils_get_home_dir()
    • rcutils_set_env()
    • rcutils/env.h
    • rcutils/get_env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • Some basic utilities to load, unload and get symbols from shared libraries at run-time.
    • rcutils/shared_library.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

4.0.4 (2022-12-02)

4.0.3 (2022-06-30)

  • Clarify duration arg description in logging macros (#359) (#361)
  • Fix build on Android (#343)
  • Contributors: Ivan Santiago Paunovic, mergify[bot]

4.0.2 (2021-04-12)

  • Declare dependency on libatomic (#338)
  • Contributors: Scott K Logan

4.0.1 (2021-04-06)

4.0.0 (2021-03-18)

  • Quiet down a warning in release mode. (#334)
  • Make the logging separate char an implementation detail. (#332)
  • Performance tests demo (#288)
  • Remove references of __xstat (#330)
  • Update the documentation to be more consistent. (#331)
  • Shorten some excessively long lines of CMake (#328)
  • qnx-support: include sys/link.h & avoid using dlinfo (#327)
  • QNX uses XSI-compliant (#326)
  • Contributors: Ahmed Sobhy, Chris Lalancette, Homalozoa X, Jorge Perez, Scott K Logan

3.1.0 (2021-01-25)

  • Add an API for directory iteration (#323)
  • Fix a leak during error handling in dir size calculation (#324)
  • Fix rcutils_shared_library_t path on Windows. (#322)
  • Check linker flags instead of assuming compiler correlation. (#321)
  • Improve shared library relative paths handling (#320)
  • Contributors: Michel Hidalgo, Scott K Logan

3.0.0 (2020-12-02)

  • Update rcutils_calculate_directory_size() to support recursion (#306)
  • Updating QD to QL 1 (#317)
  • Address unused return values found in scan-build (#316)
  • use one copy for continuous area instead of loop copy (#312)
  • use a better way to check whether string is empty (#315)
  • Use helper funciton to copy string (#314)
  • Disable a Windows platform warning. (#311)
  • Fix format of code description on document (#313)
  • Make sure to check the return values of rcutils APIs. (#302)
  • Contributors: Barry Xu, Chen Lihui, Chris Lalancette, Stephen Brawner

2.2.0 (2020-10-19)

  • Add rcutils_expand_user() to expand user directory in path (#298)
  • Update the maintainers. (#299)
  • Remove the temporary variable in RCUTILS_LOGGING_AUTOINIT (#290)
  • Contributors: Chris Lalancette, Christophe Bedard, Felix Endres

2.1.0 (2020-10-02)

  • Add RCUTILS_NO_FAULT_INJECTION() macro. (#295)
  • Inject faults on rcutils_get_env() and rcutils_set_env() call. (#292)
  • env.h and get_env.h docblock fixes (#291)
  • Introduce rcutils_strcasecmp, case insensitive string compare. (#280)
  • Stop using fprintf to avoid using file handles by changing as few lines of code as possible. (#289)
  • Defines QNX implementation for rcutils_get_platform_library_name (#287)
  • Contributors: Ahmed Sobhy, Ivan Santiago Paunovic, Michel Hidalgo, tomoya

2.0.0 (2020-08-28)

  • Add RCUTILS_CAN_SET_ERROR_MSG_AND_RETURN_WITH_ERROR_OF() macro. (#284) To fault inject error messages as well as return codes.
  • Change rcutils_fault_injection_set_count to use int64_t (#283)
  • adds QNX support for rcutils_get_executable_name (#282)
  • Add fault injection hooks to default allocator (#277)
  • Fault injection macros and functionality (plus example) (#264)
  • ensure -fPIC is used when building a static lib (#276)
  • Drop vsnprintf mocks entirely. (#275) Binary API is not portable across platforms and compilation config.
  • Fix vsnprintf mocks for Release builds. (#274)
  • Improve test coverage mocking system calls (#272)
  • Use mimick/mimick.h header (#273)
  • Add mock test for rcutils/strerror (#265)
  • Add compiler option -Wconversion and add explicit casts for conversions that may alter the value or change the sign (#263) See https://github.com/ros2/rcutils/pull/263#issuecomment-663252537.
  • Removed doxygen warnings (#266) (#268)
  • Removed doxygen warnings (#266)
  • Force _GNU_SOURCE if glibc is used. (#267)
  • Add parenthesis around the argument in time conversion macros defined in time.h (#261)
  • Contributors: Ahmed Sobhy, Alejandro Hern

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

Name Repo Deps
control_toolbox github-ros-controls-control_toolbox
tf2 github-ros2-geometry2
image_proc github-ros-perception-image_pipeline
pluginlib github-ros-pluginlib
rviz_visual_testing_framework github-ros2-rviz
turtlebot3_node github-ROBOTIS-GIT-turtlebot3
ur_controllers github-UniversalRobots-Universal_Robots_ROS2_Driver
composition github-ros2-demos
demo_nodes_cpp github-ros2-demos
logging_demo github-ros2-demos
quality_of_service_demo_cpp github-ros2-demos
topic_statistics_demo github-ros2-demos
micro_ros_common_diagnostics github-micro-ROS-micro_ros_diagnostics
rcl github-ros2-rcl
rcl_action github-ros2-rcl
rcl_lifecycle github-ros2-rcl
rcl_yaml_param_parser github-ros2-rcl
rcl_logging_interface github-ros2-rcl_logging
rcl_logging_log4cxx github-ros2-rcl_logging
rcl_logging_noop github-ros2-rcl_logging
rcl_logging_spdlog github-ros2-rcl_logging
rclc github-ros2-rclc
rclc_parameter github-ros2-rclc
rclcpp github-ros2-rclcpp
rclcpp_lifecycle github-ros2-rclcpp
rclpy github-ros2-rclpy
rcpputils github-ros2-rcpputils
rmw github-ros2-rmw
rmw_cyclonedds_cpp github-ros2-rmw_cyclonedds
rmw_dds_common github-ros2-rmw_dds_common
rmw_fastrtps_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_dynamic_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_shared_cpp github-ros2-rmw_fastrtps
rmw_gurumdds_cpp github-ros2-rmw_gurumdds
rmw_gurumdds_shared_cpp github-ros2-rmw_gurumdds
rmw_implementation github-ros2-rmw_implementation
test_rmw_implementation github-ros2-rmw_implementation
ros1_bridge github-ros2-ros1_bridge
hardware_interface github-ros-controls-ros2_control
joint_state_broadcaster github-ros-controls-ros2_controllers
rosbag2_compression github-ros2-rosbag2
rosbag2_compression_zstd github-ros2-rosbag2
rosbag2_cpp github-ros2-rosbag2
rosbag2_storage github-ros2-rosbag2
rosbag2_storage_default_plugins github-ros2-rosbag2
rosbag2_test_common github-ros2-rosbag2
rosbag2_bag_v2_plugins github-ros2-rosbag2_bag_v2
rosbag2_storage_mcap github-ros-tooling-rosbag2_storage_mcap
rosidl_runtime_c github-ros2-rosidl
rosidl_typesupport_c github-ros2-rosidl_typesupport
stubborn_buddies github-open-rmf-stubborn_buddies
test_quality_of_service github-ros2-system_tests
irobot_create_ignition_toolbox github-iRobotEducation-create3_sim
domain_bridge github-ros2-domain_bridge
rmw_connextdds_common github-ros2-rmw_connextdds
turtlebot4_node github-turtlebot-turtlebot4
turtlebot4_base github-turtlebot-turtlebot4_robot
turtlebot4_ignition_toolbox github-turtlebot-turtlebot4_simulator

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

rcutils package from rcutils repo

rcutils

Package Summary

Tags No category tags.
Version 1.1.5
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/ros2/rcutils.git
VCS Type git
VCS Version foxy
Last Updated 2023-03-16
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Package containing various utility types and functions for C

Additional Links

No additional links.

Maintainers

  • Chris Lalancette
  • Alejandro Hernandez Cordero

Authors

  • Karsten Knese

rcutils: ROS 2 C Utilities data structures

rcutils is a C API consisting of macros, functions, and data structures used through out the ROS 2 code base.

Quality Declaration

This package claims to be in the Quality Level 1 category, see the Quality Declaration for more details.

API

The API is a combination of parts:

  • Allocator concept, used to inject the allocating and deallocating methods into a function or type.
    • rcutils_allocator_t
    • rcutils/allocator.h
  • Command line interface utilities:
    • rcutils/cmdline_parser.h
  • Utilities for setting error states (error message, file, and line number) like strerror for errno:
    • rcutils/error_handling.h
  • Some basic filesystem utilities like checking for path existence, getting the cwd, etc...:
    • rcutils/filesystem.h
  • A C string find method:
    • rcutils_find()
    • rcutils_find_last()
    • rcutils/find.h
  • A convenient string formatting function, which takes a custom allocator:
    • rcutils_format_string()
    • rcutils/format_string.h
  • Functions for interfacing with process environment variables:
    • rcutils_get_env()
    • rcutils_get_home_dir()
    • rcutils_set_env()
    • rcutils/env.h
    • rcutils/get_env.h
  • Extensible logging macros:
    • Some examples (not exhaustive):
    • RCUTILS_LOG_DEBUG()
    • RCUTILS_LOG_INFO_NAMED()
    • RCUTILS_LOG_WARN_ONCE()
    • RCUTILS_LOG_ERROR_SKIPFIRST_NAMED()
    • rcutils/logging_macros.h
    • rcutils/logging.h
  • Some basic utilities to load, unload and get symbols from shared libraries at run-time.
    • rcutils/shared_library.h
  • A string replacement function which takes an allocator, based on http://creativeandcritical.net/str-replace-c:
    • rcutils_repl_str()
    • rcutils/repl_str.h
  • String splitting functions which take a custom allocator:
    • rcutils_split()
    • rcutils_split_last()
    • rcutils/split.h
  • A version of strdup which takes an allocator:
    • rcutils_strdup()
    • rcutils/strdup.h
  • Portable implementations of "get system time" and "get steady time":
    • rcutils_system_time_now()
    • rcutils_steady_time_now()
    • rcutils/time.h
  • Some useful data structures:
    • A "string array" data structure (analogous to std::vector<std::string>):
    • rcutils_string_array_t
    • rcutils/types/string_array.h
    • A "string-string map" data structure (analogous to std::map<std::string, std::string>)
    • rcutils_string_map_t
    • rcutils/types/string_map.h
  • Macros for controlling symbol visibility and linkage for this library:
    • rcutils/visibility_control.h
CHANGELOG

Changelog for package rcutils

1.1.5 (2023-03-16)

1.1.4 (2022-07-25)

  • Clarify duration arg description in logging macros (#359) (#362)
  • Contributors: Abrar Rahman Protyasha

1.1.3 (2021-04-14)

1.1.2 (2020-12-08)

  • Disable a Windows platform warning (#311) (#319)
  • Update QD to QL 1 (#318)
  • Add QNX support for rcutils_get_executable_name (#282) (#307)
  • DefinesQNX implementation for rcutils_get_platform_library_name (#287) (#309)
  • Update the maintainers (#299) (#300)
  • Contributors: Ahmed Sobhy, Alejandro Hern

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Dependant Packages

Name Repo Deps
control_toolbox github-ros-controls-control_toolbox
fmi_adapter github-boschresearch-fmi_adapter
test_tf2 github-ros2-geometry2
tf2 github-ros2-geometry2
image_proc github-ros-perception-image_pipeline
pluginlib github-ros-pluginlib
psen_scan_v2 github-PilzDE-psen_scan_v2
turtlebot3_node github-ROBOTIS-GIT-turtlebot3
ur_controllers github-UniversalRobots-Universal_Robots_ROS2_Driver
composition github-ros2-demos
demo_nodes_cpp github-ros2-demos
logging_demo github-ros2-demos
quality_of_service_demo_cpp github-ros2-demos
micro_ros_common_diagnostics github-micro-ROS-micro_ros_diagnostics
rcl github-ros2-rcl
rcl_action github-ros2-rcl
rcl_lifecycle github-ros2-rcl
rcl_yaml_param_parser github-ros2-rcl
rcl_logging_log4cxx github-ros2-rcl_logging
rcl_logging_noop github-ros2-rcl_logging
rcl_logging_spdlog github-ros2-rcl_logging
rclada github-ada-ros-rclada
rclc github-ros2-rclc
rclc_parameter github-ros2-rclc
rclcpp github-ros2-rclcpp
rclcpp_lifecycle github-ros2-rclcpp
rclpy github-ros2-rclpy
rcpputils github-ros2-rcpputils
rmw github-ros2-rmw
rmw_connext_cpp github-ros2-rmw_connext
rmw_connext_shared_cpp github-ros2-rmw_connext
rmw_cyclonedds_cpp github-ros2-rmw_cyclonedds
rmw_dds_common github-ros2-rmw_dds_common
rmw_fastrtps_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_dynamic_cpp github-ros2-rmw_fastrtps
rmw_fastrtps_shared_cpp github-ros2-rmw_fastrtps
rmw_gurumdds_cpp github-ros2-rmw_gurumdds
rmw_implementation github-ros2-rmw_implementation
test_rmw_implementation github-ros2-rmw_implementation
ros1_bridge github-ros2-ros1_bridge
lgsvl_bridge github-lgsvl-ros2-lgsvl-bridge
hardware_interface github-ros-controls-ros2_control
joint_state_broadcaster github-ros-controls-ros2_controllers
rosbag2_compression github-ros2-rosbag2
rosbag2_cpp github-ros2-rosbag2
rosbag2_storage github-ros2-rosbag2
rosbag2_storage_default_plugins github-ros2-rosbag2
rosbag2_test_common github-ros2-rosbag2
rosbag2_bag_v2_plugins github-ros2-rosbag2_bag_v2
rosbag2_storage_mcap github-ros-tooling-rosbag2_storage_mcap
rosidl_generator_c github-ros2-rosidl
rosidl_runtime_c github-ros2-rosidl
rosidl_typesupport_c github-ros2-rosidl_typesupport
rosidl_typesupport_connext_c github-ros2-rosidl_typesupport_connext
rosidl_typesupport_connext_cpp github-ros2-rosidl_typesupport_connext
stubborn_buddies github-open-rmf-stubborn_buddies
system_metrics_collector github-ros-tooling-system_metrics_collector
test_quality_of_service github-ros2-system_tests

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged rcutils at Robotics Stack Exchange

No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.