From 091368a307b9bcd3599ab05efaeae0861239e193 Mon Sep 17 00:00:00 2001 From: David Laseca Perez Date: Fri, 28 Aug 2026 13:02:17 +0200 Subject: [PATCH] Update demos after API changes Signed-off-by: David Laseca Perez --- rclc/autodiscover_agent/main.c | 8 +++++--- .../configured_publisher/main.c | 8 +++++--- .../custom_transports/main.c | 8 +++++--- rclc/epoch_synchronization/main.c | 8 +++++--- rclc/fragmented_publication/main.c | 14 ++++++++------ rclc/graph_introspection/publisher_count/main.c | 8 +++++--- .../subscription_count/main.c | 8 +++++--- rclc/int32_multinode/main.c | 16 ++++++++++------ rclc/int32_publisher/main.c | 8 +++++--- rclc/int32_publisher_subscriber/main.c | 8 +++++--- rclc/parameter_server/main.c | 8 +++++--- rclc/ping_pong/main.c | 5 +++-- rclc/ping_uros_agent/main.c | 8 +++++--- rclc/static_type_handling/main.c | 8 +++++--- rclc/string_publisher/main.c | 8 +++++--- rclc/timer/main.c | 8 +++++--- 16 files changed, 86 insertions(+), 53 deletions(-) diff --git a/rclc/autodiscover_agent/main.c b/rclc/autodiscover_agent/main.c index 1d02eaf..96c9339 100644 --- a/rclc/autodiscover_agent/main.c +++ b/rclc/autodiscover_agent/main.c @@ -16,9 +16,10 @@ rcl_publisher_t publisher; std_msgs__msg__Int32 msg; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); printf("Sent: %d\n", msg.data); @@ -58,11 +59,12 @@ int main() // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/configuration_example/configured_publisher/main.c b/rclc/configuration_example/configured_publisher/main.c index 3f1a57c..9d281bb 100644 --- a/rclc/configuration_example/configured_publisher/main.c +++ b/rclc/configuration_example/configured_publisher/main.c @@ -15,9 +15,10 @@ rcl_publisher_t publisher; std_msgs__msg__Int32 msg; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); printf("Sent: %d\n", msg.data); @@ -66,11 +67,12 @@ int main(int argc, char * const argv[]) // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/configuration_example/custom_transports/main.c b/rclc/configuration_example/custom_transports/main.c index 4ca57e7..185110c 100644 --- a/rclc/configuration_example/custom_transports/main.c +++ b/rclc/configuration_example/custom_transports/main.c @@ -113,9 +113,10 @@ size_t custom_transport_read(struct uxrCustomTransport* transport, uint8_t* buf, rcl_publisher_t publisher; std_msgs__msg__Int32 msg; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); printf("Sent: %d\n", msg.data); @@ -161,11 +162,12 @@ int main(int argc, char * const argv[]) // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/epoch_synchronization/main.c b/rclc/epoch_synchronization/main.c index bbfb19e..898c7c3 100644 --- a/rclc/epoch_synchronization/main.c +++ b/rclc/epoch_synchronization/main.c @@ -15,10 +15,11 @@ rcl_publisher_t publisher; std_msgs__msg__Int32 msg; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; (void) timer; + (void) user_data; RCSOFTCHECK(rmw_uros_sync_session(1000)); int64_t time = rmw_uros_epoch_millis(); @@ -50,11 +51,12 @@ int main() // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/fragmented_publication/main.c b/rclc/fragmented_publication/main.c index 21213bd..5013f4c 100644 --- a/rclc/fragmented_publication/main.c +++ b/rclc/fragmented_publication/main.c @@ -16,9 +16,10 @@ rcl_publisher_t publisher; std_msgs__msg__String msg; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); printf("I sent an %ld array\n", msg.data.size); @@ -47,11 +48,12 @@ int main(int argc, const char * const * argv) // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); @@ -63,9 +65,9 @@ int main(int argc, const char * const * argv) msg.data.size = 0; msg.data.capacity = ARRAY_LEN; - memset(msg.data.data,'z',3500); - msg.data.data[3500] = '\0'; - msg.data.size = 3501; + memset(msg.data.data,'z',1800); // Default max buffer size is 2048 bytes + msg.data.data[1800] = '\0'; + msg.data.size = 1801; rclc_executor_spin(&executor); diff --git a/rclc/graph_introspection/publisher_count/main.c b/rclc/graph_introspection/publisher_count/main.c index a3f4cb3..4c13674 100644 --- a/rclc/graph_introspection/publisher_count/main.c +++ b/rclc/graph_introspection/publisher_count/main.c @@ -15,9 +15,10 @@ rcl_subscription_t subscription; rcl_node_t node; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; printf("Publisher count for subscription '/parameter_events':\n"); size_t publisher_count = 0; RCSOFTCHECK(rcl_subscription_get_publisher_count(&subscription, &publisher_count)); @@ -48,11 +49,12 @@ int main(int argc, const char * const * argv) // create timer rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor; diff --git a/rclc/graph_introspection/subscription_count/main.c b/rclc/graph_introspection/subscription_count/main.c index b992e69..d582eeb 100644 --- a/rclc/graph_introspection/subscription_count/main.c +++ b/rclc/graph_introspection/subscription_count/main.c @@ -15,9 +15,10 @@ rcl_publisher_t publisher; rcl_node_t node; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; printf("Subscriptions count for publisher '/parameter_events':\n"); size_t subscription_count = 0; RCSOFTCHECK(rcl_publisher_get_subscription_count(&publisher, &subscription_count)); @@ -48,11 +49,12 @@ int main(int argc, const char * const * argv) // create timer rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor; diff --git a/rclc/int32_multinode/main.c b/rclc/int32_multinode/main.c index 1f6db43..5578623 100644 --- a/rclc/int32_multinode/main.c +++ b/rclc/int32_multinode/main.c @@ -20,9 +20,10 @@ rcl_subscription_t subscriber_2; std_msgs__msg__Int32 send_msg_2; std_msgs__msg__Int32 recv_msg_2; -void timer_callback_1(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback_1(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher_1, &send_msg_1, NULL)); printf("Node 1 -- Sent: %d\n", send_msg_1.data); @@ -36,9 +37,10 @@ void subscription_callback_1(const void * msgin) printf("Node 1 --Received: %d\n", msg->data); } -void timer_callback_2(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback_2(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher_2, &send_msg_2, NULL)); printf("Node 2 -- Sent: %d\n", send_msg_2.data); @@ -82,11 +84,12 @@ int main(int argc, const char * const * argv) // create timer, rcl_timer_t timer_1; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer_1, &support, RCL_MS_TO_NS(1000), - timer_callback_1)); + timer_callback_1, + true)); // create executor rclc_executor_t executor_1 = rclc_executor_get_zero_initialized_executor(); @@ -115,11 +118,12 @@ int main(int argc, const char * const * argv) // create timer, rcl_timer_t timer_2; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer_2, &support, RCL_MS_TO_NS(1000), - timer_callback_2)); + timer_callback_2, + true)); // create executor rclc_executor_t executor_2 = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/int32_publisher/main.c b/rclc/int32_publisher/main.c index 96ff463..1ac7afc 100644 --- a/rclc/int32_publisher/main.c +++ b/rclc/int32_publisher/main.c @@ -14,9 +14,10 @@ rcl_publisher_t publisher; std_msgs__msg__Int32 msg; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); printf("Sent: %d\n", msg.data); @@ -46,11 +47,12 @@ int main() // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/int32_publisher_subscriber/main.c b/rclc/int32_publisher_subscriber/main.c index 141b5bc..0a5468c 100644 --- a/rclc/int32_publisher_subscriber/main.c +++ b/rclc/int32_publisher_subscriber/main.c @@ -15,9 +15,10 @@ rcl_subscription_t subscriber; std_msgs__msg__Int32 send_msg; std_msgs__msg__Int32 recv_msg; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher, &send_msg, NULL)); printf("Sent: %d\n", send_msg.data); @@ -60,11 +61,12 @@ int main(int argc, const char * const * argv) // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/parameter_server/main.c b/rclc/parameter_server/main.c index 47a25bf..5aacc73 100644 --- a/rclc/parameter_server/main.c +++ b/rclc/parameter_server/main.c @@ -20,10 +20,11 @@ rcl_timer_t timer; bool publish = true; std_msgs__msg__Int32 msg; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; (void) timer; + (void) user_data; if (publish) { RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); @@ -89,11 +90,12 @@ int main() // create timer, RCCHECK( - rclc_timer_init_default( + rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(1000), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/ping_pong/main.c b/rclc/ping_pong/main.c index 8f9e9dd..d358a09 100644 --- a/rclc/ping_pong/main.c +++ b/rclc/ping_pong/main.c @@ -27,9 +27,10 @@ int device_id; int seq_no; int pong_count; -void ping_timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void ping_timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { @@ -100,7 +101,7 @@ int main() // Create a 3 seconds ping timer timer, rcl_timer_t timer; - RCCHECK(rclc_timer_init_default(&timer, &support, RCL_MS_TO_NS(2000), ping_timer_callback)); + RCCHECK(rclc_timer_init_default2(&timer, &support, RCL_MS_TO_NS(2000), ping_timer_callback, true)); // Create executor diff --git a/rclc/ping_uros_agent/main.c b/rclc/ping_uros_agent/main.c index 59b9f63..e732e07 100644 --- a/rclc/ping_uros_agent/main.c +++ b/rclc/ping_uros_agent/main.c @@ -41,9 +41,10 @@ int usage() return 1; } -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (NULL != timer) { RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); printf("Sent: '%s'\n", msg.data.data); @@ -128,11 +129,12 @@ int main(int argc, char ** argv) // Create timer rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // Create executor rclc_executor_t executor; diff --git a/rclc/static_type_handling/main.c b/rclc/static_type_handling/main.c index e790577..9f99be5 100644 --- a/rclc/static_type_handling/main.c +++ b/rclc/static_type_handling/main.c @@ -31,9 +31,10 @@ void error_loop(){ } } -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { RCLC_UNUSED(last_call_time); + RCLC_UNUSED(user_data); if (timer != NULL) { RCSOFTCHECK(rcl_publish(&publisher, &msg, NULL)); RCSOFTCHECK(rcl_publish(&publisher, &msg_static, NULL)); @@ -58,11 +59,12 @@ int main() { // create timer, const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor RCCHECK(rclc_executor_init(&executor, &support.context, 1, &allocator)); diff --git a/rclc/string_publisher/main.c b/rclc/string_publisher/main.c index 57384db..2e94038 100644 --- a/rclc/string_publisher/main.c +++ b/rclc/string_publisher/main.c @@ -18,9 +18,10 @@ std_msgs__msg__String msg; int counter = 0; -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { (void) last_call_time; + (void) user_data; if (timer != NULL) { sprintf(msg.data.data, "Hello from micro-ROS #%d", counter++); msg.data.size = strlen(msg.data.data); @@ -51,11 +52,12 @@ int main(int argc, const char * const * argv) // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor(); diff --git a/rclc/timer/main.c b/rclc/timer/main.c index 9cbcce0..326a373 100644 --- a/rclc/timer/main.c +++ b/rclc/timer/main.c @@ -9,8 +9,9 @@ #define RCCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){printf("Failed status on line %d: %d. Aborting.\n",__LINE__,(int)temp_rc); return 1;}} #define RCSOFTCHECK(fn) { rcl_ret_t temp_rc = fn; if((temp_rc != RCL_RET_OK)){printf("Failed status on line %d: %d. Continuing.\n",__LINE__,(int)temp_rc);}} -void timer_callback(rcl_timer_t * timer, int64_t last_call_time) +void timer_callback(rcl_timer_t * timer, int64_t last_call_time, uintptr_t user_data) { + (void) user_data; if (timer != NULL) { printf("Timer callback executed. Last time %ld\n", last_call_time); } @@ -31,11 +32,12 @@ int main() // create timer, rcl_timer_t timer; const unsigned int timer_timeout = 1000; - RCCHECK(rclc_timer_init_default( + RCCHECK(rclc_timer_init_default2( &timer, &support, RCL_MS_TO_NS(timer_timeout), - timer_callback)); + timer_callback, + true)); // create executor rclc_executor_t executor = rclc_executor_get_zero_initialized_executor();