Goby3 3.2.3
2025.05.13
Loading...
Searching...
No Matches
liaison_config.proto
Go to the documentation of this file.
1syntax = "proto2";
2
3import "goby/protobuf/option_extensions.proto";
4import "goby/middleware/protobuf/app_config.proto";
5import "goby/middleware/protobuf/layer.proto";
6import "goby/zeromq/protobuf/interprocess_config.proto";
7import "goby/acomms/protobuf/network_ack.proto";
8
9package goby.apps.zeromq.protobuf;
10
11message LiaisonConfig
12{
13 optional goby.middleware.protobuf.AppConfig app = 1;
14 optional goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2 [(goby.field) = { cfg { env: "GOBY_INTERPROCESS" } }];
15
16
17 optional string http_address = 10 [
18 default = "localhost",
19 (goby.field).description =
20 "address to bind on; same as Wt --http-address"
21 ];
22 optional uint32 http_port = 11 [
23 default = 54321,
24 (goby.field).description =
25 "address to bind on; same as Wt --http-port"
26 ];
27
28 optional string docroot = 12 [
29 default = "/usr/share/goby/liaison",
30 (goby.field).description =
31 "path to static objects (e.g. images) root; same as Wt --docroot"
32 ];
33
34 optional string additional_wt_http_params = 13
35 [(goby.field).example = "--accesslog=/tmp/access.log"];
36 optional float update_freq = 14 [default = 5];
37
38 repeated string load_shared_library = 15
39 [(goby.field).description =
40 "Path to a shared library containing compiled Protobuf files. "
41 "Preferred over load_proto_file."];
42 repeated string load_proto_file = 16
43 [(goby.field).description =
44 "Path to a .proto file. Use load_shared_library when possible."];
45 repeated string load_proto_dir = 17
46 [(goby.field).description =
47 "Directory containing .proto files to load. Use "
48 "load_shared_library when possible."];
49
50 optional bool start_paused = 18 [default = false];
51
52 optional string upper_right_logo = 19
53 [(goby.field).description =
54 "Image for upper right, relative to docroot"];
55 optional string upper_right_logo_link = 20
56 [(goby.field).description = "Hyperlink for upper right image"];
57
58
59 optional bool add_home_tab = 21 [default = true];
60 optional bool add_scope_tab = 22 [default = true];
61 optional bool add_commander_tab = 23 [default = true];
62
63 optional ProtobufCommanderConfig pb_commander_config = 900;
64 optional ProtobufScopeConfig pb_scope_config = 901;
65
66 // MOOS - 1000 to 1099
67 // DRC - 1100
68 // WIP - 1200 to 1299
69 // Jaiabot - 1300
70 // private: 10000-11000
71 extensions 1000 to max;
72}
73
74message ProtobufCommanderConfig
75{
76 message LoadProtobuf
77 {
78 required string name = 1;
79
80 message GroupLayer
81 {
82 required string group = 1;
83 optional uint32 group_numeric = 2 [default = 0];
84 optional string group_numeric_field_name = 3;
85 optional goby.middleware.protobuf.Layer layer = 4
86 [default = LAYER_INTERPROCESS];
87 }
88 repeated GroupLayer publish_to = 2;
89
90 message ExternalData
91 {
92 required string name = 1;
93 required string group = 2;
94 message Translation
95 {
96 required string from = 1;
97 required string to = 2;
98 }
99 repeated Translation translate = 3;
100 }
101 repeated ExternalData external_data = 3;
102 }
103 repeated LoadProtobuf load_protobuf = 1;
104
105 optional int32 value_width_pixels = 10 [default = 500];
106 optional int32 modify_width_pixels = 11 [default = 100];
107 optional int32 external_data_width_pixels = 12 [default = 100];
108
109 optional string sqlite3_database = 20
110 [default = "/tmp/liaison_commander_autosave.db"];
111 optional int32 database_pool_size = 21 [default = 10];
112 optional int32 database_view_height = 5 [default = 400];
113
114 enum Column
115 {
116 option allow_alias = true;
117
118 COLUMN_COMMENT = 0;
119 COLUMN_NAME = 1;
120 COLUMN_GROUP = 2;
121 COLUMN_LAYER = 3;
122 COLUMN_IP = 4;
123 COLUMN_TIME = 5;
124 COLUMN_LAST_ACK = 6;
125 COLUMN_MAX = 6;
126 }
127
128 message DatabaseColumnWidthPixels
129 {
130 optional int32 comment_width = 1 [default = 180];
131 optional int32 name_width = 2 [default = 180];
132 optional int32 group_width = 3 [default = 120];
133 optional int32 layer_width = 4 [default = 120];
134 optional int32 ip_width = 5 [default = 120];
135 optional int32 time_width = 6 [default = 120];
136 optional int32 last_ack_width = 7 [default = 120];
137 }
138 optional DatabaseColumnWidthPixels database_width = 22;
139
140 message ModalDialogDimensions
141 {
142 optional int32 width = 1 [default = 800];
143 optional int32 height = 2 [default = 200];
144 }
145 optional ModalDialogDimensions modal_dimensions = 23;
146
147 message NotificationSubscription
148 {
149 required string type_regex = 1;
150 required string group_regex = 2;
151
152 message Color
153 {
154 required int32 r = 1;
155 required int32 g = 2;
156 required int32 b = 3;
157 optional int32 a = 4 [default = 255];
158 }
159
160 optional Color background_color = 3;
161 }
162
163 repeated NotificationSubscription notify_subscribe = 30;
164
165 enum ExternalDataColumn
166 {
167 option allow_alias = true;
168
169 EXTERNAL_DATA_COLUMN_NAME = 0;
170 EXTERNAL_DATA_COLUMN_GROUP = 1;
171 EXTERNAL_DATA_COLUMN_TIME = 2;
172 EXTERNAL_DATA_COLUMN_VALUE = 3;
173 EXTERNAL_DATA_COLUMN_MAX = 3;
174 }
175
176 message DatabaseExternalDataColumnWidthPixels
177 {
178 optional int32 name_width = 1 [default = 180];
179 optional int32 group_width = 2 [default = 120];
180 optional int32 time_width = 3 [default = 120];
181 optional int32 value_width = 4 [default = 400];
182 }
183 optional DatabaseExternalDataColumnWidthPixels external_database_width = 40;
184
185 // optional string time_source_var = 40;
186
187 // optional string network_ack_var = 41 [default = "ACOMMS_NETWORK_ACK"];
188}
189
190message ProtobufScopeConfig
191{
192 enum Column
193 {
194 option allow_alias = true;
195
196 COLUMN_GROUP = 0;
197 COLUMN_TYPE = 1;
198 COLUMN_VALUE = 2;
199 COLUMN_TIME = 3;
200 COLUMN_MAX = 3;
201 }
202
203 message ColumnWidthPixels
204 {
205 optional int32 group_width = 1 [default = 150];
206 optional int32 type_width = 2 [default = 150];
207 optional int32 value_width = 3 [default = 400];
208 optional int32 time_width = 4 [default = 150];
209 }
210 optional ColumnWidthPixels column_width = 2;
211 optional Column sort_by_column = 3 [default = COLUMN_GROUP];
212 optional bool sort_ascending = 4 [default = true];
213 optional int32 scope_height = 5 [default = 500];
214 optional int32 history_height = 6 [default = 300];
215
216 optional string group_regex_filter_expression = 7 [default = ".*"];
217 optional string type_regex_filter_expression = 8 [default = ".*"];
218
219 message HistoryConfig
220 {
221 required string group = 1;
222 // optional bool show_plot = 2 [default = false];
223 // optional int32 plot_width = 3 [default = 800];
224 // optional int32 plot_height = 4 [default = 300];
225 }
226
227 repeated HistoryConfig history = 9;
228
229 optional int32 max_history_items = 10 [default = 100];
230
231 optional int32 max_message_size_bytes = 20 [default = 2048];
232
233}
234
235message NetworkAckSet
236{
237 optional uint64 newest_ack_time = 1;
238 repeated goby.acomms.protobuf.NetworkAck ack = 2;
239}