JaiaBot 1.10.0+14+g8dbf2589
JaiaBot micro-AUV software
 
Loading...
Searching...
No Matches
engineering.proto
Go to the documentation of this file.
1syntax = "proto2";
2
3import "dccl/option_extensions.proto";
4import "jaiabot/messages/bounds.proto";
5import "jaiabot/messages/echo.proto";
6import "jaiabot/messages/mission.proto";
7
8package jaiabot.protobuf;
9
10message PIDControl {
11 option (dccl.msg) = {
12 unit_system: "si"
13 };
14
15 message PIDSettings
16 {
17 optional double target = 1 [(dccl.field) = {
18 min: -360
19 max: 360
20 precision: 0
21 units { derived_dimensions: "plane_angle" system: "angle::degree" }
22 }];
23 optional double Kp = 2
24 [(dccl.field) = { min: 0 max: 100 precision: 8 }];
25 optional double Ki = 3
26 [(dccl.field) = { min: 0 max: 100 precision: 8 }];
27 optional double Kd = 4
28 [(dccl.field) = { min: 0 max: 100 precision: 8 }];
29 }
30
31 optional uint32 timeout = 3 [(dccl.field) = {
32 min: 0
33 max: 100
34 precision: 0
35 units { derived_dimensions: "time" }
36 }];
37
38 optional double throttle = 4
39 [(dccl.field) = { min: -100 max: 100 precision: 0 }];
40
41 optional PIDSettings speed = 5;
42
43 optional double rudder = 6
44 [(dccl.field) = { min: -100 max: 100 precision: 0 }];
45
46 optional PIDSettings heading = 7;
47
48 optional double port_elevator = 8
49 [(dccl.field) = { min: -100 max: 100 precision: 0 }];
50
51 optional double stbd_elevator = 9
52 [(dccl.field) = { min: -100 max: 100 precision: 0 }];
53
54 optional PIDSettings roll = 10;
55
56 optional PIDSettings pitch = 11;
57
58 optional PIDSettings depth = 12;
59
60 optional bool led_switch_on = 13;
61
62 optional PIDSettings heading_constant = 14;
63}
64
65enum BotStatusRate
66{
67 BotStatusRate_2_Hz = 0;
68 BotStatusRate_1_Hz = 1;
69 BotStatusRate_2_SECONDS = 2;
70 BotStatusRate_5_SECONDS = 3;
71 BotStatusRate_10_SECONDS = 4;
72 BotStatusRate_20_SECONDS = 5;
73 BotStatusRate_40_SECONDS = 6;
74 BotStatusRate_60_SECONDS = 7;
75 BotStatusRate_NO_RF = 8;
76}
77
78message GPSRequirements
79{
80 option (dccl.msg) = {
81 unit_system: "si"
82 };
83
84 optional double transit_hdop_req = 1 [(dccl.field) = { min: 1 max: 100 precision: 2 }];
85
86 optional double transit_pdop_req = 2 [(dccl.field) = { min: 1 max: 100 precision: 2 }];
87
88 optional double after_dive_hdop_req = 3 [(dccl.field) = { min: 1 max: 100 precision: 2 }];
89
90 optional double after_dive_pdop_req = 4 [(dccl.field) = { min: 1 max: 100 precision: 2 }];
91
92 optional uint32 transit_gps_fix_checks = 5 [(dccl.field) = { min: 1 max: 100 }];
93
94 optional uint32 transit_gps_degraded_fix_checks = 6 [(dccl.field) = { min: 1 max: 100 }];
95
96 optional uint32 after_dive_gps_fix_checks = 7 [(dccl.field) = { min: 1 max: 100 }];
97}
98
99message RFDisableOptions
100{
101 optional bool rf_disable = 1 [default = false];
102 optional int32 rf_disable_timeout_mins = 2 [default = 10, (dccl.field) = { min: 1 max: 255 }];
103}
104
105message IMUCalibration
106{
107 option (dccl.msg) = {
108 unit_system: "si"
109 };
110
111 optional bool run_cal = 1 [default = false];
112}
113
114message Echo
115{
116 option (dccl.msg) = {
117 unit_system: "si"
118 };
119
120 optional bool start_echo = 1 [default = false];
121 optional bool stop_echo = 2 [default = false];
122 optional EchoState echo_state = 3 [default = BOOTING];
123}
124
125message Engineering
126{
127 /*
128 Actual maximum size of message: 113 bytes / 904 bits
129 dccl.id head...........................8
130 user head..............................0
131 body.................................889
132 padding to full byte...................7
133 Allowed maximum size of message: 250 bytes / 2000 bits
134 */
135 option (dccl.msg) = {
136 id: 127
137 max_bytes: 250
138 codec_version: 4
139 unit_system: "si"
140 };
141
142 required uint32 bot_id = 1 [(dccl.field) = { min: 0 max: 255 }];
143 optional uint64 time = 2 [(dccl.field) = {
144 codec: "dccl.time2"
145 units { prefix: "micro" derived_dimensions: "time" }
146 }];
147
148 optional PIDControl pid_control = 3;
149
150 optional bool query_engineering_status = 4 [default = false];
151
152 optional bool query_bot_status = 5 [default = false];
153
154 optional bool engineering_messages_enabled = 13;
155
156 optional BotStatusRate bot_status_rate = 14 [default = BotStatusRate_1_Hz];
157
158 optional GPSRequirements gps_requirements = 15;
159
160 optional RFDisableOptions rf_disable_options = 16;
161
162 optional BottomDepthSafetyParams bottom_depth_safety_params = 17;
163
164 optional IMUCalibration imu_cal = 18;
165
166 optional Echo echo = 19;
167
168 // For User flagging of events
169 optional uint32 flag = 100 [(dccl.field) = { min: 0 max: 1024 }];
170
171 // For calibration/configuration of Arduino motor/rudder bounds
172 optional Bounds bounds = 101;
173
174}