Closed gavanderhoorn closed 2 years ago
The mapping between object references, topic names, type names and type deserialization functions can already be configured in user-provided .lua files.
However, that still leaves the mapping between object IDs and topic names. That can be different every session, unless all entities happen to be created in the same order each time. I suppose you could populate that map in a custom .lua file, but you would have to create it separately for each capture.
Adding a GUI option to assign it on-demand would be the nicest solution. The documentation suggests that this is possible. But I would have to look into that a bit more. Or find an example dissector that does something similar.
It turns out that this is actually quite easy. See #2. Can you test if it works for you?
Seriously impressive @jseldent. I opened this as a maybe-nice-to-look-at-on-a-rainy-Friday-or-something kind of issue, with no expectation of it being solved so quickly.
I'll take a look and let you know.
(I'll probably not be as fast as you were though)
With the Tools -> DDS-XRCE -> Set object... menu option you can assign a profile and/or topic name to an object (typically a data reader or writer). You still need to have a .lua file which connects topic and type names and deserialization functions. Basically the types
, topic_type_names
, topic_names
(optional) and data_reader_topic_names
and/or data_writer_topic_names
tables as described in README.md.
Yes, I'd understood that. Thanks for confirming.
The dissector is already capable of invoking custom dissector-snippets based on the mapping configured by the user and witnessing the session setup packets, which works great.
However, many captures don't include the packets which create the entities.
It would be very nice if there would be a way for users to manually associate certain streams/packets with data types (and consequently: dissectors for user-defined types).
Most fancy would be using some kind of gui / context menu. But a simple
.lua
with some additional meta-data would already work in this case.