Skip to content

Commit 9013842

Browse files
committed
fix(params): register /parameter_events schema with type description service
1 parent 6b7b6c9 commit 9013842

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

crates/hiroz/src/parameter/wire_types.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,33 @@ fn parameter_descriptor_schema()
487487
.build()
488488
}
489489

490+
/// Schema for the `rcl_interfaces/msg/ParameterEvent` message that is
491+
/// implicitly published on `/parameter_events` by every parameterized node.
492+
fn parameter_event_schema()
493+
-> std::result::Result<std::sync::Arc<MessageSchema>, crate::dynamic::DynamicError> {
494+
let parameter = parameter_schema()?;
495+
let stamp = MessageSchema::builder("builtin_interfaces/msg/Time")
496+
.field("sec", FieldType::Int32)
497+
.field("nanosec", FieldType::Uint32)
498+
.build()?;
499+
MessageSchema::builder("rcl_interfaces/msg/ParameterEvent")
500+
.field("stamp", FieldType::Message(stamp))
501+
.field("node", FieldType::String)
502+
.field(
503+
"new_parameters",
504+
FieldType::Sequence(Box::new(FieldType::Message(parameter.clone()))),
505+
)
506+
.field(
507+
"changed_parameters",
508+
FieldType::Sequence(Box::new(FieldType::Message(parameter.clone()))),
509+
)
510+
.field(
511+
"deleted_parameters",
512+
FieldType::Sequence(Box::new(FieldType::Message(parameter))),
513+
)
514+
.build()
515+
}
516+
490517
fn set_parameters_result_schema()
491518
-> std::result::Result<std::sync::Arc<MessageSchema>, crate::dynamic::DynamicError> {
492519
MessageSchema::builder("rcl_interfaces/msg/SetParametersResult")
@@ -607,4 +634,8 @@ pub(crate) fn register_parameter_schemas(tds: &TypeDescriptionService) {
607634
.field("result", FieldType::Message(result))
608635
.build()
609636
}));
637+
638+
// The implicitly-published `/parameter_events` topic
639+
// (`rcl_interfaces/msg/ParameterEvent`).
640+
register(parameter_event_schema());
610641
}

0 commit comments

Comments
 (0)