JaiaBot  1.20.0
JaiaBot micro-AUV software
health.proto
Go to the documentation of this file.
1 syntax = "proto2";
2 
3 import "dccl/option_extensions.proto";
4 import "goby/middleware/protobuf/coroner.proto";
5 import "jaiabot/messages/option_extensions.proto";
6 
7 package jaiabot.protobuf;
8 
9 enum Error
10 {
11  // from jaiabot_fusion
12  ERROR__TOO_MANY_ERRORS_TO_REPORT_ALL = 0
13  [(jaia.ev).rest_api.presence = GUARANTEED];
14 
15  // Directly from systemd
16  ERROR__FAILED__UNKNOWN = 1 [(jaia.ev).rest_api.presence = GUARANTEED];
17  ERROR__FAILED__GOBYD = 2 [(jaia.ev).rest_api.presence = GUARANTEED];
18  ERROR__FAILED__GOBY_LIAISON = 3 [(jaia.ev).rest_api.presence = GUARANTEED];
19  ERROR__FAILED__GOBY_GPS = 4 [(jaia.ev).rest_api.presence = GUARANTEED];
20  ERROR__FAILED__GOBY_LOGGER = 5 [(jaia.ev).rest_api.presence = GUARANTEED];
21  ERROR__FAILED__GOBY_CORONER = 6 [(jaia.ev).rest_api.presence = GUARANTEED];
22  ERROR__FAILED__GOBY_MOOS_GATEWAY = 7
23  [(jaia.ev).rest_api.presence = GUARANTEED];
24  ERROR__FAILED__JAIABOT_HEALTH = 8
25  [(jaia.ev).rest_api.presence = GUARANTEED];
26  ERROR__FAILED__JAIABOT_METADATA = 9
27  [(jaia.ev).rest_api.presence = GUARANTEED];
28  ERROR__FAILED__JAIABOT_HUB_MANAGER = 10
29  [(jaia.ev).rest_api.presence = GUARANTEED];
30  ERROR__FAILED__JAIABOT_WEB_PORTAL = 11
31  [(jaia.ev).rest_api.presence = GUARANTEED];
32  ERROR__FAILED__JAIABOT_FUSION = 12
33  [(jaia.ev).rest_api.presence = GUARANTEED];
34  ERROR__FAILED__JAIABOT_MISSION_MANAGER = 13
35  [(jaia.ev).rest_api.presence = GUARANTEED];
36  ERROR__FAILED__JAIABOT_PID_CONTROL = 14
37  [(jaia.ev).rest_api.presence = GUARANTEED];
38  ERROR__FAILED__JAIABOT_BLUEROBOTICS_PRESSURE_SENSOR_DRIVER = 15
39  [(jaia.ev).rest_api.presence = GUARANTEED];
40  ERROR__FAILED__JAIABOT_ATLAS_SCIENTIFIC_EZO_EC_DRIVER = 16
41  [(jaia.ev).rest_api.presence = GUARANTEED];
42  ERROR__FAILED__JAIABOT_ADAFRUIT_BNO055_DRIVER = 17
43  [(jaia.ev).rest_api.presence = GUARANTEED];
44  ERROR__FAILED__JAIABOT_DRIVER_ARDUINO = 18
45  [(jaia.ev).rest_api.presence = GUARANTEED];
46  ERROR__FAILED__JAIABOT_ENGINEERING = 19
47  [(jaia.ev).rest_api.presence = GUARANTEED];
48  ERROR__FAILED__MOOS_MOOSDB = 20 [(jaia.ev).rest_api.presence = GUARANTEED];
49  ERROR__FAILED__MOOS_PHELMIVP = 21
50  [(jaia.ev).rest_api.presence = GUARANTEED];
51  ERROR__FAILED__MOOS_UPROCESSWATCH = 22
52  [(jaia.ev).rest_api.presence = GUARANTEED];
53  ERROR__FAILED__MOOS_PNODEREPORTER = 23
54  [(jaia.ev).rest_api.presence = GUARANTEED];
55  ERROR__FAILED__PYTHON_JAIABOT_WEB_APP = 24
56  [(jaia.ev).rest_api.presence = GUARANTEED];
57  ERROR__FAILED__PYTHON_JAIABOT_IMU = 25
58  [(jaia.ev).rest_api.presence = GUARANTEED];
59  ERROR__FAILED__PYTHON_JAIABOT_PRESSURE_SENSOR = 26
60  [(jaia.ev).rest_api.presence = GUARANTEED];
61  ERROR__FAILED__PYTHON_JAIABOT_AS_EZO_EC = 27
62  [(jaia.ev).rest_api.presence = GUARANTEED];
63  ERROR__FAILED__JAIABOT_LOG_CONVERTER = 28
64  [(jaia.ev).rest_api.presence = GUARANTEED];
65  ERROR__FAILED__JAIABOT_DATA_VISION = 29
66  [(jaia.ev).rest_api.presence = GUARANTEED];
67  ERROR__FAILED__JAIABOT_SIMULATOR = 30
68  [(jaia.ev).rest_api.presence = GUARANTEED];
69  ERROR__FAILED__MOOS_SIM_MOOSDB = 31
70  [(jaia.ev).rest_api.presence = GUARANTEED];
71  ERROR__FAILED__MOOS_SIM_USIMMARINE = 32
72  [(jaia.ev).rest_api.presence = GUARANTEED];
73  ERROR__FAILED__GOBY_INTERVEHICLE_PORTAL = 33
74  [(jaia.ev).rest_api.presence = GUARANTEED];
75  ERROR__FAILED__JAIABOT_ADAFRUIT_BNO085_DRIVER = 34
76  [(jaia.ev).rest_api.presence = GUARANTEED];
77  ERROR__FAILED__JAIABOT_ECHO_DRIVER = 35
78  [(jaia.ev).rest_api.presence = GUARANTEED];
79  ERROR__FAILED__PYTHON_JAIABOT_ECHO = 36
80  [(jaia.ev).rest_api.presence = GUARANTEED];
81  ERROR__FAILED__JAIABOT_TSYS01_TEMPERATURE_SENSOR_DRIVER = 37
82  [(jaia.ev).rest_api.presence = GUARANTEED];
83  ERROR__FAILED__PYTHON_JAIABOT_TSYS01_TEMPERATURE_SENSOR_DRIVER = 38
84  [(jaia.ev).rest_api.presence = GUARANTEED];
85  ERROR__FAILED__PYTHON_JAIABOT_MOTOR_LISTENER = 39
86  [(jaia.ev).rest_api.presence = GUARANTEED];
87  ERROR__FAILED__JAIABOT_SENSORS = 40
88  [(jaia.ev).rest_api.presence = GUARANTEED];
89  ERROR__NOT_RESPONDING__JAIABOT_DRIVER_CAMERA = 41
90  [(jaia.ev).rest_api.presence = GUARANTEED];
91 
92  // from goby_coroner
93  // must be "ERROR__NOT_RESPONDING__" + uppercase(application name)
94  ERROR__NOT_RESPONDING__UNKNOWN_APP = 100
95  [(jaia.ev).rest_api.presence = GUARANTEED];
96  ERROR__NOT_RESPONDING__GOBYD = 101
97  [(jaia.ev).rest_api.presence = GUARANTEED];
98  ERROR__NOT_RESPONDING__GOBY_LIAISON = 102
99  [(jaia.ev).rest_api.presence = GUARANTEED];
100  ERROR__NOT_RESPONDING__GOBY_GPS = 103
101  [(jaia.ev).rest_api.presence = GUARANTEED];
102  ERROR__NOT_RESPONDING__GOBY_LOGGER = 104
103  [(jaia.ev).rest_api.presence = GUARANTEED];
104  ERROR__NOT_RESPONDING__GOBY_CORONER = 105
105  [(jaia.ev).rest_api.presence = GUARANTEED];
106  ERROR__NOT_RESPONDING__JAIABOT_HEALTH = 106
107  [(jaia.ev).rest_api.presence = GUARANTEED];
108  ERROR__NOT_RESPONDING__JAIABOT_METADATA = 107
109  [(jaia.ev).rest_api.presence = GUARANTEED];
110  ERROR__NOT_RESPONDING__JAIABOT_HUB_MANAGER = 108
111  [(jaia.ev).rest_api.presence = GUARANTEED];
112  ERROR__NOT_RESPONDING__JAIABOT_WEB_PORTAL = 109
113  [(jaia.ev).rest_api.presence = GUARANTEED];
114  ERROR__NOT_RESPONDING__JAIABOT_FUSION = 110
115  [(jaia.ev).rest_api.presence = GUARANTEED];
116  ERROR__NOT_RESPONDING__GOBY_MOOS_GATEWAY = 111
117  [(jaia.ev).rest_api.presence = GUARANTEED];
118  ERROR__NOT_RESPONDING__JAIABOT_MISSION_MANAGER = 112
119  [(jaia.ev).rest_api.presence = GUARANTEED];
120  ERROR__NOT_RESPONDING__JAIABOT_PID_CONTROL = 113
121  [(jaia.ev).rest_api.presence = GUARANTEED];
122  ERROR__NOT_RESPONDING__JAIABOT_BLUEROBOTICS_PRESSURE_SENSOR_DRIVER = 114
123  [(jaia.ev).rest_api.presence = GUARANTEED];
124  ERROR__NOT_RESPONDING__JAIABOT_ATLAS_SCIENTIFIC_EZO_EC_DRIVER = 115
125  [(jaia.ev).rest_api.presence = GUARANTEED];
126  ERROR__NOT_RESPONDING__JAIABOT_ADAFRUIT_BNO055_DRIVER = 116
127  [(jaia.ev).rest_api.presence = GUARANTEED];
128  ERROR__NOT_RESPONDING__JAIABOT_DRIVER_ARDUINO = 117
129  [(jaia.ev).rest_api.presence = GUARANTEED];
130  ERROR__NOT_RESPONDING__JAIABOT_ENGINEERING = 118
131  [(jaia.ev).rest_api.presence = GUARANTEED];
132  ERROR__NOT_RESPONDING__JAIABOT_SINGLE_THREAD_PATTERN = 119
133  [(jaia.ev).rest_api.presence = GUARANTEED];
134  ERROR__NOT_RESPONDING__JAIABOT_MULTI_THREAD_PATTERN = 120
135  [(jaia.ev).rest_api.presence = GUARANTEED];
136  ERROR__NOT_RESPONDING__JAIABOT_SIMULATOR = 121
137  [(jaia.ev).rest_api.presence = GUARANTEED];
138  ERROR__NOT_RESPONDING__GOBY_INTERVEHICLE_PORTAL = 122
139  [(jaia.ev).rest_api.presence = GUARANTEED];
140  ERROR__NOT_RESPONDING__JAIABOT_ADAFRUIT_BNO085_DRIVER = 123
141  [(jaia.ev).rest_api.presence = GUARANTEED];
142  ERROR__NOT_RESPONDING__JAIABOT_ECHO_DRIVER = 124
143  [(jaia.ev).rest_api.presence = GUARANTEED];
144  ERROR__NOT_RESPONDING__JAIABOT_TSYS01_TEMPERATURE_SENSOR_DRIVER = 125
145  [(jaia.ev).rest_api.presence = GUARANTEED];
146 
147  // from jaiabot_fusion
148  ERROR__MISSING_DATA__GPS_FIX = 200
149  [(jaia.ev).rest_api.presence = GUARANTEED];
150  ERROR__MISSING_DATA__GPS_POSITION = 201
151  [(jaia.ev).rest_api.presence = GUARANTEED];
152  ERROR__MISSING_DATA__PRESSURE = 210
153  [(jaia.ev).rest_api.presence = GUARANTEED];
154  ERROR__MISSING_DATA__HEADING = 212
155  [(jaia.ev).rest_api.presence = GUARANTEED];
156  ERROR__MISSING_DATA__SPEED = 215 [(jaia.ev).rest_api.presence = GUARANTEED];
157  ERROR__MISSING_DATA__COURSE = 216
158  [(jaia.ev).rest_api.presence = GUARANTEED];
159  ERROR__MISSING_DATA__CALIBRATION_SYS = 217
160  [(jaia.ev).rest_api.presence = GUARANTEED];
161  ERROR__MISSING_DATA__CALIBRATION_GYRO = 218
162  [(jaia.ev).rest_api.presence = GUARANTEED];
163  ERROR__MISSING_DATA__CALIBRATION_ACCEL = 219
164  [(jaia.ev).rest_api.presence = GUARANTEED];
165  ERROR__MISSING_DATA__CALIBRATION_MAG = 220
166  [(jaia.ev).rest_api.presence = GUARANTEED];
167  ERROR__NOT_CALIBRATED_SYS = 221 [(jaia.ev).rest_api.presence = GUARANTEED];
168  ERROR__NOT_CALIBRATED_GYRO = 222 [(jaia.ev).rest_api.presence = GUARANTEED];
169  ERROR__NOT_CALIBRATED_ACCEL = 223
170  [(jaia.ev).rest_api.presence = GUARANTEED];
171  ERROR__NOT_CALIBRATED_MAG = 224 [(jaia.ev).rest_api.presence = GUARANTEED];
172  ERROR__NOT_CALIBRATED_IMU = 225 [(jaia.ev).rest_api.presence = GUARANTEED];
173 
174  // TODO: IMPLEMENT
175  // from xbee driver
176  ERROR__COMMS__NO_XBEE = 300;
177 
178  // from goby_moos_gateway
179  ERROR__MOOS__HELMIVP_STATE_NOT_DRIVE = 400
180  [(jaia.ev).rest_api.presence = GUARANTEED];
181  ERROR__MOOS__HELMIVP_NO_DESIRED_DATA = 401
182  [(jaia.ev).rest_api.presence = GUARANTEED];
183  ERROR__MOOS__NO_DATA = 402 [(jaia.ev).rest_api.presence = GUARANTEED];
184 
185  // from jaiabot_health
186  ERROR__SYSTEM__CANNOT_READ_MEMINFO = 500
187  [(jaia.ev).rest_api.presence = GUARANTEED];
188  ERROR__SYSTEM__RAM_SPACE_CRITICAL = 501
189  [(jaia.ev).rest_api.presence = GUARANTEED];
190 
191  ERROR__SYSTEM__CANNOT_READ_SYSINFO = 502
192  [(jaia.ev).rest_api.presence = GUARANTEED];
193  ERROR__SYSTEM__CPU_LOAD_FACTOR_CRITICAL = 503
194  [(jaia.ev).rest_api.presence = GUARANTEED];
195 
196  ERROR__SYSTEM__CANNOT_READ_DISK_USAGE = 504
197  [(jaia.ev).rest_api.presence = GUARANTEED];
198  ERROR__SYSTEM__ROOTFS_DISK_SPACE_CRITICAL = 505
199  [(jaia.ev).rest_api.presence = GUARANTEED];
200  ERROR__SYSTEM__DATA_DISK_SPACE_CRITICAL = 506
201  [(jaia.ev).rest_api.presence = GUARANTEED];
202 
203  ERROR__SYSTEM__NTP_PEERS_QUERY_FAILED = 510
204  [(jaia.ev).rest_api.presence = GUARANTEED];
205  ERROR__SYSTEM__NTP_STATUS_QUERY_FAILED = 511
206  [(jaia.ev).rest_api.presence = GUARANTEED];
207 
208  ERROR__VEHICLE__VERY_LOW_BATTERY = 600
209  [(jaia.ev).rest_api.presence = GUARANTEED];
210  ERROR__VEHICLE__CRITICALLY_LOW_BATTERY = 601
211  [(jaia.ev).rest_api.presence = GUARANTEED];
212  ERROR__VEHICLE__MISSING_DATA_BATTERY = 602
213  [(jaia.ev).rest_api.presence = GUARANTEED];
214 
215  // arduino driver
216  ERROR__VERSION__MISMATCH_ARDUINO = 700
217  [(jaia.ev).rest_api.presence = GUARANTEED];
218  ERROR__MISSING_DATA__ARDUINO_REPORT = 701
219  [(jaia.ev).rest_api.presence = GUARANTEED];
220  ERROR__VERSION__MISMATCH_INTERVEHICLE__UPGRADE_HUB = 702 [
221  (jaia.ev).rest_api.presence = GUARANTEED
222  ]; // INTERVEHICLE_API_VERSION_mismatch - hub version < bot_version
223  ERROR__VERSION__MISMATCH_INTERVEHICLE__UPGRADE_BOT = 703 [
224  (jaia.ev).rest_api.presence = GUARANTEED
225  ]; // INTERVEHICLE_API_VERSION_mismatch - hub_version > bot_version
226  ERROR__ARDUINO_CONNECTION_FAILED = 704
227  [(jaia.ev).rest_api.presence = GUARANTEED];
228 
229  // jaiabot_sensor
230  ERROR__INIT_FAILED__BLUE_ROBOTICS__BAR30 = 800
231  [(jaia.ev).rest_api.presence = GUARANTEED];
232  ERROR__MISSING_DATA__BLUEROBOTICS_BAR30_DATA = 801
233  [(jaia.ev).rest_api.presence = GUARANTEED];
234 }
235 
236 enum Warning
237 {
238  // from jaiabot_fusion
239  WARNING__TOO_MANY_WARNINGS_TO_REPORT_ALL = 0
240  [(jaia.ev).rest_api.presence = GUARANTEED];
241 
242  // from jaiabot_coroner
243  WARNING__NOT_RESPONDING__UNKNOWN_APP = 100
244  [(jaia.ev).rest_api.presence = GUARANTEED];
245  WARNING__NOT_RESPONDING__JAIABOT_ATLAS_SCIENTIFIC_EZO_EC_DRIVER = 101
246  [(jaia.ev).rest_api.presence = GUARANTEED];
247  WARNING__NOT_RESPONDING__JAIABOT_BLUEROBOTICS_PRESSURE_SENSOR_DRIVER = 102
248  [(jaia.ev).rest_api.presence = GUARANTEED];
249  WARNING__NOT_RESPONDING__JAIABOT_ADAFRUIT_BNO055_DRIVER = 103
250  [(jaia.ev).rest_api.presence = GUARANTEED];
251  WARNING__NOT_RESPONDING__JAIABOT_ADAFRUIT_BNO085_DRIVER = 104
252  [(jaia.ev).rest_api.presence = GUARANTEED];
253  WARNING__NOT_RESPONDING__JAIABOT_ECHO_DRIVER = 105
254  [(jaia.ev).rest_api.presence = GUARANTEED];
255  WARNING__NOT_RESPONDING__JAIABOT_TSYS01_TEMPERATURE_SENSOR_DRIVER = 106
256  [(jaia.ev).rest_api.presence = GUARANTEED];
257 
258  // from jaiabot_fusion
259  WARNING__MISSING_DATA__PITCH = 200
260  [(jaia.ev).rest_api.presence = GUARANTEED];
261  WARNING__MISSING_DATA__ROLL = 201
262  [(jaia.ev).rest_api.presence = GUARANTEED];
263  WARNING__MISSING_DATA__TEMPERATURE = 202
264  [(jaia.ev).rest_api.presence = GUARANTEED];
265  WARNING__MISSING_DATA__COURSE = 216
266  [(jaia.ev).rest_api.presence = GUARANTEED];
267  WARNING__NOT_CALIBRATED_SYS = 221
268  [(jaia.ev).rest_api.presence = GUARANTEED];
269  WARNING__IMU_ISSUE = 222 [(jaia.ev).rest_api.presence = GUARANTEED];
270 
271  // TODO: IMPLEMENT
272  WARNING__TEMPERATURE__ARDUINO_TOO_HIGH = 210
273  [(jaia.ev).rest_api.presence = GUARANTEED];
274  WARNING__TEMPERATURE__LINUX_TOO_HIGH = 211
275  [(jaia.ev).rest_api.presence = GUARANTEED];
276 
277  // TODO: IMPLEMENT
278  // from xbee driver
279  WARNING__COMMS_LOW_SIGNAL_STRENGTH = 300
280  [(jaia.ev).rest_api.presence = GUARANTEED];
281 
282  // from jaiabot_health
283  WARNING__VEHICLE__LOW_BATTERY = 400
284  [(jaia.ev).rest_api.presence = GUARANTEED];
285 
286  WARNING__SYSTEM__NTP_NOT_SYNCHRONIZED = 500
287  [(jaia.ev).rest_api.presence = GUARANTEED];
288  WARNING__SYSTEM__NTP_OFFSET_HIGH = 501
289  [(jaia.ev).rest_api.presence = GUARANTEED];
290  WARNING__SYSTEM__NTP_JITTER_HIGH = 502
291  [(jaia.ev).rest_api.presence = GUARANTEED];
292  WARNING__SYSTEM__RAM_SPACE_LOW = 503
293  [(jaia.ev).rest_api.presence = GUARANTEED];
294  WARNING__SYSTEM__CPU_LOAD_FACTOR_HIGH = 504
295  [(jaia.ev).rest_api.presence = GUARANTEED];
296  WARNING__SYSTEM__ROOTFS_DISK_SPACE_LOW = 505
297  [(jaia.ev).rest_api.presence = GUARANTEED];
298  WARNING__SYSTEM__DATA_DISK_SPACE_LOW = 506
299  [(jaia.ev).rest_api.presence = GUARANTEED];
300 
301  // from Motor Status Thread
302  WARNING__NOT_RESPONDING__JAIABOT_RPM_LISTENER = 600
303  [(jaia.ev).rest_api.presence = GUARANTEED];
304  WARNING__NOT_RESPONDING__JAIABOT_ARDUINO_MOTOR_TEMP = 601
305  [(jaia.ev).rest_api.presence = GUARANTEED];
306 
307  // from jaiabot_mission_manager
308  WARNING__MISSION__INFEASIBLE_MISSION__TRANSIT_MUST_HAVE_A_GOAL = 700
309  [(jaia.ev).rest_api.presence = GUARANTEED];
310  WARNING__MISSION__INFEASIBLE_MISSION__TRANSIT_CANNOT_RECOVER_AT_FINAL_GOAL_WITHOUT_A_GOAL =
311  701 [(jaia.ev).rest_api.presence = GUARANTEED];
312  WARNING__MISSION__INFEASIBLE_MISSION__MUST_HAVE_RECOVERY_LOCATION_IF_NOT_RECOVERING_AT_FINAL_GOAL =
313  702 [(jaia.ev).rest_api.presence = GUARANTEED];
314  WARNING__MISSION__INFEASIBLE_MISSION__MINIMUM_BOTTOM_DEPTH_REACHED = 703
315  [(jaia.ev).rest_api.presence = GUARANTEED];
316  WARNING__MISSION__INFEASIBLE_MISSION__GOAL_DESIRED_DEPTH_EXCEEDED_MAX = 704
317  [(jaia.ev).rest_api.presence = GUARANTEED];
318  WARNING__VEHICLE__NO_FORWARD_PROGRESS = 705
319  [(jaia.ev).rest_api.presence = GUARANTEED];
320 
321  WARNING__MISSION__DATA_OFFLOAD_FAILED = 720
322  [(jaia.ev).rest_api.presence = GUARANTEED];
323  WARNING__MISSION__DATA__GPS_FIX_DEGRADED = 721
324  [(jaia.ev).rest_api.presence = GUARANTEED];
325  WARNING__MISSION__DATA_PRE_OFFLOAD_FAILED = 722
326  [(jaia.ev).rest_api.presence = GUARANTEED];
327  WARNING__MISSION__DATA_POST_OFFLOAD_FAILED = 723
328  [(jaia.ev).rest_api.presence = GUARANTEED];
329 
330  // from jaiabot_sensor
331 
332 
333  // from jaiabot_sensors
334  WARNING__INIT_FAILED__ATLAS_SCIENTIFIC__OEM_DO = 800
335  [(jaia.ev).rest_api.presence = GUARANTEED];
336  WARNING__INIT_FAILED__ATLAS_SCIENTIFIC__OEM_EC = 801
337  [(jaia.ev).rest_api.presence = GUARANTEED];
338  WARNING__INIT_FAILED__ATLAS_SCIENTIFIC__OEM_PH = 802
339  [(jaia.ev).rest_api.presence = GUARANTEED];
340  WARNING__INIT_FAILED__TURNER__C_FLUOR = 803
341  [(jaia.ev).rest_api.presence = GUARANTEED];
342 
343  WARNING__MISSING_DATA__ATLAS_OEM_EC_DATA = 804
344  [(jaia.ev).rest_api.presence = GUARANTEED];
345  WARNING__MISSING_DATA__ATLAS_OEM_PH_DATA = 805
346  [(jaia.ev).rest_api.presence = GUARANTEED];
347  WARNING__MISSING_DATA__ATLAS_OEM_DO_DATA = 806
348  [(jaia.ev).rest_api.presence = GUARANTEED];
349  WARNING__MISSING_DATA__TURNER_C_FLUOR_DATA = 807
350  [(jaia.ev).rest_api.presence = GUARANTEED];
351 }
352 
353 message LinuxHardwareStatus
354 {
355  option (dccl.msg) = {
356  unit_system: "si"
357  };
358 
359  message Processor
360  {
361  // from sysinfo
362  message LoadAverages
363  {
364  required float one_min = 1;
365  required float five_min = 2;
366  required float fifteen_min = 3;
367  }
368  optional LoadAverages loads = 10;
369 
370  optional int32 num_processes = 15;
371 
372  // from nproc
373  optional int32 num_processors = 20;
374  }
375 
376  message Information
377  {
378  required uint64 total = 1 [(dccl.field) = {
379  units { prefix: "kilo" unit: "information::byte" }
380  }];
381  required uint64 available = 2 [(dccl.field) = {
382  units { prefix: "kilo" unit: "information::byte" }
383  }];
384  required float use_percent = 3;
385  }
386 
387  message Memory
388  {
389  // from sysinfo
390  required Information ram = 1;
391  required Information swap = 2;
392  }
393 
394  message Disk
395  {
396  // from boost filesystem
397  optional Information rootfs = 1;
398  optional Information data = 2;
399  }
400 
401  message WiFi
402  {
403  required bool is_connected = 1;
404  optional uint32 link_quality = 2;
405  optional uint32 link_quality_percentage = 3;
406  optional int32 signal_level = 4;
407  optional int32 noise_level = 5;
408  }
409 
410  optional int32 uptime = 10
411  [(dccl.field) = { units { base_dimensions: "T" } }];
412  optional Processor processor = 20;
413  optional Memory memory = 30;
414  optional Disk disk = 40;
415  optional WiFi wifi = 50;
416 }
417 
418 message NTPStatus
419 {
420  option (dccl.msg) = {
421  unit_system: "si"
422  };
423  // from ntpq -c rv 0
424  enum SyncSource
425  {
426  SYNC_UNKNOWN = -1;
427  SYNC_UNSPECIFIED = 0;
428  SYNC_PPS = 1;
429  SYNC_LF_RADIO = 2;
430  SYNC_HF_RADIO = 3;
431  SYNC_UHF_RADIO = 4;
432  SYNC_LOCAL = 5;
433  SYNC_NTP = 6;
434  SYNC_OTHER = 7;
435  SYNC_WRISTWATCH = 8;
436  SYNC_TELEPHONE = 9;
437  }
438 
439  optional SyncSource sync_source = 10 [default = SYNC_UNKNOWN];
440 
441  enum LeapIndicator
442  {
443  LEAP_UNKNOWN = -1;
444  LEAP_NONE = 0x00;
445  LEAP_LAST_MINUTE_HAS_61_SECONDS = 0x01;
446  LEAP_LAST_MINUTE_HAS_59_SECONDS = 0x02;
447  LEAP_CLOCK_NOT_SYNCHRONIZED = 0x03;
448  }
449  optional LeapIndicator leap_indicator = 11 [default = LEAP_UNKNOWN];
450  optional int32 system_event_counter = 12 [default = 0];
451  enum NTPSystemEvent
452  {
453  NTP_SYSTEM_EVENT_UNKNOWN = -1;
454  NTP_SYSTEM_EVENT_UNSPECIFIED = 0x0;
455  NTP_SYSTEM_FREQ_NOT_SET = 0x1;
456  NTP_SYSTEM_FREQ_SET = 0x2;
457  NTP_SYSTEM_SPIKE_DETECT = 0x3;
458  NTP_SYSTEM_FREQ_MODE = 0x4;
459  NTP_SYSTEM_CLOCK_SYNC = 0x5;
460  NTP_SYSTEM_RESTART = 0x6;
461  NTP_SYSTEM_PANIC_STOP = 0x7;
462  NTP_SYSTEM_NO_SYSTEM_PEER = 0x8;
463  NTP_SYSTEM_LEAP_ARMED = 0x9;
464  NTP_SYSTEM_LEAP_DISARMED = 0xa;
465  NTP_SYSTEM_LEAP_EVENT = 0xb;
466  NTP_SYSTEM_CLOCK_STEP = 0xc;
467  NTP_SYSTEM_KERNEL_INFO = 0xd;
468  NTP_SYSTEM_LEAPSECOND_VALUES_UPDATE_FROM_FILE = 0xe;
469  NTP_SYSTEM_STALE_LEAPSECOND_VALUES = 0xf;
470  }
471  optional NTPSystemEvent last_system_event = 13
472  [default = NTP_SYSTEM_EVENT_UNKNOWN];
473 
474  // from ntpq -p
475  message NTPPeer
476  {
477  enum TallyCode
478  {
479  PEER_CODE_UNKNOWN = -1;
480  PEER_NOT_VALID = 0x20; // ' '
481  PEER_DISCARDED_BY_INTERSECTION = 0x78; // 'x'
482  PEER_DISCARDED_BY_TABLE_OVERFLOW = 0x2E; // '.'
483  PEER_DISCARDED_BY_CLUSTER_ALGORITHM = 0x2D; // '-'
484  PEER_INCLUDED_IN_COMBINE = 0x2B; // '+'
485  PEER_ALTERNATIVE_BACKUP = 0x23; // '#'
486  PEER_SYSTEM_SYNC_SOURCE = 0x2A; // '*'
487  PEER_PPS_SYNC = 0x6F; // 'o'
488  }
489 
490  required TallyCode tally_code = 1 [default = PEER_CODE_UNKNOWN];
491  required string remote = 2;
492  required string refid = 3;
493  optional int32 stratum = 4 [default = 16];
494  optional int32 when = 5
495  [default = -1, (dccl.field) = { units { base_dimensions: "T" } }];
496  optional int32 poll = 6
497  [default = -1, (dccl.field) = { units { base_dimensions: "T" } }];
498  // bitmask
499  optional int32 reach = 7 [default = 0];
500  optional float delay = 8 [
501  default = nan,
502  (dccl.field) = { units { prefix: "milli" base_dimensions: "T" } }
503  ];
504  optional float offset = 9 [
505  default = nan,
506  (dccl.field) = { units { prefix: "milli" base_dimensions: "T" } }
507  ];
508  optional float jitter = 10 [
509  default = nan,
510  (dccl.field) = { units { prefix: "milli" base_dimensions: "T" } }
511  ];
512  }
513  optional NTPPeer system_sync_peer = 20;
514  repeated NTPPeer peer = 21;
515 }
516 
517 message HelmIVPStatus
518 {
519  option (dccl.msg) = {
520  unit_system: "si"
521  };
522  optional string helm_ivp_state = 1 [default = "PARK"];
523  optional bool helm_ivp_desired_speed = 2 [default = false];
524  optional bool helm_ivp_desired_heading = 3 [default = false];
525  optional bool helm_ivp_desired_depth = 4 [default = false];
526  optional bool helm_ivp_data = 5 [default = false];
527 }
528 
529 message ThreadHealth
530 {
531  repeated Error error = 1;
532  repeated Warning warning = 2;
533 }
534 
535 extend goby.middleware.protobuf.ThreadHealth
536 {
537  optional ThreadHealth jaiabot_thread = 1000;
538 }
539 
540 message VehicleHealth {}
541 
542 extend goby.middleware.protobuf.VehicleHealth
543 {
544  optional VehicleHealth jaiabot_vehicle = 1000;
545 }
546 
547 message SystemdStartReport
548 {
549  required Error clear_error =
550  1; // the corresponding ERROR__FAILED__* to clear (if exists)
551 }
552 
553 message SystemdStopReport
554 {
555  enum ServiceResult
556  {
557  SERVICE_RESULT_UNKNOWN = 0;
558  SERVICE_RESULT_SUCCESS = 1;
559  SERVICE_RESULT_PROTOCOL = 2;
560  SERVICE_RESULT_TIMEOUT = 3;
561  SERVICE_RESULT_EXIT_CODE = 4;
562  SERVICE_RESULT_SIGNAL = 5;
563  SERVICE_RESULT_CORE_DUMP = 6;
564  SERVICE_RESULT_WATCHDOG = 7;
565  SERVICE_RESULT_START_LIMIT_HIT = 8;
566  SERVICE_RESULT_RESOURCES = 9;
567  }
568  required ServiceResult result = 1;
569  required Error error = 2; // the corresponding ERROR__FAILED__*
570  optional string journal_dump_file =
571  3; // if failed, the journal snippet from last boot was written here
572 }
573 
574 message SystemdReportAck
575 {
576  required Error error_ack =
577  1; // which app this relates to, by its corresponding error value
578 }