Goby3 3.3.0
2025.07.10
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}