Feature #2263
Automatic creation of container Messages for any available RST
Status: | Resolved | Start date: | 05/13/2015 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Wienke | % Done: | 100% | |
Category: | protocol | |||
Target version: | Robotics Service Bus - rsb-0.13 |
Description
When using RST, there is often the need for sending multiple Messages of the same type at the same time/close to another (see examples: LegList , ClassifiedRegions2D , ClassifiedRegions3D , States , and many others). This is often motivated by the fact that Message information is derived from a single certain cause (e.g. an image, a model, a previous message, etc..) and semantically/chronologically belongs together (e.g.: faces in an image, persons in a point cloud, etc.).
If one encounters this situation with a Message type X
, there are two ways of dealing with this:
- Create Messages of type
X
individually and add the same cause (i.e. an Event UUID) when sending it - Create a "container" RST
Xs
(just as the ones mentioned above) which only holds an array of the Message typeX
Both of these have their advantages and downsides. It is not always clear, which is better and each can have a big impact on implementations and system design.
Therefore, I want to propose a straight forward feature for RST: Automatically generate "container" Message types for every RST which only holds an array of that type.
A short example:
- I create a new Message type
Z
and add it to the RST sandbox - When building RST, an additional Message of type
Zs
is created which simply holds an array ofZ
RSTs - In my software I create multiple Messages of type
Z
which I append to the generated Message of typeZs
- Once I am done for a certain set, I send the Message of type
Zs
- Receiving parties can directly access the semantically/chronologically related information in Message
Zs
without the need to parse causes or investigate further on individualZ
Messages
Associated revisions
CMake logic to create collection from annotations
You can now add the following lines as annotations to top-level messages
to create collection types automatically:
// @create_collection
// @create_collection(ACollectionTypeName)
- CMakeLists.txt: add commands to create collection types
- GenerateCollection.cmake: cmake script for custom command to create
the collection type - proto/Collection.proto.in: template collection type
- cpp/CMakeLists.txt: adjust to changed paths and dependencies
- java/CMakeLists.txt: likewise
- python/CMakeLists.txt: likewise
fixes #2263
Use installed RST instead of relative path to a working copy
refs #2263
Use installed RST instead of relative path to a working copy
refs #2263
Use installed RST instead of relative path to a working copy
refs #2263
Use installed RST instead of relative path to a working copy
refs #2263
Use installed RST instead of relative path to a working copy
refs #2263
Use installed RST instead of relative path to a working copy
refs #2263
Use installed RST instead of relative path to a working copy
refs #2263
History
#1 Updated by J. Wienke over 7 years ago
- Status changed from New to In Progress
- Assignee set to J. Wienke
#2 Updated by J. Wienke over 7 years ago
- Status changed from In Progress to Resolved
- % Done changed from 0 to 100
Applied in changeset rst-proto|a91af7f95f1db3bc53204fb92cb9a72e4464e319.