Goby3 3.3.1
2025.11.25
Loading...
Searching...
No Matches
app_config.proto
Go to the documentation of this file.
1syntax = "proto2";
2import "goby/protobuf/option_extensions.proto";
3import "goby/util/protobuf/debug_logger.proto";
4import "dccl/option_extensions.proto";
5
6package goby.middleware.protobuf;
7
8message AppConfig
9{
10 option (dccl.msg).unit_system = "si";
11
12 optional string name = 1 [
13 (goby.field).example = "myapp_g",
14 (goby.field).description =
15 "default is 'binary': change this to run multiple instances",
16 (goby.field).cfg = { action: ADVANCED }
17 ];
18
19 optional string binary = 2 [(goby.field) = {
20 description: "compiled binary name; set by configurator."
21 cfg { action: NEVER }
22 }];
23
24 optional double loop_frequency = 3 [
25 (goby.field) = {
26 description: "Frequency to call loop() at. If not set, uses compile-time loop frequency. Zero or negative means loop() is never called."
27 },
28 (dccl.field).units = { base_dimensions: "T^-1" }
29 ];
30
31 optional goby.util.protobuf.GLogConfig glog_config = 10
32 [(goby.field).description =
33 "configure the Goby Logger (TTY terminal and file debugging "
34 "logger)"];
35
36 message SimulatorSettings
37 {
38 message Time
39 {
40 optional bool use_sim_time = 1 [
41 default = false,
42 (goby.field).description =
43 "Enable the use of a different clock for all calls to "
44 "goby::time::SystemClock::now<time::MicroTime>() and "
45 "related"
46 ];
47 optional int32 warp_factor = 2 [
48 default = 1,
49 (goby.field).description =
50 "Warp factor used to simulate faster-than-realtime "
51 "missions. For example warp_factor: 10 means run the clock "
52 "10x the real time."
53 ];
54 optional int64 reference_microtime = 3 [
55 (goby.field).description =
56 "Reference time to use when running with use_sim_time: "
57 "true (defaults to 00:00 UTC on January 1 of the current "
58 "year). The time difference between now and the reference "
59 "time is multiplied by the warp factor to calculate the "
60 "modified simulation time",
61 (goby.field).cfg = { action: ADVANCED },
62 (dccl.field).units = { prefix: "micro" base_dimensions: "T" }
63 ];
64 }
65 optional Time time = 1;
66 }
67 optional SimulatorSettings simulation = 20
68 [(goby.field).description = "Simulation related settings"];
69
70 message Geodesy
71 {
72 required double lat_origin = 1 [(dccl.field).units = {
73 system: "angle::degree"
74 derived_dimensions: "plane_angle"
75 }];
76 required double lon_origin = 2 [(dccl.field).units = {
77 system: "angle::degree"
78 derived_dimensions: "plane_angle"
79 }];
80 }
81 optional Geodesy geodesy = 30 [
82 (goby.field).description = "Geodesy related settings",
83 (goby.field).cfg = { action: ADVANCED }
84 ];
85
86 message Health
87 {
88 optional bool run_health_monitor_thread = 1 [default = true];
89 }
90 optional Health health_cfg = 40 [(goby.field).cfg = { action: ADVANCED }];
91
92 message Tool
93 {
94 repeated string extra_cli_param = 1;
95 }
96 optional Tool tool_cfg = 50 [(goby.field).cfg = { action: NEVER }];
97
98 optional bool debug_cfg = 100 [
99 default = false,
100 (goby.field).description =
101 "If true, rather than launch the application, simply write the "
102 "parsed configuration to stdout and exit",
103 (goby.field).cfg = { action: ADVANCED }
104 ];
105
106 message Intervehicle
107 {
108 optional string dccl_passphrase = 1 [
109 (goby.field).description =
110 "If set, encrypt and decrypt all DCCL intervehicle messages with this passphrase using AES encryption. This passphrase must match all intervehicle publishers and subscribers using any DCCL messages within this system, include gobyd/goby_intervehicle_portal."
111 ];
112 }
113 optional Intervehicle intervehicle_cfg = 150
114 [(goby.field).cfg = { action: ADVANCED }];
115}