JaiaBot  1.19.0
JaiaBot micro-AUV software
config.proto
Go to the documentation of this file.
1 // Copyright 2021:
2 // JaiaRobotics LLC
3 // File authors:
4 // Toby Schneider <toby@gobysoft.org>
5 //
6 //
7 // This file is part of the JaiaBot Project Binaries
8 // ("The Jaia Binaries").
9 //
10 // The Jaia Binaries are free software: you can redistribute them and/or modify
11 // them under the terms of the GNU General Public License as published by
12 // the Free Software Foundation, either version 2 of the License, or
13 // (at your option) any later version.
14 //
15 // The Jaia Binaries are distributed in the hope that they will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 // GNU General Public License for more details.
19 //
20 // You should have received a copy of the GNU General Public License
21 // along with the Jaia Binaries. If not, see <http://www.gnu.org/licenses/>.
22 
23 syntax = "proto2";
24 
25 import "goby/middleware/protobuf/app_config.proto";
26 import "goby/zeromq/protobuf/interprocess_config.proto";
27 import "goby/middleware/protobuf/udp_config.proto";
28 import "dccl/option_extensions.proto";
29 import "jaiabot/messages/motor.proto";
30 
31 package jaiabot.config;
32 
33 message LinuxHardwareConfig
34 {
35  optional string data_disk_mountpoint = 10 [default = "/var/log"];
36 
37  optional float disk_low_available_percentage = 11 [default = 10];
38  optional float disk_critical_available_percentage = 12 [default = 2];
39 
40  optional float ram_low_available_percentage = 20 [default = 10];
41  optional float ram_critical_available_percentage = 21 [default = 1];
42 
43  // load per processor
44  optional float high_load_factor = 30 [default = 0.9];
45  optional float critical_load_factor = 31 [default = 5];
46 
47  optional string wireless_file = 40 [default = "/proc/net/wireless"];
48  optional string wlan_interface = 41 [default = "wlan0"];
49 }
50 
51 message NTPStatusConfig
52 {
53  option (dccl.msg) = {
54  unit_system: "si"
55  };
56 
57  optional float high_offset_threshold = 10 [
58  default = 10,
59  (dccl.field).units = { prefix: "milli" base_dimensions: "T" }
60  ];
61  optional float high_jitter_threshold = 11 [
62  default = 100,
63  (dccl.field).units = { prefix: "milli" base_dimensions: "T" }
64  ];
65 }
66 
67 message HelmIVPStatusConfig
68 {
69  option (dccl.msg) = {
70  unit_system: "si"
71  };
72  optional int32 time_out_helm_status = 10 [default = 20];
73 }
74 
75 message MotorStatusConfig
76 {
77  option (dccl.msg) = {
78  unit_system: "si"
79  };
80 
81  optional int32 motor_rpm_report_timeout_seconds = 10 [default = 40];
82  optional int32 motor_thermistor_report_timeout_seconds = 11 [default = 40];
83  optional jaiabot.protobuf.MotorHarnessType motor_harness_type = 12 [default = NONE];
84 }
85 
86 message Health
87 {
88  option (dccl.msg) = {
89  unit_system: "si"
90  };
91 
92  optional goby.middleware.protobuf.AppConfig app = 1;
93  optional goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2;
94  optional goby.middleware.protobuf.UDPPointToPointConfig udp_config = 3;
95 
96  optional bool auto_restart = 10 [default = true];
97  optional int32 auto_restart_timeout = 11
98  [default = 20, (dccl.field).units = { base_dimensions: "T" }];
99  optional int32 auto_restart_init_grace_period = 12
100  [default = 60, (dccl.field).units = { base_dimensions: "T" }];
101 
102  optional bool ignore_powerstate_changes = 20 [default = false];
103  optional bool check_helm_ivp_status = 21 [default = true];
104  optional bool is_in_sim = 23 [default = false];
105  optional bool test_hardware_in_sim = 24 [default = false];
106 
107  optional LinuxHardwareConfig linux_hw = 30;
108  optional NTPStatusConfig ntp = 40;
109  optional HelmIVPStatusConfig helm = 41;
110  optional MotorStatusConfig motor = 42;
111 }