Skip to content

Commit e1d212b

Browse files
Geibinger4ntn
authored andcommitted
Parameter example fix (#287)
Signed-off-by: Geibinger <friedl.jak@gmail.com> Co-authored-by: Antón Casas <antoncasas@eprosima.com> (cherry picked from commit ef11601)
1 parent 38a575c commit e1d212b

File tree

1 file changed

+21
-19
lines changed
  • examples/parameters/main

1 file changed

+21
-19
lines changed

examples/parameters/main/main.c

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1-
#include <string.h>
21
#include <stdio.h>
2+
#include <string.h>
33
#include <unistd.h>
44

5-
#include "freertos/FreeRTOS.h"
6-
#include "freertos/task.h"
75
#include "esp_log.h"
86
#include "esp_system.h"
7+
#include "freertos/FreeRTOS.h"
8+
#include "freertos/task.h"
99

10-
#include <uros_network_interfaces.h>
11-
#include <rcl/rcl.h>
1210
#include <rcl/error_handling.h>
13-
#include <rclc/rclc.h>
11+
#include <rcl/rcl.h>
1412
#include <rclc/executor.h>
13+
#include <rclc/rclc.h>
1514
#include <rclc_parameter/rclc_parameter.h>
15+
#include <uros_network_interfaces.h>
16+
#include <uxr/client/config.h>
1617

1718
#include <rmw_microros/rmw_microros.h>
1819
#include <uxr/client/config.h>
@@ -27,30 +28,31 @@ void timer_callback(rcl_timer_t * timer, int64_t last_call_time)
2728
(void) timer;
2829
(void) last_call_time;
2930

30-
int value;
31+
int64_t value;
3132
rclc_parameter_get_int(&param_server, "param2", &value);
3233
value++;
33-
rclc_parameter_set_int(&param_server, "param2", (int64_t) value);
34+
rclc_parameter_set_int(&param_server, "param2", value);
3435
}
3536

36-
void on_parameter_changed(Parameter * param)
37-
{
38-
printf("Parameter %s modified.", param->name.data);
39-
switch (param->value.type)
37+
bool on_parameter_changed(const Parameter *old_param, const Parameter *new_param, void *context)
38+
{
39+
printf("Parameter %s modified.", new_param->name.data);
40+
switch (new_param->value.type)
4041
{
4142
case RCLC_PARAMETER_BOOL:
42-
printf(" New value: %d (bool)", param->value.bool_value);
43+
printf(" New value: %d (bool)", new_param->value.bool_value);
4344
break;
4445
case RCLC_PARAMETER_INT:
45-
printf(" New value: %lld (int)", param->value.integer_value);
46+
printf(" New value: %lld (int)", new_param->value.integer_value);
4647
break;
4748
case RCLC_PARAMETER_DOUBLE:
48-
printf(" New value: %f (double)", param->value.double_value);
49+
printf(" New value: %f (double)", new_param->value.double_value);
4950
break;
5051
default:
5152
break;
5253
}
5354
printf("\n");
55+
return true;
5456
}
5557

5658
void micro_ros_task(void * arg)
@@ -79,16 +81,16 @@ void micro_ros_task(void * arg)
7981

8082
// create timer,
8183
rcl_timer_t timer;
82-
RCCHECK(rclc_timer_init_default2(
84+
rclc_timer_init_default2(
8385
&timer,
8486
&support,
8587
RCL_MS_TO_NS(1000),
8688
timer_callback,
87-
true));
89+
true);
8890

8991
// Create executor
9092
rclc_executor_t executor;
91-
rclc_executor_init(&executor, &support.context, RCLC_PARAMETER_EXECUTOR_HANDLES_NUMBER + 1, &allocator);
93+
rclc_executor_init(&executor, &support.context, RCLC_EXECUTOR_PARAMETER_SERVER_HANDLES + 1, &allocator);
9294
rclc_executor_add_parameter_server(&executor, &param_server, on_parameter_changed);
9395
rclc_executor_add_timer(&executor, &timer);
9496

@@ -102,7 +104,7 @@ void micro_ros_task(void * arg)
102104
rclc_parameter_set_double(&param_server, "param3", 0.01);
103105

104106
bool param1;
105-
int param2;
107+
int64_t param2;
106108
double param3;
107109

108110
rclc_parameter_get_bool(&param_server, "param1", &param1);

0 commit comments

Comments
 (0)