2import "goby/middleware/protobuf/app_config.proto";
3import "goby/protobuf/option_extensions.proto";
4import "goby/zenoh/protobuf/interprocess_config.proto";
6package goby.zenoh.protobuf;
10 option (goby.msg).cfg.tool = {
16 optional goby.middleware.protobuf.AppConfig app = 1
17 [(goby.field) = { cfg { action: DEVELOPER } }];
22 help = 0 [(goby.ev).cfg = {
23 short_help_msg: "Print usage information",
24 full_help_msg: "Usage: \"goby zenoh help [action]\"\n"
26 publish = 1 [(goby.ev).cfg = {
27 short_help_msg: "Publish a message (on interprocess)",
29 subscribe = 2 [(goby.ev).cfg = {
30 short_help_msg: "Subscribe to messages (on interprocess)",
33 optional Action action = 2 [
36 description: "The action this tool should take [can omit --action if 1st parameter]",
37 cfg { position: { enable: true }, cli_short: "A", action: HIDDEN }
42message PublishToolConfig
44 option (goby.msg).cfg.tool = {
47 has_help_action: false
50 optional goby.middleware.protobuf.AppConfig app = 1
51 [(goby.field) = { cfg { action: DEVELOPER } }];
52 optional InterProcessPortalConfig interprocess = 2
53 [(goby.field) = { cfg { env: "GOBY_INTERPROCESS" } }];
55 required string group = 10 [(goby.field) = {
56 description: "Group as string",
57 cfg { position: { enable: true }, cli_short: "g" }
60 required string type = 11 [(goby.field) = {
61 description: "Scheme (as name: PROTOBUF, DCCL, JSON) followed by '/' and type name, if required. For example, 'PROTOBUF/NavigationReport', 'DCCL/NavigationReport', 'JSON/NavigationReport'. For JSON, you can omit '/<typename>' to publish as generic nlohmann::json. If string contains 'protobuf.', you can omit PROTOBUF/; e.g., 'goby.middleware.protobuf.IOData'",
62 cfg { position: { enable: true }, cli_short: "t" }
65 required string value = 12 [(goby.field) = {
66 description: "Value as string",
67 cfg { position: { enable: true } }
70 repeated string load_shared_library = 20 [(goby.field) = {
71 description: "Load this shared library containing compiled Protobuf/DCCL messages.",
72 cfg { cli_short: "l" env: "GOBY_TOOL_LOAD_SHARED_LIBRARY" }
75 optional double settle_seconds = 30 [
78 description: "Seconds to wait before publishing, so that the subscribers discovered meanwhile receive the message: Zenoh routes a publication only to the subscribers its session already knows of"
83message SubscribeToolConfig
85 option (goby.msg).cfg.tool = {
88 has_help_action: false
91 optional goby.middleware.protobuf.AppConfig app = 1
92 [(goby.field) = { cfg { action: DEVELOPER } }];
93 optional InterProcessPortalConfig interprocess = 2
94 [(goby.field) = { cfg { env: "GOBY_INTERPROCESS" } }];
96 optional string group_regex = 10 [
99 description: "Group as string or regex",
100 cfg { position: { enable: true }, cli_short: "g" }
104 optional string type_regex = 11 [
107 description: "Type as string or regex",
108 cfg { position: { enable: true }, cli_short: "t" }
112 optional string scheme = 12 [(goby.field) = {
113 description: "Only subscribe to this marshalling scheme as string or integer [PROTOBUF|1, DCCL|2, JSON|7]. If omitted, all supported schemes are used.",
114 cfg { position: { enable: true }, cli_short: "s" }
117 repeated string load_shared_library = 20 [(goby.field) = {
118 description: "Load this shared library containing compiled Protobuf/DCCL messages.",
119 cfg { cli_short: "l" env: "GOBY_TOOL_LOAD_SHARED_LIBRARY" }
122 optional bool include_internal_groups = 30 [default = false];