Goby3  3.1.5a
2024.05.23
liaison_config.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 
3 import "goby/protobuf/option_extensions.proto";
4 import "goby/middleware/protobuf/app_config.proto";
5 import "goby/middleware/protobuf/layer.proto";
6 import "goby/zeromq/protobuf/interprocess_config.proto";
7 import "goby/acomms/protobuf/network_ack.proto";
8 
9 package goby.apps.zeromq.protobuf;
10 
11 message 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 
74 message 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 
190 message 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 
235 message NetworkAckSet
236 {
237  optional uint64 newest_ack_time = 1;
238  repeated goby.acomms.protobuf.NetworkAck ack = 2;
239 }