diff --git a/ament_cmake_export_crates/package.xml b/ament_cmake_export_crates/package.xml index 5b72259d1..7280e50e0 100644 --- a/ament_cmake_export_crates/package.xml +++ b/ament_cmake_export_crates/package.xml @@ -1,7 +1,7 @@ ament_cmake_export_crates - 0.0.3 + 0.2.0 The ability to export Rust crates to downstream packages in the ament buildsystem in CMake. Esteve Fernandez Esteve Fernandez diff --git a/rclrs/package.xml b/rclrs/package.xml index a766b8d2d..fb54d22f0 100644 --- a/rclrs/package.xml +++ b/rclrs/package.xml @@ -1,7 +1,7 @@ rclrs - 0.0.3 + 0.2.0 Package containing the Rust client. Esteve Fernandez Esteve Fernandez diff --git a/rclrs/src/c/rclrs.c b/rclrs/src/c/rclrs.c index 7209789fa..4229253c3 100644 --- a/rclrs/src/c/rclrs.c +++ b/rclrs/src/c/rclrs.c @@ -4,15 +4,27 @@ #include #include -bool rclrs_native_ok() { return rcl_ok(); } +rcl_context_t ctx; int32_t rclrs_native_init() { // TODO(esteve): parse args - return rcl_init(0, NULL, rcl_get_default_allocator()); + rcl_init_options_t opts; + ctx = rcl_get_zero_initialized_context(); + rcl_ret_t ret; + ret = rcl_init_options_init(&opts, rcl_get_default_allocator()); + if(ret!=RCL_RET_OK || ret!=RCL_RET_ALREADY_INIT) { return ret; } + + ret = rcl_init(0, NULL, &opts, &ctx); + if(ret!=RCL_RET_OK || ret!=RCL_RET_ALREADY_INIT) { return ret; } + + ret = rcl_init_options_fini(&opts); + if(ret!=RCL_RET_OK) { return ret; } + + return RCL_RET_OK; } const char *rclrs_native_get_error_string_safe() { - return rcl_get_error_string_safe(); + return rcl_get_error_string().str; } void rclrs_native_reset_error() { rcl_reset_error(); } @@ -24,7 +36,7 @@ int32_t rclrs_native_create_node_handle(uintptr_t *node_handle, *node = rcl_get_zero_initialized_node(); rcl_node_options_t default_options = rcl_node_get_default_options(); - rcl_ret_t ret = rcl_node_init(node, name, namespace, &default_options); + rcl_ret_t ret = rcl_node_init(node, name, namespace, &ctx, &default_options); *node_handle = (uintptr_t)node; return ret; } @@ -95,21 +107,21 @@ int32_t rclrs_native_wait_set_init(uintptr_t wait_set_handle, int32_t rclrs_native_wait_set_clear_subscriptions(uintptr_t wait_set_handle) { rcl_wait_set_t *wait_set = (rcl_wait_set_t *)wait_set_handle; - rcl_ret_t ret = rcl_wait_set_clear_subscriptions(wait_set); + rcl_ret_t ret = rcl_wait_set_clear(wait_set); return ret; } int32_t rclrs_native_wait_set_clear_services(uintptr_t wait_set_handle) { rcl_wait_set_t *wait_set = (rcl_wait_set_t *)wait_set_handle; - rcl_ret_t ret = rcl_wait_set_clear_services(wait_set); + rcl_ret_t ret = rcl_wait_set_clear(wait_set); return ret; } int32_t rclrs_native_wait_set_clear_clients(uintptr_t wait_set_handle) { rcl_wait_set_t *wait_set = (rcl_wait_set_t *)wait_set_handle; - rcl_ret_t ret = rcl_wait_set_clear_clients(wait_set); + rcl_ret_t ret = rcl_wait_set_clear(wait_set); return ret; } @@ -118,7 +130,7 @@ int32_t rclrs_native_wait_set_add_subscription(uintptr_t wait_set_handle, uintptr_t subscription_handle) { rcl_wait_set_t *wait_set = (rcl_wait_set_t *)wait_set_handle; rcl_subscription_t *subscription = (rcl_subscription_t *)subscription_handle; - rcl_ret_t ret = rcl_wait_set_add_subscription(wait_set, subscription); + rcl_ret_t ret = rcl_wait_set_add_subscription(wait_set, subscription, NULL); return ret; } @@ -160,7 +172,7 @@ int32_t rclrs_native_create_subscription_handle( int32_t rclrs_native_take(uintptr_t subscription_handle, uintptr_t message_handle) { rcl_subscription_t * subscription = (rcl_subscription_t *)subscription_handle; - void * taken_msg = message_handle; + void * taken_msg = (void *)message_handle; rcl_ret_t ret = rcl_take(subscription, taken_msg, NULL); diff --git a/rclrs/src/rust/Cargo.toml.in b/rclrs/src/rust/Cargo.toml.in index 4659fbc94..70fcde9e0 100644 --- a/rclrs/src/rust/Cargo.toml.in +++ b/rclrs/src/rust/Cargo.toml.in @@ -1,6 +1,6 @@ [package] name = "rclrs" -version = "0.1.0" +version = "0.2.0" authors = ["Esteve Fernandez "] [dependencies] diff --git a/rclrs_common/Cargo.toml b/rclrs_common/Cargo.toml index f7e9ade98..99835f6d9 100644 --- a/rclrs_common/Cargo.toml +++ b/rclrs_common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rclrs_common" -version = "0.1.0" +version = "0.2.0" authors = ["Esteve Fernandez "] [dependencies] diff --git a/rclrs_common/package.xml b/rclrs_common/package.xml index 7e0e44f60..cb1da859c 100644 --- a/rclrs_common/package.xml +++ b/rclrs_common/package.xml @@ -1,7 +1,7 @@ rclrs_common - 0.0.3 + 0.2.0 Common files for the Rust client. Esteve Fernandez Esteve Fernandez diff --git a/rclrs_examples/Cargo.toml b/rclrs_examples/Cargo.toml index 39962a458..d14b83677 100644 --- a/rclrs_examples/Cargo.toml +++ b/rclrs_examples/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rclrs_examples" -version = "0.1.0" +version = "0.2.0" authors = ["Esteve Fernandez "] [[bin]] diff --git a/rclrs_examples/package.xml b/rclrs_examples/package.xml index 8088e10f2..b72f50b65 100644 --- a/rclrs_examples/package.xml +++ b/rclrs_examples/package.xml @@ -1,7 +1,7 @@ rclrs_examples - 0.0.0 + 0.2.0 Package containing examples of how to use the rclrs API. Esteve Fernandez Apache License 2.0 diff --git a/rosidl_generator_rs/package.xml b/rosidl_generator_rs/package.xml index c465681f0..4fb25e1d6 100644 --- a/rosidl_generator_rs/package.xml +++ b/rosidl_generator_rs/package.xml @@ -2,7 +2,7 @@ rosidl_generator_rs - 0.0.3 + 0.2.0 Generate the ROS interfaces in Rust. Esteve Fernandez Esteve Fernandez