NEWSLabNTU / ddshark

A live monitoring tool for RTPS protocol.
MIT License
2 stars 2 forks source link

Get topic from discovery data #3

Closed st9540808 closed 1 year ago

st9540808 commented 1 year ago

SPDP and SEDP are key components of the DDS discovery process. These acronyms stand for Simple Participant Discovery Protocol (SPDP) and Simple Endpoint Discovery Protocol (SEDP), respectively.

In short, SPDP is for discovering DomainParticipants (corresponding to ROS 2 node), and SEDP is for discovering the endpoints, such as DataReaders and DataWriters (correspond to ROS 2 subscriber and publisher) within those DomainParticipants.

Example debug print for builtin_data

[src/rtps.rs:96] builtin_data = DiscoveredReaderData {
    reader_proxy: ReaderProxy {
        remote_reader_guid: GUID {[1, 16, 0, 175, 110, 183, 135, 45, 5, 83, 222, 18] EntityId {[0, 0, 20] EntityKind::READER_NO_KEY_USER_DEFINED}},
        expects_inline_qos: false,
        unicast_locator_list: [],
        multicast_locator_list: [],
    },
    subscription_topic_data: SubscriptionBuiltinTopicData {
        key: GUID {[1, 16, 0, 175, 110, 183, 135, 45, 5, 83, 222, 18] EntityId {[0, 0, 20] EntityKind::READER_NO_KEY_USER_DEFINED}},
        participant_key: None,
        topic_name: "rt/clock",
        type_name: "rosgraph_msgs::msg::dds_::Clock_",
        durability: None,
        deadline: None,
        latency_budget: None,
        liveliness: None,
        reliability: None,
        ownership: None,
        destination_order: None,
        time_based_filter: None,
        presentation: None,
        lifespan: None,
        service_instance_name: None,
        related_datawriter_key: None,
        topic_aliases: None,
    },
    content_filter: None,
}
[src/rtps.rs:96] builtin_data = DiscoveredReaderData {
    reader_proxy: ReaderProxy {
        remote_reader_guid: GUID {[1, 16, 0, 175, 110, 183, 135, 45, 5, 83, 222, 18] EntityId {[0, 0, 21] EntityKind::READER_NO_KEY_USER_DEFINED}},
        expects_inline_qos: false,
        unicast_locator_list: [],
        multicast_locator_list: [],
    },
    subscription_topic_data: SubscriptionBuiltinTopicData {
        key: GUID {[1, 16, 0, 175, 110, 183, 135, 45, 5, 83, 222, 18] EntityId {[0, 0, 21] EntityKind::READER_NO_KEY_USER_DEFINED}},
        participant_key: None,
        topic_name: "rt/parameter_events",
        type_name: "rcl_interfaces::msg::dds_::ParameterEvent_",
        durability: None,
        deadline: None,
        latency_budget: None,
        liveliness: None,
        reliability: Some(
            Reliable {
                max_blocking_time: Duration {
                    seconds: 2147483647,
                    fraction: 4294967295,
                },
            },
        ),
        ownership: None,
        destination_order: None,
        time_based_filter: None,
        presentation: None,
        lifespan: None,
        service_instance_name: None,
        related_datawriter_key: None,
        topic_aliases: None,
    },
    content_filter: None,
}