JaiaBot  1.12.0+18+g85da5f82
JaiaBot micro-AUV software
engineering.pb.h
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: jaiabot/messages/engineering.proto
3 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_jaiabot_2fmessages_2fengineering_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_jaiabot_2fmessages_2fengineering_2eproto
6 
7 #include <limits>
8 #include <string>
9 
10 #include <google/protobuf/port_def.inc>
11 #if PROTOBUF_VERSION < 3012000
12 #error This file was generated by a newer version of protoc which is
13 #error incompatible with your Protocol Buffer headers. Please update
14 #error your headers.
15 #endif
16 #if 3012004 < PROTOBUF_MIN_PROTOC_VERSION
17 #error This file was generated by an older version of protoc which is
18 #error incompatible with your Protocol Buffer headers. Please
19 #error regenerate this file with a newer version of protoc.
20 #endif
21 
22 #include <google/protobuf/port_undef.inc>
23 #include <google/protobuf/io/coded_stream.h>
24 #include <google/protobuf/arena.h>
25 #include <google/protobuf/arenastring.h>
26 #include <google/protobuf/generated_message_table_driven.h>
27 #include <google/protobuf/generated_message_util.h>
28 #include <google/protobuf/inlined_string_field.h>
29 #include <google/protobuf/metadata_lite.h>
30 #include <google/protobuf/generated_message_reflection.h>
31 #include <google/protobuf/message.h>
32 #include <google/protobuf/repeated_field.h> // IWYU pragma: export
33 #include <google/protobuf/extension_set.h> // IWYU pragma: export
34 #include <google/protobuf/generated_enum_reflection.h>
35 #include <google/protobuf/unknown_field_set.h>
36 #include "dccl/option_extensions.pb.h"
40 #include <boost/units/quantity.hpp>
41 #include <boost/units/absolute.hpp>
42 #include <boost/units/dimensionless_type.hpp>
43 #include <boost/units/make_scaled_unit.hpp>
44 
45 #include <boost/units/systems/angle/degrees.hpp>
46 
47 #include <boost/units/systems/si.hpp>
48 // @@protoc_insertion_point(includes)
49 #include <google/protobuf/port_def.inc>
50 #define PROTOBUF_INTERNAL_EXPORT_jaiabot_2fmessages_2fengineering_2eproto
51 PROTOBUF_NAMESPACE_OPEN
52 namespace internal {
53 class AnyMetadata;
54 } // namespace internal
55 PROTOBUF_NAMESPACE_CLOSE
56 
57 // Internal implementation detail -- do not use these members.
59  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
60  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
61  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
62  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
63  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[7]
64  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
65  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
66  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
67  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
68 };
69 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_jaiabot_2fmessages_2fengineering_2eproto;
70 namespace jaiabot {
71 namespace protobuf {
72 class Echo;
73 class EchoDefaultTypeInternal;
74 extern EchoDefaultTypeInternal _Echo_default_instance_;
75 class Engineering;
76 class EngineeringDefaultTypeInternal;
77 extern EngineeringDefaultTypeInternal _Engineering_default_instance_;
78 class GPSRequirements;
79 class GPSRequirementsDefaultTypeInternal;
80 extern GPSRequirementsDefaultTypeInternal _GPSRequirements_default_instance_;
81 class IMUCalibration;
82 class IMUCalibrationDefaultTypeInternal;
83 extern IMUCalibrationDefaultTypeInternal _IMUCalibration_default_instance_;
84 class PIDControl;
85 class PIDControlDefaultTypeInternal;
86 extern PIDControlDefaultTypeInternal _PIDControl_default_instance_;
87 class PIDControl_PIDSettings;
88 class PIDControl_PIDSettingsDefaultTypeInternal;
89 extern PIDControl_PIDSettingsDefaultTypeInternal _PIDControl_PIDSettings_default_instance_;
90 class RFDisableOptions;
91 class RFDisableOptionsDefaultTypeInternal;
92 extern RFDisableOptionsDefaultTypeInternal _RFDisableOptions_default_instance_;
93 } // namespace protobuf
94 } // namespace jaiabot
95 PROTOBUF_NAMESPACE_OPEN
96 template<> ::jaiabot::protobuf::Echo* Arena::CreateMaybeMessage<::jaiabot::protobuf::Echo>(Arena*);
97 template<> ::jaiabot::protobuf::Engineering* Arena::CreateMaybeMessage<::jaiabot::protobuf::Engineering>(Arena*);
98 template<> ::jaiabot::protobuf::GPSRequirements* Arena::CreateMaybeMessage<::jaiabot::protobuf::GPSRequirements>(Arena*);
99 template<> ::jaiabot::protobuf::IMUCalibration* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUCalibration>(Arena*);
100 template<> ::jaiabot::protobuf::PIDControl* Arena::CreateMaybeMessage<::jaiabot::protobuf::PIDControl>(Arena*);
101 template<> ::jaiabot::protobuf::PIDControl_PIDSettings* Arena::CreateMaybeMessage<::jaiabot::protobuf::PIDControl_PIDSettings>(Arena*);
102 template<> ::jaiabot::protobuf::RFDisableOptions* Arena::CreateMaybeMessage<::jaiabot::protobuf::RFDisableOptions>(Arena*);
103 PROTOBUF_NAMESPACE_CLOSE
104 namespace jaiabot {
105 namespace protobuf {
106 
107 enum BotStatusRate : int {
117 };
118 bool BotStatusRate_IsValid(int value);
122 
123 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* BotStatusRate_descriptor();
124 template<typename T>
125 inline const std::string& BotStatusRate_Name(T enum_t_value) {
126  static_assert(::std::is_same<T, BotStatusRate>::value ||
127  ::std::is_integral<T>::value,
128  "Incorrect type passed to function BotStatusRate_Name.");
129  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
130  BotStatusRate_descriptor(), enum_t_value);
131 }
133  const std::string& name, BotStatusRate* value) {
134  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<BotStatusRate>(
135  BotStatusRate_descriptor(), name, value);
136 }
137 // ===================================================================
138 
139 class PIDControl_PIDSettings PROTOBUF_FINAL :
140  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.PIDControl.PIDSettings) */ {
141  public:
142  inline PIDControl_PIDSettings() : PIDControl_PIDSettings(nullptr) {};
144 
145  PIDControl_PIDSettings(const PIDControl_PIDSettings& from);
146  PIDControl_PIDSettings(PIDControl_PIDSettings&& from) noexcept
147  : PIDControl_PIDSettings() {
148  *this = ::std::move(from);
149  }
150 
151  inline PIDControl_PIDSettings& operator=(const PIDControl_PIDSettings& from) {
152  CopyFrom(from);
153  return *this;
154  }
155  inline PIDControl_PIDSettings& operator=(PIDControl_PIDSettings&& from) noexcept {
156  if (GetArena() == from.GetArena()) {
157  if (this != &from) InternalSwap(&from);
158  } else {
159  CopyFrom(from);
160  }
161  return *this;
162  }
163 
164  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
165  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
166  }
167  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
168  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
169  }
170 
171  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
172  return GetDescriptor();
173  }
174  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
175  return GetMetadataStatic().descriptor;
176  }
177  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
178  return GetMetadataStatic().reflection;
179  }
180  static const PIDControl_PIDSettings& default_instance();
181 
182  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
183  static inline const PIDControl_PIDSettings* internal_default_instance() {
184  return reinterpret_cast<const PIDControl_PIDSettings*>(
186  }
187  static constexpr int kIndexInFileMessages =
188  0;
189 
190  friend void swap(PIDControl_PIDSettings& a, PIDControl_PIDSettings& b) {
191  a.Swap(&b);
192  }
193  inline void Swap(PIDControl_PIDSettings* other) {
194  if (other == this) return;
195  if (GetArena() == other->GetArena()) {
196  InternalSwap(other);
197  } else {
198  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
199  }
200  }
201  void UnsafeArenaSwap(PIDControl_PIDSettings* other) {
202  if (other == this) return;
203  GOOGLE_DCHECK(GetArena() == other->GetArena());
204  InternalSwap(other);
205  }
206 
207  // implements Message ----------------------------------------------
208 
209  inline PIDControl_PIDSettings* New() const final {
210  return CreateMaybeMessage<PIDControl_PIDSettings>(nullptr);
211  }
212 
213  PIDControl_PIDSettings* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
214  return CreateMaybeMessage<PIDControl_PIDSettings>(arena);
215  }
216  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
217  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
218  void CopyFrom(const PIDControl_PIDSettings& from);
219  void MergeFrom(const PIDControl_PIDSettings& from);
220  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
221  bool IsInitialized() const final;
222 
223  size_t ByteSizeLong() const final;
224  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
225  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
226  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
227  int GetCachedSize() const final { return _cached_size_.Get(); }
228 
229  private:
230  inline void SharedCtor();
231  inline void SharedDtor();
232  void SetCachedSize(int size) const final;
233  void InternalSwap(PIDControl_PIDSettings* other);
234  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
235  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
236  return "jaiabot.protobuf.PIDControl.PIDSettings";
237  }
238  protected:
239  explicit PIDControl_PIDSettings(::PROTOBUF_NAMESPACE_ID::Arena* arena);
240  private:
241  static void ArenaDtor(void* object);
242  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
243  public:
244 
245  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
246  private:
247  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
248  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto);
249  return ::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto.file_level_metadata[kIndexInFileMessages];
250  }
251 
252  public:
253 
254  // nested types ----------------------------------------------------
255 
256  // accessors -------------------------------------------------------
257 
258  enum : int {
259  kTargetFieldNumber = 1,
260  kKpFieldNumber = 2,
261  kKiFieldNumber = 3,
262  kKdFieldNumber = 4,
263  };
264  // optional double target = 1 [(.dccl.field) = {
265  bool has_target() const;
266  private:
267  bool _internal_has_target() const;
268  public:
269  void clear_target();
270  double target() const;
271  void set_target(double value);
272  private:
273  double _internal_target() const;
274  void _internal_set_target(double value);
275  public:
276 
277  // optional double Kp = 2 [(.dccl.field) = {
278  bool has_kp() const;
279  private:
280  bool _internal_has_kp() const;
281  public:
282  void clear_kp();
283  double kp() const;
284  void set_kp(double value);
285  private:
286  double _internal_kp() const;
287  void _internal_set_kp(double value);
288  public:
289 
290  // optional double Ki = 3 [(.dccl.field) = {
291  bool has_ki() const;
292  private:
293  bool _internal_has_ki() const;
294  public:
295  void clear_ki();
296  double ki() const;
297  void set_ki(double value);
298  private:
299  double _internal_ki() const;
300  void _internal_set_ki(double value);
301  public:
302 
303  // optional double Kd = 4 [(.dccl.field) = {
304  bool has_kd() const;
305  private:
306  bool _internal_has_kd() const;
307  public:
308  void clear_kd();
309  double kd() const;
310  void set_kd(double value);
311  private:
312  double _internal_kd() const;
313  void _internal_set_kd(double value);
314  public:
315 
316  typedef boost::units::plane_angle_dimension target_dimension;
317 
318  typedef boost::units::unit<target_dimension,boost::units::degree::system> target_unit;
319 
320  template<typename Quantity >
321  void set_target_with_units(Quantity value_w_units)
322  { set_target(boost::units::quantity<target_unit,double >(value_w_units).value() ); };
323 
324  template<typename Quantity >
325  Quantity target_with_units() const
326  { return Quantity(target() * target_unit()); };
327 
328  boost::units::quantity< target_unit,double > target_with_units() const
329  { return target_with_units<boost::units::quantity< target_unit,double > >(); };
330 
331  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.PIDControl.PIDSettings)
332  private:
333  class _Internal;
334 
335  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
336  typedef void InternalArenaConstructable_;
337  typedef void DestructorSkippable_;
338  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
339  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
340  double target_;
341  double kp_;
342  double ki_;
343  double kd_;
344  friend struct ::TableStruct_jaiabot_2fmessages_2fengineering_2eproto;
345 };
346 // -------------------------------------------------------------------
347 
348 class PIDControl PROTOBUF_FINAL :
349  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.PIDControl) */ {
350  public:
351  inline PIDControl() : PIDControl(nullptr) {};
352  virtual ~PIDControl();
353 
354  PIDControl(const PIDControl& from);
355  PIDControl(PIDControl&& from) noexcept
356  : PIDControl() {
357  *this = ::std::move(from);
358  }
359 
360  inline PIDControl& operator=(const PIDControl& from) {
361  CopyFrom(from);
362  return *this;
363  }
364  inline PIDControl& operator=(PIDControl&& from) noexcept {
365  if (GetArena() == from.GetArena()) {
366  if (this != &from) InternalSwap(&from);
367  } else {
368  CopyFrom(from);
369  }
370  return *this;
371  }
372 
373  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
374  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
375  }
376  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
377  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
378  }
379 
380  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
381  return GetDescriptor();
382  }
383  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
384  return GetMetadataStatic().descriptor;
385  }
386  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
387  return GetMetadataStatic().reflection;
388  }
389  static const PIDControl& default_instance();
390 
391  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
392  static inline const PIDControl* internal_default_instance() {
393  return reinterpret_cast<const PIDControl*>(
395  }
396  static constexpr int kIndexInFileMessages =
397  1;
398 
399  friend void swap(PIDControl& a, PIDControl& b) {
400  a.Swap(&b);
401  }
402  inline void Swap(PIDControl* other) {
403  if (other == this) return;
404  if (GetArena() == other->GetArena()) {
405  InternalSwap(other);
406  } else {
407  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
408  }
409  }
410  void UnsafeArenaSwap(PIDControl* other) {
411  if (other == this) return;
412  GOOGLE_DCHECK(GetArena() == other->GetArena());
413  InternalSwap(other);
414  }
415 
416  // implements Message ----------------------------------------------
417 
418  inline PIDControl* New() const final {
419  return CreateMaybeMessage<PIDControl>(nullptr);
420  }
421 
422  PIDControl* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
423  return CreateMaybeMessage<PIDControl>(arena);
424  }
425  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
426  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
427  void CopyFrom(const PIDControl& from);
428  void MergeFrom(const PIDControl& from);
429  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
430  bool IsInitialized() const final;
431 
432  size_t ByteSizeLong() const final;
433  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
434  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
435  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
436  int GetCachedSize() const final { return _cached_size_.Get(); }
437 
438  private:
439  inline void SharedCtor();
440  inline void SharedDtor();
441  void SetCachedSize(int size) const final;
442  void InternalSwap(PIDControl* other);
443  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
444  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
445  return "jaiabot.protobuf.PIDControl";
446  }
447  protected:
448  explicit PIDControl(::PROTOBUF_NAMESPACE_ID::Arena* arena);
449  private:
450  static void ArenaDtor(void* object);
451  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
452  public:
453 
454  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
455  private:
456  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
457  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto);
458  return ::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto.file_level_metadata[kIndexInFileMessages];
459  }
460 
461  public:
462 
463  // nested types ----------------------------------------------------
464 
465  typedef PIDControl_PIDSettings PIDSettings;
466 
467  // accessors -------------------------------------------------------
468 
469  enum : int {
470  kSpeedFieldNumber = 5,
471  kHeadingFieldNumber = 7,
472  kRollFieldNumber = 10,
473  kPitchFieldNumber = 11,
474  kDepthFieldNumber = 12,
475  kHeadingConstantFieldNumber = 14,
476  kThrottleFieldNumber = 4,
477  kRudderFieldNumber = 6,
478  kPortElevatorFieldNumber = 8,
479  kTimeoutFieldNumber = 3,
480  kLedSwitchOnFieldNumber = 13,
481  kStbdElevatorFieldNumber = 9,
482  };
483  // optional .jaiabot.protobuf.PIDControl.PIDSettings speed = 5;
484  bool has_speed() const;
485  private:
486  bool _internal_has_speed() const;
487  public:
488  void clear_speed();
489  const ::jaiabot::protobuf::PIDControl_PIDSettings& speed() const;
490  ::jaiabot::protobuf::PIDControl_PIDSettings* release_speed();
491  ::jaiabot::protobuf::PIDControl_PIDSettings* mutable_speed();
492  void set_allocated_speed(::jaiabot::protobuf::PIDControl_PIDSettings* speed);
493  private:
494  const ::jaiabot::protobuf::PIDControl_PIDSettings& _internal_speed() const;
495  ::jaiabot::protobuf::PIDControl_PIDSettings* _internal_mutable_speed();
496  public:
498  ::jaiabot::protobuf::PIDControl_PIDSettings* speed);
499  ::jaiabot::protobuf::PIDControl_PIDSettings* unsafe_arena_release_speed();
500 
501  // optional .jaiabot.protobuf.PIDControl.PIDSettings heading = 7;
502  bool has_heading() const;
503  private:
504  bool _internal_has_heading() const;
505  public:
507  const ::jaiabot::protobuf::PIDControl_PIDSettings& heading() const;
508  ::jaiabot::protobuf::PIDControl_PIDSettings* release_heading();
509  ::jaiabot::protobuf::PIDControl_PIDSettings* mutable_heading();
510  void set_allocated_heading(::jaiabot::protobuf::PIDControl_PIDSettings* heading);
511  private:
512  const ::jaiabot::protobuf::PIDControl_PIDSettings& _internal_heading() const;
513  ::jaiabot::protobuf::PIDControl_PIDSettings* _internal_mutable_heading();
514  public:
516  ::jaiabot::protobuf::PIDControl_PIDSettings* heading);
517  ::jaiabot::protobuf::PIDControl_PIDSettings* unsafe_arena_release_heading();
518 
519  // optional .jaiabot.protobuf.PIDControl.PIDSettings roll = 10;
520  bool has_roll() const;
521  private:
522  bool _internal_has_roll() const;
523  public:
524  void clear_roll();
525  const ::jaiabot::protobuf::PIDControl_PIDSettings& roll() const;
526  ::jaiabot::protobuf::PIDControl_PIDSettings* release_roll();
527  ::jaiabot::protobuf::PIDControl_PIDSettings* mutable_roll();
528  void set_allocated_roll(::jaiabot::protobuf::PIDControl_PIDSettings* roll);
529  private:
530  const ::jaiabot::protobuf::PIDControl_PIDSettings& _internal_roll() const;
531  ::jaiabot::protobuf::PIDControl_PIDSettings* _internal_mutable_roll();
532  public:
534  ::jaiabot::protobuf::PIDControl_PIDSettings* roll);
535  ::jaiabot::protobuf::PIDControl_PIDSettings* unsafe_arena_release_roll();
536 
537  // optional .jaiabot.protobuf.PIDControl.PIDSettings pitch = 11;
538  bool has_pitch() const;
539  private:
540  bool _internal_has_pitch() const;
541  public:
542  void clear_pitch();
543  const ::jaiabot::protobuf::PIDControl_PIDSettings& pitch() const;
544  ::jaiabot::protobuf::PIDControl_PIDSettings* release_pitch();
545  ::jaiabot::protobuf::PIDControl_PIDSettings* mutable_pitch();
546  void set_allocated_pitch(::jaiabot::protobuf::PIDControl_PIDSettings* pitch);
547  private:
548  const ::jaiabot::protobuf::PIDControl_PIDSettings& _internal_pitch() const;
549  ::jaiabot::protobuf::PIDControl_PIDSettings* _internal_mutable_pitch();
550  public:
552  ::jaiabot::protobuf::PIDControl_PIDSettings* pitch);
553  ::jaiabot::protobuf::PIDControl_PIDSettings* unsafe_arena_release_pitch();
554 
555  // optional .jaiabot.protobuf.PIDControl.PIDSettings depth = 12;
556  bool has_depth() const;
557  private:
558  bool _internal_has_depth() const;
559  public:
560  void clear_depth();
561  const ::jaiabot::protobuf::PIDControl_PIDSettings& depth() const;
562  ::jaiabot::protobuf::PIDControl_PIDSettings* release_depth();
563  ::jaiabot::protobuf::PIDControl_PIDSettings* mutable_depth();
564  void set_allocated_depth(::jaiabot::protobuf::PIDControl_PIDSettings* depth);
565  private:
566  const ::jaiabot::protobuf::PIDControl_PIDSettings& _internal_depth() const;
567  ::jaiabot::protobuf::PIDControl_PIDSettings* _internal_mutable_depth();
568  public:
570  ::jaiabot::protobuf::PIDControl_PIDSettings* depth);
571  ::jaiabot::protobuf::PIDControl_PIDSettings* unsafe_arena_release_depth();
572 
573  // optional .jaiabot.protobuf.PIDControl.PIDSettings heading_constant = 14;
574  bool has_heading_constant() const;
575  private:
576  bool _internal_has_heading_constant() const;
577  public:
579  const ::jaiabot::protobuf::PIDControl_PIDSettings& heading_constant() const;
580  ::jaiabot::protobuf::PIDControl_PIDSettings* release_heading_constant();
581  ::jaiabot::protobuf::PIDControl_PIDSettings* mutable_heading_constant();
582  void set_allocated_heading_constant(::jaiabot::protobuf::PIDControl_PIDSettings* heading_constant);
583  private:
584  const ::jaiabot::protobuf::PIDControl_PIDSettings& _internal_heading_constant() const;
585  ::jaiabot::protobuf::PIDControl_PIDSettings* _internal_mutable_heading_constant();
586  public:
588  ::jaiabot::protobuf::PIDControl_PIDSettings* heading_constant);
589  ::jaiabot::protobuf::PIDControl_PIDSettings* unsafe_arena_release_heading_constant();
590 
591  // optional double throttle = 4 [(.dccl.field) = {
592  bool has_throttle() const;
593  private:
594  bool _internal_has_throttle() const;
595  public:
597  double throttle() const;
598  void set_throttle(double value);
599  private:
600  double _internal_throttle() const;
601  void _internal_set_throttle(double value);
602  public:
603 
604  // optional double rudder = 6 [(.dccl.field) = {
605  bool has_rudder() const;
606  private:
607  bool _internal_has_rudder() const;
608  public:
609  void clear_rudder();
610  double rudder() const;
611  void set_rudder(double value);
612  private:
613  double _internal_rudder() const;
614  void _internal_set_rudder(double value);
615  public:
616 
617  // optional double port_elevator = 8 [(.dccl.field) = {
618  bool has_port_elevator() const;
619  private:
620  bool _internal_has_port_elevator() const;
621  public:
623  double port_elevator() const;
624  void set_port_elevator(double value);
625  private:
626  double _internal_port_elevator() const;
627  void _internal_set_port_elevator(double value);
628  public:
629 
630  // optional uint32 timeout = 3 [(.dccl.field) = {
631  bool has_timeout() const;
632  private:
633  bool _internal_has_timeout() const;
634  public:
636  ::PROTOBUF_NAMESPACE_ID::uint32 timeout() const;
637  void set_timeout(::PROTOBUF_NAMESPACE_ID::uint32 value);
638  private:
639  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_timeout() const;
640  void _internal_set_timeout(::PROTOBUF_NAMESPACE_ID::uint32 value);
641  public:
642 
643  // optional bool led_switch_on = 13;
644  bool has_led_switch_on() const;
645  private:
646  bool _internal_has_led_switch_on() const;
647  public:
649  bool led_switch_on() const;
650  void set_led_switch_on(bool value);
651  private:
652  bool _internal_led_switch_on() const;
653  void _internal_set_led_switch_on(bool value);
654  public:
655 
656  // optional double stbd_elevator = 9 [(.dccl.field) = {
657  bool has_stbd_elevator() const;
658  private:
659  bool _internal_has_stbd_elevator() const;
660  public:
662  double stbd_elevator() const;
663  void set_stbd_elevator(double value);
664  private:
665  double _internal_stbd_elevator() const;
666  void _internal_set_stbd_elevator(double value);
667  public:
668 
669  typedef boost::units::time_dimension timeout_dimension;
670 
671  typedef boost::units::unit<timeout_dimension,boost::units::si::system> timeout_unit;
672 
673  template<typename Quantity >
674  void set_timeout_with_units(Quantity value_w_units)
675  { set_timeout(boost::units::quantity<timeout_unit,google::protobuf::uint32 >(value_w_units).value() ); };
676 
677  template<typename Quantity >
678  Quantity timeout_with_units() const
679  { return Quantity(timeout() * timeout_unit()); };
680 
681  boost::units::quantity< timeout_unit,google::protobuf::uint32 > timeout_with_units() const
682  { return timeout_with_units<boost::units::quantity< timeout_unit,google::protobuf::uint32 > >(); };
683 
684  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.PIDControl)
685  private:
686  class _Internal;
687 
688  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
689  typedef void InternalArenaConstructable_;
690  typedef void DestructorSkippable_;
691  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
692  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
693  ::jaiabot::protobuf::PIDControl_PIDSettings* speed_;
694  ::jaiabot::protobuf::PIDControl_PIDSettings* heading_;
695  ::jaiabot::protobuf::PIDControl_PIDSettings* roll_;
696  ::jaiabot::protobuf::PIDControl_PIDSettings* pitch_;
697  ::jaiabot::protobuf::PIDControl_PIDSettings* depth_;
698  ::jaiabot::protobuf::PIDControl_PIDSettings* heading_constant_;
699  double throttle_;
700  double rudder_;
701  double port_elevator_;
702  ::PROTOBUF_NAMESPACE_ID::uint32 timeout_;
703  bool led_switch_on_;
704  double stbd_elevator_;
705  friend struct ::TableStruct_jaiabot_2fmessages_2fengineering_2eproto;
706 };
707 // -------------------------------------------------------------------
708 
709 class GPSRequirements PROTOBUF_FINAL :
710  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.GPSRequirements) */ {
711  public:
712  inline GPSRequirements() : GPSRequirements(nullptr) {};
713  virtual ~GPSRequirements();
714 
715  GPSRequirements(const GPSRequirements& from);
716  GPSRequirements(GPSRequirements&& from) noexcept
717  : GPSRequirements() {
718  *this = ::std::move(from);
719  }
720 
721  inline GPSRequirements& operator=(const GPSRequirements& from) {
722  CopyFrom(from);
723  return *this;
724  }
725  inline GPSRequirements& operator=(GPSRequirements&& from) noexcept {
726  if (GetArena() == from.GetArena()) {
727  if (this != &from) InternalSwap(&from);
728  } else {
729  CopyFrom(from);
730  }
731  return *this;
732  }
733 
734  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
735  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
736  }
737  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
738  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
739  }
740 
741  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
742  return GetDescriptor();
743  }
744  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
745  return GetMetadataStatic().descriptor;
746  }
747  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
748  return GetMetadataStatic().reflection;
749  }
750  static const GPSRequirements& default_instance();
751 
752  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
753  static inline const GPSRequirements* internal_default_instance() {
754  return reinterpret_cast<const GPSRequirements*>(
756  }
757  static constexpr int kIndexInFileMessages =
758  2;
759 
760  friend void swap(GPSRequirements& a, GPSRequirements& b) {
761  a.Swap(&b);
762  }
763  inline void Swap(GPSRequirements* other) {
764  if (other == this) return;
765  if (GetArena() == other->GetArena()) {
766  InternalSwap(other);
767  } else {
768  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
769  }
770  }
771  void UnsafeArenaSwap(GPSRequirements* other) {
772  if (other == this) return;
773  GOOGLE_DCHECK(GetArena() == other->GetArena());
774  InternalSwap(other);
775  }
776 
777  // implements Message ----------------------------------------------
778 
779  inline GPSRequirements* New() const final {
780  return CreateMaybeMessage<GPSRequirements>(nullptr);
781  }
782 
783  GPSRequirements* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
784  return CreateMaybeMessage<GPSRequirements>(arena);
785  }
786  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
787  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
788  void CopyFrom(const GPSRequirements& from);
789  void MergeFrom(const GPSRequirements& from);
790  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
791  bool IsInitialized() const final;
792 
793  size_t ByteSizeLong() const final;
794  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
795  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
796  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
797  int GetCachedSize() const final { return _cached_size_.Get(); }
798 
799  private:
800  inline void SharedCtor();
801  inline void SharedDtor();
802  void SetCachedSize(int size) const final;
803  void InternalSwap(GPSRequirements* other);
804  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
805  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
806  return "jaiabot.protobuf.GPSRequirements";
807  }
808  protected:
809  explicit GPSRequirements(::PROTOBUF_NAMESPACE_ID::Arena* arena);
810  private:
811  static void ArenaDtor(void* object);
812  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
813  public:
814 
815  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
816  private:
817  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
818  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto);
819  return ::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto.file_level_metadata[kIndexInFileMessages];
820  }
821 
822  public:
823 
824  // nested types ----------------------------------------------------
825 
826  // accessors -------------------------------------------------------
827 
828  enum : int {
829  kTransitHdopReqFieldNumber = 1,
830  kTransitPdopReqFieldNumber = 2,
831  kAfterDiveHdopReqFieldNumber = 3,
832  kAfterDivePdopReqFieldNumber = 4,
833  kTransitGpsFixChecksFieldNumber = 5,
834  kTransitGpsDegradedFixChecksFieldNumber = 6,
835  kAfterDiveGpsFixChecksFieldNumber = 7,
836  };
837  // optional double transit_hdop_req = 1 [(.dccl.field) = {
838  bool has_transit_hdop_req() const;
839  private:
840  bool _internal_has_transit_hdop_req() const;
841  public:
843  double transit_hdop_req() const;
844  void set_transit_hdop_req(double value);
845  private:
846  double _internal_transit_hdop_req() const;
847  void _internal_set_transit_hdop_req(double value);
848  public:
849 
850  // optional double transit_pdop_req = 2 [(.dccl.field) = {
851  bool has_transit_pdop_req() const;
852  private:
853  bool _internal_has_transit_pdop_req() const;
854  public:
856  double transit_pdop_req() const;
857  void set_transit_pdop_req(double value);
858  private:
859  double _internal_transit_pdop_req() const;
860  void _internal_set_transit_pdop_req(double value);
861  public:
862 
863  // optional double after_dive_hdop_req = 3 [(.dccl.field) = {
865  private:
866  bool _internal_has_after_dive_hdop_req() const;
867  public:
869  double after_dive_hdop_req() const;
870  void set_after_dive_hdop_req(double value);
871  private:
872  double _internal_after_dive_hdop_req() const;
873  void _internal_set_after_dive_hdop_req(double value);
874  public:
875 
876  // optional double after_dive_pdop_req = 4 [(.dccl.field) = {
878  private:
879  bool _internal_has_after_dive_pdop_req() const;
880  public:
882  double after_dive_pdop_req() const;
883  void set_after_dive_pdop_req(double value);
884  private:
885  double _internal_after_dive_pdop_req() const;
886  void _internal_set_after_dive_pdop_req(double value);
887  public:
888 
889  // optional uint32 transit_gps_fix_checks = 5 [(.dccl.field) = {
891  private:
892  bool _internal_has_transit_gps_fix_checks() const;
893  public:
895  ::PROTOBUF_NAMESPACE_ID::uint32 transit_gps_fix_checks() const;
896  void set_transit_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value);
897  private:
898  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_transit_gps_fix_checks() const;
899  void _internal_set_transit_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value);
900  public:
901 
902  // optional uint32 transit_gps_degraded_fix_checks = 6 [(.dccl.field) = {
904  private:
905  bool _internal_has_transit_gps_degraded_fix_checks() const;
906  public:
908  ::PROTOBUF_NAMESPACE_ID::uint32 transit_gps_degraded_fix_checks() const;
909  void set_transit_gps_degraded_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value);
910  private:
911  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_transit_gps_degraded_fix_checks() const;
912  void _internal_set_transit_gps_degraded_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value);
913  public:
914 
915  // optional uint32 after_dive_gps_fix_checks = 7 [(.dccl.field) = {
917  private:
918  bool _internal_has_after_dive_gps_fix_checks() const;
919  public:
921  ::PROTOBUF_NAMESPACE_ID::uint32 after_dive_gps_fix_checks() const;
922  void set_after_dive_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value);
923  private:
924  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_after_dive_gps_fix_checks() const;
925  void _internal_set_after_dive_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value);
926  public:
927 
928  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.GPSRequirements)
929  private:
930  class _Internal;
931 
932  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
933  typedef void InternalArenaConstructable_;
934  typedef void DestructorSkippable_;
935  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
936  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
937  double transit_hdop_req_;
938  double transit_pdop_req_;
939  double after_dive_hdop_req_;
940  double after_dive_pdop_req_;
941  ::PROTOBUF_NAMESPACE_ID::uint32 transit_gps_fix_checks_;
942  ::PROTOBUF_NAMESPACE_ID::uint32 transit_gps_degraded_fix_checks_;
943  ::PROTOBUF_NAMESPACE_ID::uint32 after_dive_gps_fix_checks_;
944  friend struct ::TableStruct_jaiabot_2fmessages_2fengineering_2eproto;
945 };
946 // -------------------------------------------------------------------
947 
948 class RFDisableOptions PROTOBUF_FINAL :
949  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.RFDisableOptions) */ {
950  public:
951  inline RFDisableOptions() : RFDisableOptions(nullptr) {};
952  virtual ~RFDisableOptions();
953 
954  RFDisableOptions(const RFDisableOptions& from);
955  RFDisableOptions(RFDisableOptions&& from) noexcept
956  : RFDisableOptions() {
957  *this = ::std::move(from);
958  }
959 
960  inline RFDisableOptions& operator=(const RFDisableOptions& from) {
961  CopyFrom(from);
962  return *this;
963  }
964  inline RFDisableOptions& operator=(RFDisableOptions&& from) noexcept {
965  if (GetArena() == from.GetArena()) {
966  if (this != &from) InternalSwap(&from);
967  } else {
968  CopyFrom(from);
969  }
970  return *this;
971  }
972 
973  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
974  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
975  }
976  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
977  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
978  }
979 
980  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
981  return GetDescriptor();
982  }
983  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
984  return GetMetadataStatic().descriptor;
985  }
986  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
987  return GetMetadataStatic().reflection;
988  }
989  static const RFDisableOptions& default_instance();
990 
991  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
992  static inline const RFDisableOptions* internal_default_instance() {
993  return reinterpret_cast<const RFDisableOptions*>(
995  }
996  static constexpr int kIndexInFileMessages =
997  3;
998 
999  friend void swap(RFDisableOptions& a, RFDisableOptions& b) {
1000  a.Swap(&b);
1001  }
1002  inline void Swap(RFDisableOptions* other) {
1003  if (other == this) return;
1004  if (GetArena() == other->GetArena()) {
1005  InternalSwap(other);
1006  } else {
1007  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1008  }
1009  }
1010  void UnsafeArenaSwap(RFDisableOptions* other) {
1011  if (other == this) return;
1012  GOOGLE_DCHECK(GetArena() == other->GetArena());
1013  InternalSwap(other);
1014  }
1015 
1016  // implements Message ----------------------------------------------
1017 
1018  inline RFDisableOptions* New() const final {
1019  return CreateMaybeMessage<RFDisableOptions>(nullptr);
1020  }
1021 
1022  RFDisableOptions* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1023  return CreateMaybeMessage<RFDisableOptions>(arena);
1024  }
1025  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1026  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1027  void CopyFrom(const RFDisableOptions& from);
1028  void MergeFrom(const RFDisableOptions& from);
1029  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1030  bool IsInitialized() const final;
1031 
1032  size_t ByteSizeLong() const final;
1033  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1034  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1035  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1036  int GetCachedSize() const final { return _cached_size_.Get(); }
1037 
1038  private:
1039  inline void SharedCtor();
1040  inline void SharedDtor();
1041  void SetCachedSize(int size) const final;
1042  void InternalSwap(RFDisableOptions* other);
1043  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1044  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1045  return "jaiabot.protobuf.RFDisableOptions";
1046  }
1047  protected:
1048  explicit RFDisableOptions(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1049  private:
1050  static void ArenaDtor(void* object);
1051  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1052  public:
1053 
1054  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1055  private:
1056  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1057  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto);
1058  return ::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto.file_level_metadata[kIndexInFileMessages];
1059  }
1060 
1061  public:
1062 
1063  // nested types ----------------------------------------------------
1064 
1065  // accessors -------------------------------------------------------
1066 
1067  enum : int {
1068  kRfDisableFieldNumber = 1,
1069  kRfDisableTimeoutMinsFieldNumber = 2,
1070  };
1071  // optional bool rf_disable = 1 [default = false];
1072  bool has_rf_disable() const;
1073  private:
1074  bool _internal_has_rf_disable() const;
1075  public:
1077  bool rf_disable() const;
1078  void set_rf_disable(bool value);
1079  private:
1080  bool _internal_rf_disable() const;
1081  void _internal_set_rf_disable(bool value);
1082  public:
1083 
1084  // optional int32 rf_disable_timeout_mins = 2 [default = 10, (.dccl.field) = {
1086  private:
1087  bool _internal_has_rf_disable_timeout_mins() const;
1088  public:
1090  ::PROTOBUF_NAMESPACE_ID::int32 rf_disable_timeout_mins() const;
1091  void set_rf_disable_timeout_mins(::PROTOBUF_NAMESPACE_ID::int32 value);
1092  private:
1093  ::PROTOBUF_NAMESPACE_ID::int32 _internal_rf_disable_timeout_mins() const;
1094  void _internal_set_rf_disable_timeout_mins(::PROTOBUF_NAMESPACE_ID::int32 value);
1095  public:
1096 
1097  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.RFDisableOptions)
1098  private:
1099  class _Internal;
1100 
1101  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1102  typedef void InternalArenaConstructable_;
1103  typedef void DestructorSkippable_;
1104  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1105  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1106  bool rf_disable_;
1107  ::PROTOBUF_NAMESPACE_ID::int32 rf_disable_timeout_mins_;
1108  friend struct ::TableStruct_jaiabot_2fmessages_2fengineering_2eproto;
1109 };
1110 // -------------------------------------------------------------------
1111 
1112 class IMUCalibration PROTOBUF_FINAL :
1113  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUCalibration) */ {
1114  public:
1115  inline IMUCalibration() : IMUCalibration(nullptr) {};
1116  virtual ~IMUCalibration();
1117 
1118  IMUCalibration(const IMUCalibration& from);
1119  IMUCalibration(IMUCalibration&& from) noexcept
1120  : IMUCalibration() {
1121  *this = ::std::move(from);
1122  }
1123 
1124  inline IMUCalibration& operator=(const IMUCalibration& from) {
1125  CopyFrom(from);
1126  return *this;
1127  }
1128  inline IMUCalibration& operator=(IMUCalibration&& from) noexcept {
1129  if (GetArena() == from.GetArena()) {
1130  if (this != &from) InternalSwap(&from);
1131  } else {
1132  CopyFrom(from);
1133  }
1134  return *this;
1135  }
1136 
1137  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1138  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1139  }
1140  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1141  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1142  }
1143 
1144  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1145  return GetDescriptor();
1146  }
1147  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1148  return GetMetadataStatic().descriptor;
1149  }
1150  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1151  return GetMetadataStatic().reflection;
1152  }
1153  static const IMUCalibration& default_instance();
1154 
1155  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1156  static inline const IMUCalibration* internal_default_instance() {
1157  return reinterpret_cast<const IMUCalibration*>(
1159  }
1160  static constexpr int kIndexInFileMessages =
1161  4;
1162 
1163  friend void swap(IMUCalibration& a, IMUCalibration& b) {
1164  a.Swap(&b);
1165  }
1166  inline void Swap(IMUCalibration* other) {
1167  if (other == this) return;
1168  if (GetArena() == other->GetArena()) {
1169  InternalSwap(other);
1170  } else {
1171  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1172  }
1173  }
1174  void UnsafeArenaSwap(IMUCalibration* other) {
1175  if (other == this) return;
1176  GOOGLE_DCHECK(GetArena() == other->GetArena());
1177  InternalSwap(other);
1178  }
1179 
1180  // implements Message ----------------------------------------------
1181 
1182  inline IMUCalibration* New() const final {
1183  return CreateMaybeMessage<IMUCalibration>(nullptr);
1184  }
1185 
1186  IMUCalibration* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1187  return CreateMaybeMessage<IMUCalibration>(arena);
1188  }
1189  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1190  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1191  void CopyFrom(const IMUCalibration& from);
1192  void MergeFrom(const IMUCalibration& from);
1193  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1194  bool IsInitialized() const final;
1195 
1196  size_t ByteSizeLong() const final;
1197  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1198  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1199  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1200  int GetCachedSize() const final { return _cached_size_.Get(); }
1201 
1202  private:
1203  inline void SharedCtor();
1204  inline void SharedDtor();
1205  void SetCachedSize(int size) const final;
1206  void InternalSwap(IMUCalibration* other);
1207  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1208  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1209  return "jaiabot.protobuf.IMUCalibration";
1210  }
1211  protected:
1212  explicit IMUCalibration(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1213  private:
1214  static void ArenaDtor(void* object);
1215  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1216  public:
1217 
1218  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1219  private:
1220  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1221  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto);
1222  return ::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto.file_level_metadata[kIndexInFileMessages];
1223  }
1224 
1225  public:
1226 
1227  // nested types ----------------------------------------------------
1228 
1229  // accessors -------------------------------------------------------
1230 
1231  enum : int {
1232  kRunCalFieldNumber = 1,
1233  };
1234  // optional bool run_cal = 1 [default = false];
1235  bool has_run_cal() const;
1236  private:
1237  bool _internal_has_run_cal() const;
1238  public:
1240  bool run_cal() const;
1241  void set_run_cal(bool value);
1242  private:
1243  bool _internal_run_cal() const;
1244  void _internal_set_run_cal(bool value);
1245  public:
1246 
1247  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUCalibration)
1248  private:
1249  class _Internal;
1250 
1251  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1252  typedef void InternalArenaConstructable_;
1253  typedef void DestructorSkippable_;
1254  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1255  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1256  bool run_cal_;
1257  friend struct ::TableStruct_jaiabot_2fmessages_2fengineering_2eproto;
1258 };
1259 // -------------------------------------------------------------------
1260 
1261 class Echo PROTOBUF_FINAL :
1262  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.Echo) */ {
1263  public:
1264  inline Echo() : Echo(nullptr) {};
1265  virtual ~Echo();
1266 
1267  Echo(const Echo& from);
1268  Echo(Echo&& from) noexcept
1269  : Echo() {
1270  *this = ::std::move(from);
1271  }
1272 
1273  inline Echo& operator=(const Echo& from) {
1274  CopyFrom(from);
1275  return *this;
1276  }
1277  inline Echo& operator=(Echo&& from) noexcept {
1278  if (GetArena() == from.GetArena()) {
1279  if (this != &from) InternalSwap(&from);
1280  } else {
1281  CopyFrom(from);
1282  }
1283  return *this;
1284  }
1285 
1286  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1287  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1288  }
1289  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1290  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1291  }
1292 
1293  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1294  return GetDescriptor();
1295  }
1296  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1297  return GetMetadataStatic().descriptor;
1298  }
1299  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1300  return GetMetadataStatic().reflection;
1301  }
1302  static const Echo& default_instance();
1303 
1304  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1305  static inline const Echo* internal_default_instance() {
1306  return reinterpret_cast<const Echo*>(
1308  }
1309  static constexpr int kIndexInFileMessages =
1310  5;
1311 
1312  friend void swap(Echo& a, Echo& b) {
1313  a.Swap(&b);
1314  }
1315  inline void Swap(Echo* other) {
1316  if (other == this) return;
1317  if (GetArena() == other->GetArena()) {
1318  InternalSwap(other);
1319  } else {
1320  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1321  }
1322  }
1323  void UnsafeArenaSwap(Echo* other) {
1324  if (other == this) return;
1325  GOOGLE_DCHECK(GetArena() == other->GetArena());
1326  InternalSwap(other);
1327  }
1328 
1329  // implements Message ----------------------------------------------
1330 
1331  inline Echo* New() const final {
1332  return CreateMaybeMessage<Echo>(nullptr);
1333  }
1334 
1335  Echo* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1336  return CreateMaybeMessage<Echo>(arena);
1337  }
1338  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1339  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1340  void CopyFrom(const Echo& from);
1341  void MergeFrom(const Echo& from);
1342  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1343  bool IsInitialized() const final;
1344 
1345  size_t ByteSizeLong() const final;
1346  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1347  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1348  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1349  int GetCachedSize() const final { return _cached_size_.Get(); }
1350 
1351  private:
1352  inline void SharedCtor();
1353  inline void SharedDtor();
1354  void SetCachedSize(int size) const final;
1355  void InternalSwap(Echo* other);
1356  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1357  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1358  return "jaiabot.protobuf.Echo";
1359  }
1360  protected:
1361  explicit Echo(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1362  private:
1363  static void ArenaDtor(void* object);
1364  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1365  public:
1366 
1367  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1368  private:
1369  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1370  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto);
1371  return ::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto.file_level_metadata[kIndexInFileMessages];
1372  }
1373 
1374  public:
1375 
1376  // nested types ----------------------------------------------------
1377 
1378  // accessors -------------------------------------------------------
1379 
1380  enum : int {
1381  kStartEchoFieldNumber = 1,
1382  kStopEchoFieldNumber = 2,
1383  kEchoStateFieldNumber = 3,
1384  };
1385  // optional bool start_echo = 1 [default = false];
1386  bool has_start_echo() const;
1387  private:
1388  bool _internal_has_start_echo() const;
1389  public:
1391  bool start_echo() const;
1392  void set_start_echo(bool value);
1393  private:
1394  bool _internal_start_echo() const;
1395  void _internal_set_start_echo(bool value);
1396  public:
1397 
1398  // optional bool stop_echo = 2 [default = false];
1399  bool has_stop_echo() const;
1400  private:
1401  bool _internal_has_stop_echo() const;
1402  public:
1404  bool stop_echo() const;
1405  void set_stop_echo(bool value);
1406  private:
1407  bool _internal_stop_echo() const;
1408  void _internal_set_stop_echo(bool value);
1409  public:
1410 
1411  // optional .jaiabot.protobuf.EchoState echo_state = 3 [default = BOOTING];
1412  bool has_echo_state() const;
1413  private:
1414  bool _internal_has_echo_state() const;
1415  public:
1419  private:
1420  ::jaiabot::protobuf::EchoState _internal_echo_state() const;
1421  void _internal_set_echo_state(::jaiabot::protobuf::EchoState value);
1422  public:
1423 
1424  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.Echo)
1425  private:
1426  class _Internal;
1427 
1428  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1429  typedef void InternalArenaConstructable_;
1430  typedef void DestructorSkippable_;
1431  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1432  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1433  bool start_echo_;
1434  bool stop_echo_;
1435  int echo_state_;
1436  friend struct ::TableStruct_jaiabot_2fmessages_2fengineering_2eproto;
1437 };
1438 // -------------------------------------------------------------------
1439 
1440 class Engineering PROTOBUF_FINAL :
1441  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.Engineering) */ {
1442  public:
1443  inline Engineering() : Engineering(nullptr) {};
1444  virtual ~Engineering();
1445 
1446  Engineering(const Engineering& from);
1447  Engineering(Engineering&& from) noexcept
1448  : Engineering() {
1449  *this = ::std::move(from);
1450  }
1451 
1452  inline Engineering& operator=(const Engineering& from) {
1453  CopyFrom(from);
1454  return *this;
1455  }
1456  inline Engineering& operator=(Engineering&& from) noexcept {
1457  if (GetArena() == from.GetArena()) {
1458  if (this != &from) InternalSwap(&from);
1459  } else {
1460  CopyFrom(from);
1461  }
1462  return *this;
1463  }
1464 
1465  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1466  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1467  }
1468  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1469  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1470  }
1471 
1472  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1473  return GetDescriptor();
1474  }
1475  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1476  return GetMetadataStatic().descriptor;
1477  }
1478  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1479  return GetMetadataStatic().reflection;
1480  }
1481  static const Engineering& default_instance();
1482 
1483  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1484  static inline const Engineering* internal_default_instance() {
1485  return reinterpret_cast<const Engineering*>(
1487  }
1488  static constexpr int kIndexInFileMessages =
1489  6;
1490 
1491  friend void swap(Engineering& a, Engineering& b) {
1492  a.Swap(&b);
1493  }
1494  inline void Swap(Engineering* other) {
1495  if (other == this) return;
1496  if (GetArena() == other->GetArena()) {
1497  InternalSwap(other);
1498  } else {
1499  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1500  }
1501  }
1502  void UnsafeArenaSwap(Engineering* other) {
1503  if (other == this) return;
1504  GOOGLE_DCHECK(GetArena() == other->GetArena());
1505  InternalSwap(other);
1506  }
1507 
1508  // implements Message ----------------------------------------------
1509 
1510  inline Engineering* New() const final {
1511  return CreateMaybeMessage<Engineering>(nullptr);
1512  }
1513 
1514  Engineering* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1515  return CreateMaybeMessage<Engineering>(arena);
1516  }
1517  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1518  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1519  void CopyFrom(const Engineering& from);
1520  void MergeFrom(const Engineering& from);
1521  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1522  bool IsInitialized() const final;
1523 
1524  size_t ByteSizeLong() const final;
1525  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1526  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1527  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1528  int GetCachedSize() const final { return _cached_size_.Get(); }
1529 
1530  private:
1531  inline void SharedCtor();
1532  inline void SharedDtor();
1533  void SetCachedSize(int size) const final;
1534  void InternalSwap(Engineering* other);
1535  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1536  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1537  return "jaiabot.protobuf.Engineering";
1538  }
1539  protected:
1540  explicit Engineering(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1541  private:
1542  static void ArenaDtor(void* object);
1543  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1544  public:
1545 
1546  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1547  private:
1548  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1549  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto);
1550  return ::descriptor_table_jaiabot_2fmessages_2fengineering_2eproto.file_level_metadata[kIndexInFileMessages];
1551  }
1552 
1553  public:
1554 
1555  // nested types ----------------------------------------------------
1556 
1557  // accessors -------------------------------------------------------
1558 
1559  enum : int {
1560  kPidControlFieldNumber = 3,
1561  kGpsRequirementsFieldNumber = 15,
1562  kRfDisableOptionsFieldNumber = 16,
1563  kBottomDepthSafetyParamsFieldNumber = 17,
1564  kImuCalFieldNumber = 18,
1565  kEchoFieldNumber = 19,
1566  kBoundsFieldNumber = 101,
1567  kTimeFieldNumber = 2,
1568  kBotIdFieldNumber = 1,
1569  kQueryEngineeringStatusFieldNumber = 4,
1570  kQueryBotStatusFieldNumber = 5,
1571  kEngineeringMessagesEnabledFieldNumber = 13,
1572  kFlagFieldNumber = 100,
1573  kBotStatusRateFieldNumber = 14,
1574  };
1575  // optional .jaiabot.protobuf.PIDControl pid_control = 3;
1576  bool has_pid_control() const;
1577  private:
1578  bool _internal_has_pid_control() const;
1579  public:
1581  const ::jaiabot::protobuf::PIDControl& pid_control() const;
1582  ::jaiabot::protobuf::PIDControl* release_pid_control();
1583  ::jaiabot::protobuf::PIDControl* mutable_pid_control();
1584  void set_allocated_pid_control(::jaiabot::protobuf::PIDControl* pid_control);
1585  private:
1586  const ::jaiabot::protobuf::PIDControl& _internal_pid_control() const;
1587  ::jaiabot::protobuf::PIDControl* _internal_mutable_pid_control();
1588  public:
1590  ::jaiabot::protobuf::PIDControl* pid_control);
1591  ::jaiabot::protobuf::PIDControl* unsafe_arena_release_pid_control();
1592 
1593  // optional .jaiabot.protobuf.GPSRequirements gps_requirements = 15;
1594  bool has_gps_requirements() const;
1595  private:
1596  bool _internal_has_gps_requirements() const;
1597  public:
1599  const ::jaiabot::protobuf::GPSRequirements& gps_requirements() const;
1600  ::jaiabot::protobuf::GPSRequirements* release_gps_requirements();
1601  ::jaiabot::protobuf::GPSRequirements* mutable_gps_requirements();
1602  void set_allocated_gps_requirements(::jaiabot::protobuf::GPSRequirements* gps_requirements);
1603  private:
1604  const ::jaiabot::protobuf::GPSRequirements& _internal_gps_requirements() const;
1605  ::jaiabot::protobuf::GPSRequirements* _internal_mutable_gps_requirements();
1606  public:
1608  ::jaiabot::protobuf::GPSRequirements* gps_requirements);
1609  ::jaiabot::protobuf::GPSRequirements* unsafe_arena_release_gps_requirements();
1610 
1611  // optional .jaiabot.protobuf.RFDisableOptions rf_disable_options = 16;
1613  private:
1614  bool _internal_has_rf_disable_options() const;
1615  public:
1617  const ::jaiabot::protobuf::RFDisableOptions& rf_disable_options() const;
1618  ::jaiabot::protobuf::RFDisableOptions* release_rf_disable_options();
1619  ::jaiabot::protobuf::RFDisableOptions* mutable_rf_disable_options();
1620  void set_allocated_rf_disable_options(::jaiabot::protobuf::RFDisableOptions* rf_disable_options);
1621  private:
1622  const ::jaiabot::protobuf::RFDisableOptions& _internal_rf_disable_options() const;
1623  ::jaiabot::protobuf::RFDisableOptions* _internal_mutable_rf_disable_options();
1624  public:
1626  ::jaiabot::protobuf::RFDisableOptions* rf_disable_options);
1627  ::jaiabot::protobuf::RFDisableOptions* unsafe_arena_release_rf_disable_options();
1628 
1629  // optional .jaiabot.protobuf.BottomDepthSafetyParams bottom_depth_safety_params = 17;
1631  private:
1632  bool _internal_has_bottom_depth_safety_params() const;
1633  public:
1635  const ::jaiabot::protobuf::BottomDepthSafetyParams& bottom_depth_safety_params() const;
1636  ::jaiabot::protobuf::BottomDepthSafetyParams* release_bottom_depth_safety_params();
1637  ::jaiabot::protobuf::BottomDepthSafetyParams* mutable_bottom_depth_safety_params();
1638  void set_allocated_bottom_depth_safety_params(::jaiabot::protobuf::BottomDepthSafetyParams* bottom_depth_safety_params);
1639  private:
1640  const ::jaiabot::protobuf::BottomDepthSafetyParams& _internal_bottom_depth_safety_params() const;
1641  ::jaiabot::protobuf::BottomDepthSafetyParams* _internal_mutable_bottom_depth_safety_params();
1642  public:
1644  ::jaiabot::protobuf::BottomDepthSafetyParams* bottom_depth_safety_params);
1645  ::jaiabot::protobuf::BottomDepthSafetyParams* unsafe_arena_release_bottom_depth_safety_params();
1646 
1647  // optional .jaiabot.protobuf.IMUCalibration imu_cal = 18;
1648  bool has_imu_cal() const;
1649  private:
1650  bool _internal_has_imu_cal() const;
1651  public:
1653  const ::jaiabot::protobuf::IMUCalibration& imu_cal() const;
1654  ::jaiabot::protobuf::IMUCalibration* release_imu_cal();
1655  ::jaiabot::protobuf::IMUCalibration* mutable_imu_cal();
1656  void set_allocated_imu_cal(::jaiabot::protobuf::IMUCalibration* imu_cal);
1657  private:
1658  const ::jaiabot::protobuf::IMUCalibration& _internal_imu_cal() const;
1659  ::jaiabot::protobuf::IMUCalibration* _internal_mutable_imu_cal();
1660  public:
1662  ::jaiabot::protobuf::IMUCalibration* imu_cal);
1663  ::jaiabot::protobuf::IMUCalibration* unsafe_arena_release_imu_cal();
1664 
1665  // optional .jaiabot.protobuf.Echo echo = 19;
1666  bool has_echo() const;
1667  private:
1668  bool _internal_has_echo() const;
1669  public:
1670  void clear_echo();
1671  const ::jaiabot::protobuf::Echo& echo() const;
1672  ::jaiabot::protobuf::Echo* release_echo();
1673  ::jaiabot::protobuf::Echo* mutable_echo();
1674  void set_allocated_echo(::jaiabot::protobuf::Echo* echo);
1675  private:
1676  const ::jaiabot::protobuf::Echo& _internal_echo() const;
1677  ::jaiabot::protobuf::Echo* _internal_mutable_echo();
1678  public:
1680  ::jaiabot::protobuf::Echo* echo);
1681  ::jaiabot::protobuf::Echo* unsafe_arena_release_echo();
1682 
1683  // optional .jaiabot.protobuf.Bounds bounds = 101;
1684  bool has_bounds() const;
1685  private:
1686  bool _internal_has_bounds() const;
1687  public:
1689  const ::jaiabot::protobuf::Bounds& bounds() const;
1690  ::jaiabot::protobuf::Bounds* release_bounds();
1691  ::jaiabot::protobuf::Bounds* mutable_bounds();
1692  void set_allocated_bounds(::jaiabot::protobuf::Bounds* bounds);
1693  private:
1694  const ::jaiabot::protobuf::Bounds& _internal_bounds() const;
1695  ::jaiabot::protobuf::Bounds* _internal_mutable_bounds();
1696  public:
1698  ::jaiabot::protobuf::Bounds* bounds);
1699  ::jaiabot::protobuf::Bounds* unsafe_arena_release_bounds();
1700 
1701  // optional uint64 time = 2 [(.dccl.field) = {
1702  bool has_time() const;
1703  private:
1704  bool _internal_has_time() const;
1705  public:
1706  void clear_time();
1707  ::PROTOBUF_NAMESPACE_ID::uint64 time() const;
1708  void set_time(::PROTOBUF_NAMESPACE_ID::uint64 value);
1709  private:
1710  ::PROTOBUF_NAMESPACE_ID::uint64 _internal_time() const;
1711  void _internal_set_time(::PROTOBUF_NAMESPACE_ID::uint64 value);
1712  public:
1713 
1714  // required uint32 bot_id = 1 [(.dccl.field) = {
1715  bool has_bot_id() const;
1716  private:
1717  bool _internal_has_bot_id() const;
1718  public:
1720  ::PROTOBUF_NAMESPACE_ID::uint32 bot_id() const;
1721  void set_bot_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
1722  private:
1723  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_bot_id() const;
1724  void _internal_set_bot_id(::PROTOBUF_NAMESPACE_ID::uint32 value);
1725  public:
1726 
1727  // optional bool query_engineering_status = 4 [default = false];
1729  private:
1730  bool _internal_has_query_engineering_status() const;
1731  public:
1735  private:
1736  bool _internal_query_engineering_status() const;
1737  void _internal_set_query_engineering_status(bool value);
1738  public:
1739 
1740  // optional bool query_bot_status = 5 [default = false];
1741  bool has_query_bot_status() const;
1742  private:
1743  bool _internal_has_query_bot_status() const;
1744  public:
1746  bool query_bot_status() const;
1747  void set_query_bot_status(bool value);
1748  private:
1749  bool _internal_query_bot_status() const;
1750  void _internal_set_query_bot_status(bool value);
1751  public:
1752 
1753  // optional bool engineering_messages_enabled = 13;
1755  private:
1756  bool _internal_has_engineering_messages_enabled() const;
1757  public:
1761  private:
1762  bool _internal_engineering_messages_enabled() const;
1763  void _internal_set_engineering_messages_enabled(bool value);
1764  public:
1765 
1766  // optional uint32 flag = 100 [(.dccl.field) = {
1767  bool has_flag() const;
1768  private:
1769  bool _internal_has_flag() const;
1770  public:
1771  void clear_flag();
1772  ::PROTOBUF_NAMESPACE_ID::uint32 flag() const;
1773  void set_flag(::PROTOBUF_NAMESPACE_ID::uint32 value);
1774  private:
1775  ::PROTOBUF_NAMESPACE_ID::uint32 _internal_flag() const;
1776  void _internal_set_flag(::PROTOBUF_NAMESPACE_ID::uint32 value);
1777  public:
1778 
1779  // optional .jaiabot.protobuf.BotStatusRate bot_status_rate = 14 [default = BotStatusRate_1_Hz];
1780  bool has_bot_status_rate() const;
1781  private:
1782  bool _internal_has_bot_status_rate() const;
1783  public:
1787  private:
1788  ::jaiabot::protobuf::BotStatusRate _internal_bot_status_rate() const;
1789  void _internal_set_bot_status_rate(::jaiabot::protobuf::BotStatusRate value);
1790  public:
1791 
1792  enum DCCLParameters { DCCL_ID = 127, DCCL_MAX_BYTES = 250 };
1793  typedef boost::units::time_dimension time_dimension;
1794 
1795  typedef boost::units::make_scaled_unit<boost::units::unit<time_dimension,boost::units::si::system> , boost::units::scale<10, boost::units::static_rational<-6> > >::type time_unit;
1796 
1797  template<typename Quantity >
1798  void set_time_with_units(Quantity value_w_units)
1799  { set_time(boost::units::quantity<time_unit,google::protobuf::uint64 >(value_w_units).value() ); };
1800 
1801  template<typename Quantity >
1802  Quantity time_with_units() const
1803  { return Quantity(time() * time_unit()); };
1804 
1805  boost::units::quantity< time_unit,google::protobuf::uint64 > time_with_units() const
1806  { return time_with_units<boost::units::quantity< time_unit,google::protobuf::uint64 > >(); };
1807 
1808  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.Engineering)
1809  private:
1810  class _Internal;
1811 
1812  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1813  typedef void InternalArenaConstructable_;
1814  typedef void DestructorSkippable_;
1815  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1816  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1817  ::jaiabot::protobuf::PIDControl* pid_control_;
1818  ::jaiabot::protobuf::GPSRequirements* gps_requirements_;
1819  ::jaiabot::protobuf::RFDisableOptions* rf_disable_options_;
1820  ::jaiabot::protobuf::BottomDepthSafetyParams* bottom_depth_safety_params_;
1821  ::jaiabot::protobuf::IMUCalibration* imu_cal_;
1822  ::jaiabot::protobuf::Echo* echo_;
1823  ::jaiabot::protobuf::Bounds* bounds_;
1824  ::PROTOBUF_NAMESPACE_ID::uint64 time_;
1825  ::PROTOBUF_NAMESPACE_ID::uint32 bot_id_;
1826  bool query_engineering_status_;
1827  bool query_bot_status_;
1828  bool engineering_messages_enabled_;
1829  ::PROTOBUF_NAMESPACE_ID::uint32 flag_;
1830  int bot_status_rate_;
1831  friend struct ::TableStruct_jaiabot_2fmessages_2fengineering_2eproto;
1832 };
1833 // ===================================================================
1834 
1835 
1836 // ===================================================================
1837 
1838 #ifdef __GNUC__
1839  #pragma GCC diagnostic push
1840  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
1841 #endif // __GNUC__
1842 // PIDControl_PIDSettings
1843 
1844 // optional double target = 1 [(.dccl.field) = {
1845 inline bool PIDControl_PIDSettings::_internal_has_target() const {
1846  bool value = (_has_bits_[0] & 0x00000001u) != 0;
1847  return value;
1848 }
1849 inline bool PIDControl_PIDSettings::has_target() const {
1850  return _internal_has_target();
1851 }
1852 inline void PIDControl_PIDSettings::clear_target() {
1853  target_ = 0;
1854  _has_bits_[0] &= ~0x00000001u;
1855 }
1856 inline double PIDControl_PIDSettings::_internal_target() const {
1857  return target_;
1858 }
1859 inline double PIDControl_PIDSettings::target() const {
1860  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.PIDSettings.target)
1861  return _internal_target();
1862 }
1863 inline void PIDControl_PIDSettings::_internal_set_target(double value) {
1864  _has_bits_[0] |= 0x00000001u;
1865  target_ = value;
1866 }
1867 inline void PIDControl_PIDSettings::set_target(double value) {
1868  _internal_set_target(value);
1869  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.PIDSettings.target)
1870 }
1871 
1872 // optional double Kp = 2 [(.dccl.field) = {
1873 inline bool PIDControl_PIDSettings::_internal_has_kp() const {
1874  bool value = (_has_bits_[0] & 0x00000002u) != 0;
1875  return value;
1876 }
1877 inline bool PIDControl_PIDSettings::has_kp() const {
1878  return _internal_has_kp();
1879 }
1880 inline void PIDControl_PIDSettings::clear_kp() {
1881  kp_ = 0;
1882  _has_bits_[0] &= ~0x00000002u;
1883 }
1884 inline double PIDControl_PIDSettings::_internal_kp() const {
1885  return kp_;
1886 }
1887 inline double PIDControl_PIDSettings::kp() const {
1888  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.PIDSettings.Kp)
1889  return _internal_kp();
1890 }
1891 inline void PIDControl_PIDSettings::_internal_set_kp(double value) {
1892  _has_bits_[0] |= 0x00000002u;
1893  kp_ = value;
1894 }
1895 inline void PIDControl_PIDSettings::set_kp(double value) {
1896  _internal_set_kp(value);
1897  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.PIDSettings.Kp)
1898 }
1899 
1900 // optional double Ki = 3 [(.dccl.field) = {
1901 inline bool PIDControl_PIDSettings::_internal_has_ki() const {
1902  bool value = (_has_bits_[0] & 0x00000004u) != 0;
1903  return value;
1904 }
1905 inline bool PIDControl_PIDSettings::has_ki() const {
1906  return _internal_has_ki();
1907 }
1908 inline void PIDControl_PIDSettings::clear_ki() {
1909  ki_ = 0;
1910  _has_bits_[0] &= ~0x00000004u;
1911 }
1912 inline double PIDControl_PIDSettings::_internal_ki() const {
1913  return ki_;
1914 }
1915 inline double PIDControl_PIDSettings::ki() const {
1916  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.PIDSettings.Ki)
1917  return _internal_ki();
1918 }
1919 inline void PIDControl_PIDSettings::_internal_set_ki(double value) {
1920  _has_bits_[0] |= 0x00000004u;
1921  ki_ = value;
1922 }
1923 inline void PIDControl_PIDSettings::set_ki(double value) {
1924  _internal_set_ki(value);
1925  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.PIDSettings.Ki)
1926 }
1927 
1928 // optional double Kd = 4 [(.dccl.field) = {
1929 inline bool PIDControl_PIDSettings::_internal_has_kd() const {
1930  bool value = (_has_bits_[0] & 0x00000008u) != 0;
1931  return value;
1932 }
1933 inline bool PIDControl_PIDSettings::has_kd() const {
1934  return _internal_has_kd();
1935 }
1936 inline void PIDControl_PIDSettings::clear_kd() {
1937  kd_ = 0;
1938  _has_bits_[0] &= ~0x00000008u;
1939 }
1940 inline double PIDControl_PIDSettings::_internal_kd() const {
1941  return kd_;
1942 }
1943 inline double PIDControl_PIDSettings::kd() const {
1944  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.PIDSettings.Kd)
1945  return _internal_kd();
1946 }
1947 inline void PIDControl_PIDSettings::_internal_set_kd(double value) {
1948  _has_bits_[0] |= 0x00000008u;
1949  kd_ = value;
1950 }
1951 inline void PIDControl_PIDSettings::set_kd(double value) {
1952  _internal_set_kd(value);
1953  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.PIDSettings.Kd)
1954 }
1955 
1956 // -------------------------------------------------------------------
1957 
1958 // PIDControl
1959 
1960 // optional uint32 timeout = 3 [(.dccl.field) = {
1961 inline bool PIDControl::_internal_has_timeout() const {
1962  bool value = (_has_bits_[0] & 0x00000200u) != 0;
1963  return value;
1964 }
1965 inline bool PIDControl::has_timeout() const {
1966  return _internal_has_timeout();
1967 }
1968 inline void PIDControl::clear_timeout() {
1969  timeout_ = 0u;
1970  _has_bits_[0] &= ~0x00000200u;
1971 }
1972 inline ::PROTOBUF_NAMESPACE_ID::uint32 PIDControl::_internal_timeout() const {
1973  return timeout_;
1974 }
1975 inline ::PROTOBUF_NAMESPACE_ID::uint32 PIDControl::timeout() const {
1976  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.timeout)
1977  return _internal_timeout();
1978 }
1979 inline void PIDControl::_internal_set_timeout(::PROTOBUF_NAMESPACE_ID::uint32 value) {
1980  _has_bits_[0] |= 0x00000200u;
1981  timeout_ = value;
1982 }
1983 inline void PIDControl::set_timeout(::PROTOBUF_NAMESPACE_ID::uint32 value) {
1984  _internal_set_timeout(value);
1985  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.timeout)
1986 }
1987 
1988 // optional double throttle = 4 [(.dccl.field) = {
1989 inline bool PIDControl::_internal_has_throttle() const {
1990  bool value = (_has_bits_[0] & 0x00000040u) != 0;
1991  return value;
1992 }
1993 inline bool PIDControl::has_throttle() const {
1994  return _internal_has_throttle();
1995 }
1996 inline void PIDControl::clear_throttle() {
1997  throttle_ = 0;
1998  _has_bits_[0] &= ~0x00000040u;
1999 }
2000 inline double PIDControl::_internal_throttle() const {
2001  return throttle_;
2002 }
2003 inline double PIDControl::throttle() const {
2004  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.throttle)
2005  return _internal_throttle();
2006 }
2007 inline void PIDControl::_internal_set_throttle(double value) {
2008  _has_bits_[0] |= 0x00000040u;
2009  throttle_ = value;
2010 }
2011 inline void PIDControl::set_throttle(double value) {
2012  _internal_set_throttle(value);
2013  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.throttle)
2014 }
2015 
2016 // optional .jaiabot.protobuf.PIDControl.PIDSettings speed = 5;
2017 inline bool PIDControl::_internal_has_speed() const {
2018  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2019  PROTOBUF_ASSUME(!value || speed_ != nullptr);
2020  return value;
2021 }
2022 inline bool PIDControl::has_speed() const {
2023  return _internal_has_speed();
2024 }
2025 inline void PIDControl::clear_speed() {
2026  if (speed_ != nullptr) speed_->Clear();
2027  _has_bits_[0] &= ~0x00000001u;
2028 }
2029 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::_internal_speed() const {
2030  const ::jaiabot::protobuf::PIDControl_PIDSettings* p = speed_;
2031  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::PIDControl_PIDSettings*>(
2033 }
2034 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::speed() const {
2035  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.speed)
2036  return _internal_speed();
2037 }
2038 inline void PIDControl::unsafe_arena_set_allocated_speed(
2039  ::jaiabot::protobuf::PIDControl_PIDSettings* speed) {
2040  if (GetArena() == nullptr) {
2041  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(speed_);
2042  }
2043  speed_ = speed;
2044  if (speed) {
2045  _has_bits_[0] |= 0x00000001u;
2046  } else {
2047  _has_bits_[0] &= ~0x00000001u;
2048  }
2049  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.PIDControl.speed)
2050 }
2051 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::release_speed() {
2052  auto temp = unsafe_arena_release_speed();
2053  if (GetArena() != nullptr) {
2054  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2055  }
2056  return temp;
2057 }
2058 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::unsafe_arena_release_speed() {
2059  // @@protoc_insertion_point(field_release:jaiabot.protobuf.PIDControl.speed)
2060  _has_bits_[0] &= ~0x00000001u;
2061  ::jaiabot::protobuf::PIDControl_PIDSettings* temp = speed_;
2062  speed_ = nullptr;
2063  return temp;
2064 }
2065 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::_internal_mutable_speed() {
2066  _has_bits_[0] |= 0x00000001u;
2067  if (speed_ == nullptr) {
2068  auto* p = CreateMaybeMessage<::jaiabot::protobuf::PIDControl_PIDSettings>(GetArena());
2069  speed_ = p;
2070  }
2071  return speed_;
2072 }
2073 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::mutable_speed() {
2074  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.PIDControl.speed)
2075  return _internal_mutable_speed();
2076 }
2077 inline void PIDControl::set_allocated_speed(::jaiabot::protobuf::PIDControl_PIDSettings* speed) {
2078  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2079  if (message_arena == nullptr) {
2080  delete speed_;
2081  }
2082  if (speed) {
2083  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2084  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(speed);
2085  if (message_arena != submessage_arena) {
2086  speed = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2087  message_arena, speed, submessage_arena);
2088  }
2089  _has_bits_[0] |= 0x00000001u;
2090  } else {
2091  _has_bits_[0] &= ~0x00000001u;
2092  }
2093  speed_ = speed;
2094  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.PIDControl.speed)
2095 }
2096 
2097 // optional double rudder = 6 [(.dccl.field) = {
2098 inline bool PIDControl::_internal_has_rudder() const {
2099  bool value = (_has_bits_[0] & 0x00000080u) != 0;
2100  return value;
2101 }
2102 inline bool PIDControl::has_rudder() const {
2103  return _internal_has_rudder();
2104 }
2105 inline void PIDControl::clear_rudder() {
2106  rudder_ = 0;
2107  _has_bits_[0] &= ~0x00000080u;
2108 }
2109 inline double PIDControl::_internal_rudder() const {
2110  return rudder_;
2111 }
2112 inline double PIDControl::rudder() const {
2113  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.rudder)
2114  return _internal_rudder();
2115 }
2116 inline void PIDControl::_internal_set_rudder(double value) {
2117  _has_bits_[0] |= 0x00000080u;
2118  rudder_ = value;
2119 }
2120 inline void PIDControl::set_rudder(double value) {
2121  _internal_set_rudder(value);
2122  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.rudder)
2123 }
2124 
2125 // optional .jaiabot.protobuf.PIDControl.PIDSettings heading = 7;
2126 inline bool PIDControl::_internal_has_heading() const {
2127  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2128  PROTOBUF_ASSUME(!value || heading_ != nullptr);
2129  return value;
2130 }
2131 inline bool PIDControl::has_heading() const {
2132  return _internal_has_heading();
2133 }
2134 inline void PIDControl::clear_heading() {
2135  if (heading_ != nullptr) heading_->Clear();
2136  _has_bits_[0] &= ~0x00000002u;
2137 }
2138 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::_internal_heading() const {
2139  const ::jaiabot::protobuf::PIDControl_PIDSettings* p = heading_;
2140  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::PIDControl_PIDSettings*>(
2142 }
2143 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::heading() const {
2144  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.heading)
2145  return _internal_heading();
2146 }
2147 inline void PIDControl::unsafe_arena_set_allocated_heading(
2148  ::jaiabot::protobuf::PIDControl_PIDSettings* heading) {
2149  if (GetArena() == nullptr) {
2150  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(heading_);
2151  }
2152  heading_ = heading;
2153  if (heading) {
2154  _has_bits_[0] |= 0x00000002u;
2155  } else {
2156  _has_bits_[0] &= ~0x00000002u;
2157  }
2158  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.PIDControl.heading)
2159 }
2160 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::release_heading() {
2161  auto temp = unsafe_arena_release_heading();
2162  if (GetArena() != nullptr) {
2163  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2164  }
2165  return temp;
2166 }
2167 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::unsafe_arena_release_heading() {
2168  // @@protoc_insertion_point(field_release:jaiabot.protobuf.PIDControl.heading)
2169  _has_bits_[0] &= ~0x00000002u;
2170  ::jaiabot::protobuf::PIDControl_PIDSettings* temp = heading_;
2171  heading_ = nullptr;
2172  return temp;
2173 }
2174 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::_internal_mutable_heading() {
2175  _has_bits_[0] |= 0x00000002u;
2176  if (heading_ == nullptr) {
2177  auto* p = CreateMaybeMessage<::jaiabot::protobuf::PIDControl_PIDSettings>(GetArena());
2178  heading_ = p;
2179  }
2180  return heading_;
2181 }
2182 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::mutable_heading() {
2183  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.PIDControl.heading)
2184  return _internal_mutable_heading();
2185 }
2186 inline void PIDControl::set_allocated_heading(::jaiabot::protobuf::PIDControl_PIDSettings* heading) {
2187  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2188  if (message_arena == nullptr) {
2189  delete heading_;
2190  }
2191  if (heading) {
2192  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2193  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(heading);
2194  if (message_arena != submessage_arena) {
2195  heading = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2196  message_arena, heading, submessage_arena);
2197  }
2198  _has_bits_[0] |= 0x00000002u;
2199  } else {
2200  _has_bits_[0] &= ~0x00000002u;
2201  }
2202  heading_ = heading;
2203  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.PIDControl.heading)
2204 }
2205 
2206 // optional double port_elevator = 8 [(.dccl.field) = {
2207 inline bool PIDControl::_internal_has_port_elevator() const {
2208  bool value = (_has_bits_[0] & 0x00000100u) != 0;
2209  return value;
2210 }
2211 inline bool PIDControl::has_port_elevator() const {
2212  return _internal_has_port_elevator();
2213 }
2214 inline void PIDControl::clear_port_elevator() {
2215  port_elevator_ = 0;
2216  _has_bits_[0] &= ~0x00000100u;
2217 }
2218 inline double PIDControl::_internal_port_elevator() const {
2219  return port_elevator_;
2220 }
2221 inline double PIDControl::port_elevator() const {
2222  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.port_elevator)
2223  return _internal_port_elevator();
2224 }
2225 inline void PIDControl::_internal_set_port_elevator(double value) {
2226  _has_bits_[0] |= 0x00000100u;
2227  port_elevator_ = value;
2228 }
2229 inline void PIDControl::set_port_elevator(double value) {
2230  _internal_set_port_elevator(value);
2231  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.port_elevator)
2232 }
2233 
2234 // optional double stbd_elevator = 9 [(.dccl.field) = {
2235 inline bool PIDControl::_internal_has_stbd_elevator() const {
2236  bool value = (_has_bits_[0] & 0x00000800u) != 0;
2237  return value;
2238 }
2239 inline bool PIDControl::has_stbd_elevator() const {
2240  return _internal_has_stbd_elevator();
2241 }
2242 inline void PIDControl::clear_stbd_elevator() {
2243  stbd_elevator_ = 0;
2244  _has_bits_[0] &= ~0x00000800u;
2245 }
2246 inline double PIDControl::_internal_stbd_elevator() const {
2247  return stbd_elevator_;
2248 }
2249 inline double PIDControl::stbd_elevator() const {
2250  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.stbd_elevator)
2251  return _internal_stbd_elevator();
2252 }
2253 inline void PIDControl::_internal_set_stbd_elevator(double value) {
2254  _has_bits_[0] |= 0x00000800u;
2255  stbd_elevator_ = value;
2256 }
2257 inline void PIDControl::set_stbd_elevator(double value) {
2258  _internal_set_stbd_elevator(value);
2259  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.stbd_elevator)
2260 }
2261 
2262 // optional .jaiabot.protobuf.PIDControl.PIDSettings roll = 10;
2263 inline bool PIDControl::_internal_has_roll() const {
2264  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2265  PROTOBUF_ASSUME(!value || roll_ != nullptr);
2266  return value;
2267 }
2268 inline bool PIDControl::has_roll() const {
2269  return _internal_has_roll();
2270 }
2271 inline void PIDControl::clear_roll() {
2272  if (roll_ != nullptr) roll_->Clear();
2273  _has_bits_[0] &= ~0x00000004u;
2274 }
2275 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::_internal_roll() const {
2276  const ::jaiabot::protobuf::PIDControl_PIDSettings* p = roll_;
2277  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::PIDControl_PIDSettings*>(
2279 }
2280 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::roll() const {
2281  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.roll)
2282  return _internal_roll();
2283 }
2284 inline void PIDControl::unsafe_arena_set_allocated_roll(
2285  ::jaiabot::protobuf::PIDControl_PIDSettings* roll) {
2286  if (GetArena() == nullptr) {
2287  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(roll_);
2288  }
2289  roll_ = roll;
2290  if (roll) {
2291  _has_bits_[0] |= 0x00000004u;
2292  } else {
2293  _has_bits_[0] &= ~0x00000004u;
2294  }
2295  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.PIDControl.roll)
2296 }
2297 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::release_roll() {
2298  auto temp = unsafe_arena_release_roll();
2299  if (GetArena() != nullptr) {
2300  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2301  }
2302  return temp;
2303 }
2304 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::unsafe_arena_release_roll() {
2305  // @@protoc_insertion_point(field_release:jaiabot.protobuf.PIDControl.roll)
2306  _has_bits_[0] &= ~0x00000004u;
2307  ::jaiabot::protobuf::PIDControl_PIDSettings* temp = roll_;
2308  roll_ = nullptr;
2309  return temp;
2310 }
2311 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::_internal_mutable_roll() {
2312  _has_bits_[0] |= 0x00000004u;
2313  if (roll_ == nullptr) {
2314  auto* p = CreateMaybeMessage<::jaiabot::protobuf::PIDControl_PIDSettings>(GetArena());
2315  roll_ = p;
2316  }
2317  return roll_;
2318 }
2319 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::mutable_roll() {
2320  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.PIDControl.roll)
2321  return _internal_mutable_roll();
2322 }
2323 inline void PIDControl::set_allocated_roll(::jaiabot::protobuf::PIDControl_PIDSettings* roll) {
2324  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2325  if (message_arena == nullptr) {
2326  delete roll_;
2327  }
2328  if (roll) {
2329  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2330  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(roll);
2331  if (message_arena != submessage_arena) {
2332  roll = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2333  message_arena, roll, submessage_arena);
2334  }
2335  _has_bits_[0] |= 0x00000004u;
2336  } else {
2337  _has_bits_[0] &= ~0x00000004u;
2338  }
2339  roll_ = roll;
2340  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.PIDControl.roll)
2341 }
2342 
2343 // optional .jaiabot.protobuf.PIDControl.PIDSettings pitch = 11;
2344 inline bool PIDControl::_internal_has_pitch() const {
2345  bool value = (_has_bits_[0] & 0x00000008u) != 0;
2346  PROTOBUF_ASSUME(!value || pitch_ != nullptr);
2347  return value;
2348 }
2349 inline bool PIDControl::has_pitch() const {
2350  return _internal_has_pitch();
2351 }
2352 inline void PIDControl::clear_pitch() {
2353  if (pitch_ != nullptr) pitch_->Clear();
2354  _has_bits_[0] &= ~0x00000008u;
2355 }
2356 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::_internal_pitch() const {
2357  const ::jaiabot::protobuf::PIDControl_PIDSettings* p = pitch_;
2358  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::PIDControl_PIDSettings*>(
2360 }
2361 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::pitch() const {
2362  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.pitch)
2363  return _internal_pitch();
2364 }
2365 inline void PIDControl::unsafe_arena_set_allocated_pitch(
2366  ::jaiabot::protobuf::PIDControl_PIDSettings* pitch) {
2367  if (GetArena() == nullptr) {
2368  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pitch_);
2369  }
2370  pitch_ = pitch;
2371  if (pitch) {
2372  _has_bits_[0] |= 0x00000008u;
2373  } else {
2374  _has_bits_[0] &= ~0x00000008u;
2375  }
2376  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.PIDControl.pitch)
2377 }
2378 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::release_pitch() {
2379  auto temp = unsafe_arena_release_pitch();
2380  if (GetArena() != nullptr) {
2381  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2382  }
2383  return temp;
2384 }
2385 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::unsafe_arena_release_pitch() {
2386  // @@protoc_insertion_point(field_release:jaiabot.protobuf.PIDControl.pitch)
2387  _has_bits_[0] &= ~0x00000008u;
2388  ::jaiabot::protobuf::PIDControl_PIDSettings* temp = pitch_;
2389  pitch_ = nullptr;
2390  return temp;
2391 }
2392 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::_internal_mutable_pitch() {
2393  _has_bits_[0] |= 0x00000008u;
2394  if (pitch_ == nullptr) {
2395  auto* p = CreateMaybeMessage<::jaiabot::protobuf::PIDControl_PIDSettings>(GetArena());
2396  pitch_ = p;
2397  }
2398  return pitch_;
2399 }
2400 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::mutable_pitch() {
2401  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.PIDControl.pitch)
2402  return _internal_mutable_pitch();
2403 }
2404 inline void PIDControl::set_allocated_pitch(::jaiabot::protobuf::PIDControl_PIDSettings* pitch) {
2405  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2406  if (message_arena == nullptr) {
2407  delete pitch_;
2408  }
2409  if (pitch) {
2410  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2411  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(pitch);
2412  if (message_arena != submessage_arena) {
2413  pitch = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2414  message_arena, pitch, submessage_arena);
2415  }
2416  _has_bits_[0] |= 0x00000008u;
2417  } else {
2418  _has_bits_[0] &= ~0x00000008u;
2419  }
2420  pitch_ = pitch;
2421  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.PIDControl.pitch)
2422 }
2423 
2424 // optional .jaiabot.protobuf.PIDControl.PIDSettings depth = 12;
2425 inline bool PIDControl::_internal_has_depth() const {
2426  bool value = (_has_bits_[0] & 0x00000010u) != 0;
2427  PROTOBUF_ASSUME(!value || depth_ != nullptr);
2428  return value;
2429 }
2430 inline bool PIDControl::has_depth() const {
2431  return _internal_has_depth();
2432 }
2433 inline void PIDControl::clear_depth() {
2434  if (depth_ != nullptr) depth_->Clear();
2435  _has_bits_[0] &= ~0x00000010u;
2436 }
2437 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::_internal_depth() const {
2438  const ::jaiabot::protobuf::PIDControl_PIDSettings* p = depth_;
2439  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::PIDControl_PIDSettings*>(
2441 }
2442 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::depth() const {
2443  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.depth)
2444  return _internal_depth();
2445 }
2446 inline void PIDControl::unsafe_arena_set_allocated_depth(
2447  ::jaiabot::protobuf::PIDControl_PIDSettings* depth) {
2448  if (GetArena() == nullptr) {
2449  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(depth_);
2450  }
2451  depth_ = depth;
2452  if (depth) {
2453  _has_bits_[0] |= 0x00000010u;
2454  } else {
2455  _has_bits_[0] &= ~0x00000010u;
2456  }
2457  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.PIDControl.depth)
2458 }
2459 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::release_depth() {
2460  auto temp = unsafe_arena_release_depth();
2461  if (GetArena() != nullptr) {
2462  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2463  }
2464  return temp;
2465 }
2466 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::unsafe_arena_release_depth() {
2467  // @@protoc_insertion_point(field_release:jaiabot.protobuf.PIDControl.depth)
2468  _has_bits_[0] &= ~0x00000010u;
2469  ::jaiabot::protobuf::PIDControl_PIDSettings* temp = depth_;
2470  depth_ = nullptr;
2471  return temp;
2472 }
2473 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::_internal_mutable_depth() {
2474  _has_bits_[0] |= 0x00000010u;
2475  if (depth_ == nullptr) {
2476  auto* p = CreateMaybeMessage<::jaiabot::protobuf::PIDControl_PIDSettings>(GetArena());
2477  depth_ = p;
2478  }
2479  return depth_;
2480 }
2481 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::mutable_depth() {
2482  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.PIDControl.depth)
2483  return _internal_mutable_depth();
2484 }
2485 inline void PIDControl::set_allocated_depth(::jaiabot::protobuf::PIDControl_PIDSettings* depth) {
2486  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2487  if (message_arena == nullptr) {
2488  delete depth_;
2489  }
2490  if (depth) {
2491  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2492  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(depth);
2493  if (message_arena != submessage_arena) {
2494  depth = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2495  message_arena, depth, submessage_arena);
2496  }
2497  _has_bits_[0] |= 0x00000010u;
2498  } else {
2499  _has_bits_[0] &= ~0x00000010u;
2500  }
2501  depth_ = depth;
2502  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.PIDControl.depth)
2503 }
2504 
2505 // optional bool led_switch_on = 13;
2506 inline bool PIDControl::_internal_has_led_switch_on() const {
2507  bool value = (_has_bits_[0] & 0x00000400u) != 0;
2508  return value;
2509 }
2510 inline bool PIDControl::has_led_switch_on() const {
2511  return _internal_has_led_switch_on();
2512 }
2513 inline void PIDControl::clear_led_switch_on() {
2514  led_switch_on_ = false;
2515  _has_bits_[0] &= ~0x00000400u;
2516 }
2517 inline bool PIDControl::_internal_led_switch_on() const {
2518  return led_switch_on_;
2519 }
2520 inline bool PIDControl::led_switch_on() const {
2521  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.led_switch_on)
2522  return _internal_led_switch_on();
2523 }
2524 inline void PIDControl::_internal_set_led_switch_on(bool value) {
2525  _has_bits_[0] |= 0x00000400u;
2526  led_switch_on_ = value;
2527 }
2528 inline void PIDControl::set_led_switch_on(bool value) {
2529  _internal_set_led_switch_on(value);
2530  // @@protoc_insertion_point(field_set:jaiabot.protobuf.PIDControl.led_switch_on)
2531 }
2532 
2533 // optional .jaiabot.protobuf.PIDControl.PIDSettings heading_constant = 14;
2534 inline bool PIDControl::_internal_has_heading_constant() const {
2535  bool value = (_has_bits_[0] & 0x00000020u) != 0;
2536  PROTOBUF_ASSUME(!value || heading_constant_ != nullptr);
2537  return value;
2538 }
2539 inline bool PIDControl::has_heading_constant() const {
2540  return _internal_has_heading_constant();
2541 }
2542 inline void PIDControl::clear_heading_constant() {
2543  if (heading_constant_ != nullptr) heading_constant_->Clear();
2544  _has_bits_[0] &= ~0x00000020u;
2545 }
2546 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::_internal_heading_constant() const {
2547  const ::jaiabot::protobuf::PIDControl_PIDSettings* p = heading_constant_;
2548  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::PIDControl_PIDSettings*>(
2550 }
2551 inline const ::jaiabot::protobuf::PIDControl_PIDSettings& PIDControl::heading_constant() const {
2552  // @@protoc_insertion_point(field_get:jaiabot.protobuf.PIDControl.heading_constant)
2553  return _internal_heading_constant();
2554 }
2555 inline void PIDControl::unsafe_arena_set_allocated_heading_constant(
2556  ::jaiabot::protobuf::PIDControl_PIDSettings* heading_constant) {
2557  if (GetArena() == nullptr) {
2558  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(heading_constant_);
2559  }
2560  heading_constant_ = heading_constant;
2561  if (heading_constant) {
2562  _has_bits_[0] |= 0x00000020u;
2563  } else {
2564  _has_bits_[0] &= ~0x00000020u;
2565  }
2566  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.PIDControl.heading_constant)
2567 }
2568 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::release_heading_constant() {
2569  auto temp = unsafe_arena_release_heading_constant();
2570  if (GetArena() != nullptr) {
2571  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2572  }
2573  return temp;
2574 }
2575 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::unsafe_arena_release_heading_constant() {
2576  // @@protoc_insertion_point(field_release:jaiabot.protobuf.PIDControl.heading_constant)
2577  _has_bits_[0] &= ~0x00000020u;
2578  ::jaiabot::protobuf::PIDControl_PIDSettings* temp = heading_constant_;
2579  heading_constant_ = nullptr;
2580  return temp;
2581 }
2582 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::_internal_mutable_heading_constant() {
2583  _has_bits_[0] |= 0x00000020u;
2584  if (heading_constant_ == nullptr) {
2585  auto* p = CreateMaybeMessage<::jaiabot::protobuf::PIDControl_PIDSettings>(GetArena());
2586  heading_constant_ = p;
2587  }
2588  return heading_constant_;
2589 }
2590 inline ::jaiabot::protobuf::PIDControl_PIDSettings* PIDControl::mutable_heading_constant() {
2591  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.PIDControl.heading_constant)
2592  return _internal_mutable_heading_constant();
2593 }
2594 inline void PIDControl::set_allocated_heading_constant(::jaiabot::protobuf::PIDControl_PIDSettings* heading_constant) {
2595  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2596  if (message_arena == nullptr) {
2597  delete heading_constant_;
2598  }
2599  if (heading_constant) {
2600  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2601  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(heading_constant);
2602  if (message_arena != submessage_arena) {
2603  heading_constant = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2604  message_arena, heading_constant, submessage_arena);
2605  }
2606  _has_bits_[0] |= 0x00000020u;
2607  } else {
2608  _has_bits_[0] &= ~0x00000020u;
2609  }
2610  heading_constant_ = heading_constant;
2611  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.PIDControl.heading_constant)
2612 }
2613 
2614 // -------------------------------------------------------------------
2615 
2616 // GPSRequirements
2617 
2618 // optional double transit_hdop_req = 1 [(.dccl.field) = {
2619 inline bool GPSRequirements::_internal_has_transit_hdop_req() const {
2620  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2621  return value;
2622 }
2623 inline bool GPSRequirements::has_transit_hdop_req() const {
2624  return _internal_has_transit_hdop_req();
2625 }
2626 inline void GPSRequirements::clear_transit_hdop_req() {
2627  transit_hdop_req_ = 0;
2628  _has_bits_[0] &= ~0x00000001u;
2629 }
2630 inline double GPSRequirements::_internal_transit_hdop_req() const {
2631  return transit_hdop_req_;
2632 }
2633 inline double GPSRequirements::transit_hdop_req() const {
2634  // @@protoc_insertion_point(field_get:jaiabot.protobuf.GPSRequirements.transit_hdop_req)
2635  return _internal_transit_hdop_req();
2636 }
2637 inline void GPSRequirements::_internal_set_transit_hdop_req(double value) {
2638  _has_bits_[0] |= 0x00000001u;
2639  transit_hdop_req_ = value;
2640 }
2641 inline void GPSRequirements::set_transit_hdop_req(double value) {
2642  _internal_set_transit_hdop_req(value);
2643  // @@protoc_insertion_point(field_set:jaiabot.protobuf.GPSRequirements.transit_hdop_req)
2644 }
2645 
2646 // optional double transit_pdop_req = 2 [(.dccl.field) = {
2647 inline bool GPSRequirements::_internal_has_transit_pdop_req() const {
2648  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2649  return value;
2650 }
2651 inline bool GPSRequirements::has_transit_pdop_req() const {
2652  return _internal_has_transit_pdop_req();
2653 }
2654 inline void GPSRequirements::clear_transit_pdop_req() {
2655  transit_pdop_req_ = 0;
2656  _has_bits_[0] &= ~0x00000002u;
2657 }
2658 inline double GPSRequirements::_internal_transit_pdop_req() const {
2659  return transit_pdop_req_;
2660 }
2661 inline double GPSRequirements::transit_pdop_req() const {
2662  // @@protoc_insertion_point(field_get:jaiabot.protobuf.GPSRequirements.transit_pdop_req)
2663  return _internal_transit_pdop_req();
2664 }
2665 inline void GPSRequirements::_internal_set_transit_pdop_req(double value) {
2666  _has_bits_[0] |= 0x00000002u;
2667  transit_pdop_req_ = value;
2668 }
2669 inline void GPSRequirements::set_transit_pdop_req(double value) {
2670  _internal_set_transit_pdop_req(value);
2671  // @@protoc_insertion_point(field_set:jaiabot.protobuf.GPSRequirements.transit_pdop_req)
2672 }
2673 
2674 // optional double after_dive_hdop_req = 3 [(.dccl.field) = {
2675 inline bool GPSRequirements::_internal_has_after_dive_hdop_req() const {
2676  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2677  return value;
2678 }
2679 inline bool GPSRequirements::has_after_dive_hdop_req() const {
2680  return _internal_has_after_dive_hdop_req();
2681 }
2682 inline void GPSRequirements::clear_after_dive_hdop_req() {
2683  after_dive_hdop_req_ = 0;
2684  _has_bits_[0] &= ~0x00000004u;
2685 }
2686 inline double GPSRequirements::_internal_after_dive_hdop_req() const {
2687  return after_dive_hdop_req_;
2688 }
2689 inline double GPSRequirements::after_dive_hdop_req() const {
2690  // @@protoc_insertion_point(field_get:jaiabot.protobuf.GPSRequirements.after_dive_hdop_req)
2691  return _internal_after_dive_hdop_req();
2692 }
2693 inline void GPSRequirements::_internal_set_after_dive_hdop_req(double value) {
2694  _has_bits_[0] |= 0x00000004u;
2695  after_dive_hdop_req_ = value;
2696 }
2697 inline void GPSRequirements::set_after_dive_hdop_req(double value) {
2698  _internal_set_after_dive_hdop_req(value);
2699  // @@protoc_insertion_point(field_set:jaiabot.protobuf.GPSRequirements.after_dive_hdop_req)
2700 }
2701 
2702 // optional double after_dive_pdop_req = 4 [(.dccl.field) = {
2703 inline bool GPSRequirements::_internal_has_after_dive_pdop_req() const {
2704  bool value = (_has_bits_[0] & 0x00000008u) != 0;
2705  return value;
2706 }
2707 inline bool GPSRequirements::has_after_dive_pdop_req() const {
2708  return _internal_has_after_dive_pdop_req();
2709 }
2710 inline void GPSRequirements::clear_after_dive_pdop_req() {
2711  after_dive_pdop_req_ = 0;
2712  _has_bits_[0] &= ~0x00000008u;
2713 }
2714 inline double GPSRequirements::_internal_after_dive_pdop_req() const {
2715  return after_dive_pdop_req_;
2716 }
2717 inline double GPSRequirements::after_dive_pdop_req() const {
2718  // @@protoc_insertion_point(field_get:jaiabot.protobuf.GPSRequirements.after_dive_pdop_req)
2719  return _internal_after_dive_pdop_req();
2720 }
2721 inline void GPSRequirements::_internal_set_after_dive_pdop_req(double value) {
2722  _has_bits_[0] |= 0x00000008u;
2723  after_dive_pdop_req_ = value;
2724 }
2725 inline void GPSRequirements::set_after_dive_pdop_req(double value) {
2726  _internal_set_after_dive_pdop_req(value);
2727  // @@protoc_insertion_point(field_set:jaiabot.protobuf.GPSRequirements.after_dive_pdop_req)
2728 }
2729 
2730 // optional uint32 transit_gps_fix_checks = 5 [(.dccl.field) = {
2731 inline bool GPSRequirements::_internal_has_transit_gps_fix_checks() const {
2732  bool value = (_has_bits_[0] & 0x00000010u) != 0;
2733  return value;
2734 }
2735 inline bool GPSRequirements::has_transit_gps_fix_checks() const {
2736  return _internal_has_transit_gps_fix_checks();
2737 }
2738 inline void GPSRequirements::clear_transit_gps_fix_checks() {
2739  transit_gps_fix_checks_ = 0u;
2740  _has_bits_[0] &= ~0x00000010u;
2741 }
2742 inline ::PROTOBUF_NAMESPACE_ID::uint32 GPSRequirements::_internal_transit_gps_fix_checks() const {
2743  return transit_gps_fix_checks_;
2744 }
2745 inline ::PROTOBUF_NAMESPACE_ID::uint32 GPSRequirements::transit_gps_fix_checks() const {
2746  // @@protoc_insertion_point(field_get:jaiabot.protobuf.GPSRequirements.transit_gps_fix_checks)
2747  return _internal_transit_gps_fix_checks();
2748 }
2749 inline void GPSRequirements::_internal_set_transit_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2750  _has_bits_[0] |= 0x00000010u;
2751  transit_gps_fix_checks_ = value;
2752 }
2753 inline void GPSRequirements::set_transit_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2754  _internal_set_transit_gps_fix_checks(value);
2755  // @@protoc_insertion_point(field_set:jaiabot.protobuf.GPSRequirements.transit_gps_fix_checks)
2756 }
2757 
2758 // optional uint32 transit_gps_degraded_fix_checks = 6 [(.dccl.field) = {
2759 inline bool GPSRequirements::_internal_has_transit_gps_degraded_fix_checks() const {
2760  bool value = (_has_bits_[0] & 0x00000020u) != 0;
2761  return value;
2762 }
2763 inline bool GPSRequirements::has_transit_gps_degraded_fix_checks() const {
2764  return _internal_has_transit_gps_degraded_fix_checks();
2765 }
2766 inline void GPSRequirements::clear_transit_gps_degraded_fix_checks() {
2767  transit_gps_degraded_fix_checks_ = 0u;
2768  _has_bits_[0] &= ~0x00000020u;
2769 }
2770 inline ::PROTOBUF_NAMESPACE_ID::uint32 GPSRequirements::_internal_transit_gps_degraded_fix_checks() const {
2771  return transit_gps_degraded_fix_checks_;
2772 }
2773 inline ::PROTOBUF_NAMESPACE_ID::uint32 GPSRequirements::transit_gps_degraded_fix_checks() const {
2774  // @@protoc_insertion_point(field_get:jaiabot.protobuf.GPSRequirements.transit_gps_degraded_fix_checks)
2775  return _internal_transit_gps_degraded_fix_checks();
2776 }
2777 inline void GPSRequirements::_internal_set_transit_gps_degraded_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2778  _has_bits_[0] |= 0x00000020u;
2779  transit_gps_degraded_fix_checks_ = value;
2780 }
2781 inline void GPSRequirements::set_transit_gps_degraded_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2782  _internal_set_transit_gps_degraded_fix_checks(value);
2783  // @@protoc_insertion_point(field_set:jaiabot.protobuf.GPSRequirements.transit_gps_degraded_fix_checks)
2784 }
2785 
2786 // optional uint32 after_dive_gps_fix_checks = 7 [(.dccl.field) = {
2787 inline bool GPSRequirements::_internal_has_after_dive_gps_fix_checks() const {
2788  bool value = (_has_bits_[0] & 0x00000040u) != 0;
2789  return value;
2790 }
2791 inline bool GPSRequirements::has_after_dive_gps_fix_checks() const {
2792  return _internal_has_after_dive_gps_fix_checks();
2793 }
2794 inline void GPSRequirements::clear_after_dive_gps_fix_checks() {
2795  after_dive_gps_fix_checks_ = 0u;
2796  _has_bits_[0] &= ~0x00000040u;
2797 }
2798 inline ::PROTOBUF_NAMESPACE_ID::uint32 GPSRequirements::_internal_after_dive_gps_fix_checks() const {
2799  return after_dive_gps_fix_checks_;
2800 }
2801 inline ::PROTOBUF_NAMESPACE_ID::uint32 GPSRequirements::after_dive_gps_fix_checks() const {
2802  // @@protoc_insertion_point(field_get:jaiabot.protobuf.GPSRequirements.after_dive_gps_fix_checks)
2803  return _internal_after_dive_gps_fix_checks();
2804 }
2805 inline void GPSRequirements::_internal_set_after_dive_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2806  _has_bits_[0] |= 0x00000040u;
2807  after_dive_gps_fix_checks_ = value;
2808 }
2809 inline void GPSRequirements::set_after_dive_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value) {
2810  _internal_set_after_dive_gps_fix_checks(value);
2811  // @@protoc_insertion_point(field_set:jaiabot.protobuf.GPSRequirements.after_dive_gps_fix_checks)
2812 }
2813 
2814 // -------------------------------------------------------------------
2815 
2816 // RFDisableOptions
2817 
2818 // optional bool rf_disable = 1 [default = false];
2819 inline bool RFDisableOptions::_internal_has_rf_disable() const {
2820  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2821  return value;
2822 }
2823 inline bool RFDisableOptions::has_rf_disable() const {
2824  return _internal_has_rf_disable();
2825 }
2826 inline void RFDisableOptions::clear_rf_disable() {
2827  rf_disable_ = false;
2828  _has_bits_[0] &= ~0x00000001u;
2829 }
2830 inline bool RFDisableOptions::_internal_rf_disable() const {
2831  return rf_disable_;
2832 }
2833 inline bool RFDisableOptions::rf_disable() const {
2834  // @@protoc_insertion_point(field_get:jaiabot.protobuf.RFDisableOptions.rf_disable)
2835  return _internal_rf_disable();
2836 }
2837 inline void RFDisableOptions::_internal_set_rf_disable(bool value) {
2838  _has_bits_[0] |= 0x00000001u;
2839  rf_disable_ = value;
2840 }
2841 inline void RFDisableOptions::set_rf_disable(bool value) {
2842  _internal_set_rf_disable(value);
2843  // @@protoc_insertion_point(field_set:jaiabot.protobuf.RFDisableOptions.rf_disable)
2844 }
2845 
2846 // optional int32 rf_disable_timeout_mins = 2 [default = 10, (.dccl.field) = {
2847 inline bool RFDisableOptions::_internal_has_rf_disable_timeout_mins() const {
2848  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2849  return value;
2850 }
2851 inline bool RFDisableOptions::has_rf_disable_timeout_mins() const {
2852  return _internal_has_rf_disable_timeout_mins();
2853 }
2854 inline void RFDisableOptions::clear_rf_disable_timeout_mins() {
2855  rf_disable_timeout_mins_ = 10;
2856  _has_bits_[0] &= ~0x00000002u;
2857 }
2858 inline ::PROTOBUF_NAMESPACE_ID::int32 RFDisableOptions::_internal_rf_disable_timeout_mins() const {
2859  return rf_disable_timeout_mins_;
2860 }
2861 inline ::PROTOBUF_NAMESPACE_ID::int32 RFDisableOptions::rf_disable_timeout_mins() const {
2862  // @@protoc_insertion_point(field_get:jaiabot.protobuf.RFDisableOptions.rf_disable_timeout_mins)
2863  return _internal_rf_disable_timeout_mins();
2864 }
2865 inline void RFDisableOptions::_internal_set_rf_disable_timeout_mins(::PROTOBUF_NAMESPACE_ID::int32 value) {
2866  _has_bits_[0] |= 0x00000002u;
2867  rf_disable_timeout_mins_ = value;
2868 }
2869 inline void RFDisableOptions::set_rf_disable_timeout_mins(::PROTOBUF_NAMESPACE_ID::int32 value) {
2870  _internal_set_rf_disable_timeout_mins(value);
2871  // @@protoc_insertion_point(field_set:jaiabot.protobuf.RFDisableOptions.rf_disable_timeout_mins)
2872 }
2873 
2874 // -------------------------------------------------------------------
2875 
2876 // IMUCalibration
2877 
2878 // optional bool run_cal = 1 [default = false];
2879 inline bool IMUCalibration::_internal_has_run_cal() const {
2880  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2881  return value;
2882 }
2883 inline bool IMUCalibration::has_run_cal() const {
2884  return _internal_has_run_cal();
2885 }
2886 inline void IMUCalibration::clear_run_cal() {
2887  run_cal_ = false;
2888  _has_bits_[0] &= ~0x00000001u;
2889 }
2890 inline bool IMUCalibration::_internal_run_cal() const {
2891  return run_cal_;
2892 }
2893 inline bool IMUCalibration::run_cal() const {
2894  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUCalibration.run_cal)
2895  return _internal_run_cal();
2896 }
2897 inline void IMUCalibration::_internal_set_run_cal(bool value) {
2898  _has_bits_[0] |= 0x00000001u;
2899  run_cal_ = value;
2900 }
2901 inline void IMUCalibration::set_run_cal(bool value) {
2902  _internal_set_run_cal(value);
2903  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUCalibration.run_cal)
2904 }
2905 
2906 // -------------------------------------------------------------------
2907 
2908 // Echo
2909 
2910 // optional bool start_echo = 1 [default = false];
2911 inline bool Echo::_internal_has_start_echo() const {
2912  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2913  return value;
2914 }
2915 inline bool Echo::has_start_echo() const {
2916  return _internal_has_start_echo();
2917 }
2918 inline void Echo::clear_start_echo() {
2919  start_echo_ = false;
2920  _has_bits_[0] &= ~0x00000001u;
2921 }
2922 inline bool Echo::_internal_start_echo() const {
2923  return start_echo_;
2924 }
2925 inline bool Echo::start_echo() const {
2926  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Echo.start_echo)
2927  return _internal_start_echo();
2928 }
2929 inline void Echo::_internal_set_start_echo(bool value) {
2930  _has_bits_[0] |= 0x00000001u;
2931  start_echo_ = value;
2932 }
2933 inline void Echo::set_start_echo(bool value) {
2934  _internal_set_start_echo(value);
2935  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Echo.start_echo)
2936 }
2937 
2938 // optional bool stop_echo = 2 [default = false];
2939 inline bool Echo::_internal_has_stop_echo() const {
2940  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2941  return value;
2942 }
2943 inline bool Echo::has_stop_echo() const {
2944  return _internal_has_stop_echo();
2945 }
2946 inline void Echo::clear_stop_echo() {
2947  stop_echo_ = false;
2948  _has_bits_[0] &= ~0x00000002u;
2949 }
2950 inline bool Echo::_internal_stop_echo() const {
2951  return stop_echo_;
2952 }
2953 inline bool Echo::stop_echo() const {
2954  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Echo.stop_echo)
2955  return _internal_stop_echo();
2956 }
2957 inline void Echo::_internal_set_stop_echo(bool value) {
2958  _has_bits_[0] |= 0x00000002u;
2959  stop_echo_ = value;
2960 }
2961 inline void Echo::set_stop_echo(bool value) {
2962  _internal_set_stop_echo(value);
2963  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Echo.stop_echo)
2964 }
2965 
2966 // optional .jaiabot.protobuf.EchoState echo_state = 3 [default = BOOTING];
2967 inline bool Echo::_internal_has_echo_state() const {
2968  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2969  return value;
2970 }
2971 inline bool Echo::has_echo_state() const {
2972  return _internal_has_echo_state();
2973 }
2974 inline void Echo::clear_echo_state() {
2975  echo_state_ = 0;
2976  _has_bits_[0] &= ~0x00000004u;
2977 }
2978 inline ::jaiabot::protobuf::EchoState Echo::_internal_echo_state() const {
2979  return static_cast< ::jaiabot::protobuf::EchoState >(echo_state_);
2980 }
2981 inline ::jaiabot::protobuf::EchoState Echo::echo_state() const {
2982  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Echo.echo_state)
2983  return _internal_echo_state();
2984 }
2985 inline void Echo::_internal_set_echo_state(::jaiabot::protobuf::EchoState value) {
2986  assert(::jaiabot::protobuf::EchoState_IsValid(value));
2987  _has_bits_[0] |= 0x00000004u;
2988  echo_state_ = value;
2989 }
2990 inline void Echo::set_echo_state(::jaiabot::protobuf::EchoState value) {
2991  _internal_set_echo_state(value);
2992  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Echo.echo_state)
2993 }
2994 
2995 // -------------------------------------------------------------------
2996 
2997 // Engineering
2998 
2999 // required uint32 bot_id = 1 [(.dccl.field) = {
3000 inline bool Engineering::_internal_has_bot_id() const {
3001  bool value = (_has_bits_[0] & 0x00000100u) != 0;
3002  return value;
3003 }
3004 inline bool Engineering::has_bot_id() const {
3005  return _internal_has_bot_id();
3006 }
3007 inline void Engineering::clear_bot_id() {
3008  bot_id_ = 0u;
3009  _has_bits_[0] &= ~0x00000100u;
3010 }
3011 inline ::PROTOBUF_NAMESPACE_ID::uint32 Engineering::_internal_bot_id() const {
3012  return bot_id_;
3013 }
3014 inline ::PROTOBUF_NAMESPACE_ID::uint32 Engineering::bot_id() const {
3015  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.bot_id)
3016  return _internal_bot_id();
3017 }
3018 inline void Engineering::_internal_set_bot_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
3019  _has_bits_[0] |= 0x00000100u;
3020  bot_id_ = value;
3021 }
3022 inline void Engineering::set_bot_id(::PROTOBUF_NAMESPACE_ID::uint32 value) {
3023  _internal_set_bot_id(value);
3024  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Engineering.bot_id)
3025 }
3026 
3027 // optional uint64 time = 2 [(.dccl.field) = {
3028 inline bool Engineering::_internal_has_time() const {
3029  bool value = (_has_bits_[0] & 0x00000080u) != 0;
3030  return value;
3031 }
3032 inline bool Engineering::has_time() const {
3033  return _internal_has_time();
3034 }
3035 inline void Engineering::clear_time() {
3036  time_ = PROTOBUF_ULONGLONG(0);
3037  _has_bits_[0] &= ~0x00000080u;
3038 }
3039 inline ::PROTOBUF_NAMESPACE_ID::uint64 Engineering::_internal_time() const {
3040  return time_;
3041 }
3042 inline ::PROTOBUF_NAMESPACE_ID::uint64 Engineering::time() const {
3043  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.time)
3044  return _internal_time();
3045 }
3046 inline void Engineering::_internal_set_time(::PROTOBUF_NAMESPACE_ID::uint64 value) {
3047  _has_bits_[0] |= 0x00000080u;
3048  time_ = value;
3049 }
3050 inline void Engineering::set_time(::PROTOBUF_NAMESPACE_ID::uint64 value) {
3051  _internal_set_time(value);
3052  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Engineering.time)
3053 }
3054 
3055 // optional .jaiabot.protobuf.PIDControl pid_control = 3;
3056 inline bool Engineering::_internal_has_pid_control() const {
3057  bool value = (_has_bits_[0] & 0x00000001u) != 0;
3058  PROTOBUF_ASSUME(!value || pid_control_ != nullptr);
3059  return value;
3060 }
3061 inline bool Engineering::has_pid_control() const {
3062  return _internal_has_pid_control();
3063 }
3064 inline void Engineering::clear_pid_control() {
3065  if (pid_control_ != nullptr) pid_control_->Clear();
3066  _has_bits_[0] &= ~0x00000001u;
3067 }
3068 inline const ::jaiabot::protobuf::PIDControl& Engineering::_internal_pid_control() const {
3069  const ::jaiabot::protobuf::PIDControl* p = pid_control_;
3070  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::PIDControl*>(
3072 }
3073 inline const ::jaiabot::protobuf::PIDControl& Engineering::pid_control() const {
3074  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.pid_control)
3075  return _internal_pid_control();
3076 }
3077 inline void Engineering::unsafe_arena_set_allocated_pid_control(
3078  ::jaiabot::protobuf::PIDControl* pid_control) {
3079  if (GetArena() == nullptr) {
3080  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pid_control_);
3081  }
3082  pid_control_ = pid_control;
3083  if (pid_control) {
3084  _has_bits_[0] |= 0x00000001u;
3085  } else {
3086  _has_bits_[0] &= ~0x00000001u;
3087  }
3088  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.Engineering.pid_control)
3089 }
3090 inline ::jaiabot::protobuf::PIDControl* Engineering::release_pid_control() {
3091  auto temp = unsafe_arena_release_pid_control();
3092  if (GetArena() != nullptr) {
3093  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3094  }
3095  return temp;
3096 }
3097 inline ::jaiabot::protobuf::PIDControl* Engineering::unsafe_arena_release_pid_control() {
3098  // @@protoc_insertion_point(field_release:jaiabot.protobuf.Engineering.pid_control)
3099  _has_bits_[0] &= ~0x00000001u;
3100  ::jaiabot::protobuf::PIDControl* temp = pid_control_;
3101  pid_control_ = nullptr;
3102  return temp;
3103 }
3104 inline ::jaiabot::protobuf::PIDControl* Engineering::_internal_mutable_pid_control() {
3105  _has_bits_[0] |= 0x00000001u;
3106  if (pid_control_ == nullptr) {
3107  auto* p = CreateMaybeMessage<::jaiabot::protobuf::PIDControl>(GetArena());
3108  pid_control_ = p;
3109  }
3110  return pid_control_;
3111 }
3112 inline ::jaiabot::protobuf::PIDControl* Engineering::mutable_pid_control() {
3113  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.Engineering.pid_control)
3114  return _internal_mutable_pid_control();
3115 }
3116 inline void Engineering::set_allocated_pid_control(::jaiabot::protobuf::PIDControl* pid_control) {
3117  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3118  if (message_arena == nullptr) {
3119  delete pid_control_;
3120  }
3121  if (pid_control) {
3122  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3123  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(pid_control);
3124  if (message_arena != submessage_arena) {
3125  pid_control = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3126  message_arena, pid_control, submessage_arena);
3127  }
3128  _has_bits_[0] |= 0x00000001u;
3129  } else {
3130  _has_bits_[0] &= ~0x00000001u;
3131  }
3132  pid_control_ = pid_control;
3133  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.Engineering.pid_control)
3134 }
3135 
3136 // optional bool query_engineering_status = 4 [default = false];
3137 inline bool Engineering::_internal_has_query_engineering_status() const {
3138  bool value = (_has_bits_[0] & 0x00000200u) != 0;
3139  return value;
3140 }
3141 inline bool Engineering::has_query_engineering_status() const {
3142  return _internal_has_query_engineering_status();
3143 }
3144 inline void Engineering::clear_query_engineering_status() {
3145  query_engineering_status_ = false;
3146  _has_bits_[0] &= ~0x00000200u;
3147 }
3148 inline bool Engineering::_internal_query_engineering_status() const {
3149  return query_engineering_status_;
3150 }
3151 inline bool Engineering::query_engineering_status() const {
3152  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.query_engineering_status)
3153  return _internal_query_engineering_status();
3154 }
3155 inline void Engineering::_internal_set_query_engineering_status(bool value) {
3156  _has_bits_[0] |= 0x00000200u;
3157  query_engineering_status_ = value;
3158 }
3159 inline void Engineering::set_query_engineering_status(bool value) {
3160  _internal_set_query_engineering_status(value);
3161  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Engineering.query_engineering_status)
3162 }
3163 
3164 // optional bool query_bot_status = 5 [default = false];
3165 inline bool Engineering::_internal_has_query_bot_status() const {
3166  bool value = (_has_bits_[0] & 0x00000400u) != 0;
3167  return value;
3168 }
3169 inline bool Engineering::has_query_bot_status() const {
3170  return _internal_has_query_bot_status();
3171 }
3172 inline void Engineering::clear_query_bot_status() {
3173  query_bot_status_ = false;
3174  _has_bits_[0] &= ~0x00000400u;
3175 }
3176 inline bool Engineering::_internal_query_bot_status() const {
3177  return query_bot_status_;
3178 }
3179 inline bool Engineering::query_bot_status() const {
3180  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.query_bot_status)
3181  return _internal_query_bot_status();
3182 }
3183 inline void Engineering::_internal_set_query_bot_status(bool value) {
3184  _has_bits_[0] |= 0x00000400u;
3185  query_bot_status_ = value;
3186 }
3187 inline void Engineering::set_query_bot_status(bool value) {
3188  _internal_set_query_bot_status(value);
3189  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Engineering.query_bot_status)
3190 }
3191 
3192 // optional bool engineering_messages_enabled = 13;
3193 inline bool Engineering::_internal_has_engineering_messages_enabled() const {
3194  bool value = (_has_bits_[0] & 0x00000800u) != 0;
3195  return value;
3196 }
3197 inline bool Engineering::has_engineering_messages_enabled() const {
3198  return _internal_has_engineering_messages_enabled();
3199 }
3200 inline void Engineering::clear_engineering_messages_enabled() {
3201  engineering_messages_enabled_ = false;
3202  _has_bits_[0] &= ~0x00000800u;
3203 }
3204 inline bool Engineering::_internal_engineering_messages_enabled() const {
3205  return engineering_messages_enabled_;
3206 }
3207 inline bool Engineering::engineering_messages_enabled() const {
3208  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.engineering_messages_enabled)
3209  return _internal_engineering_messages_enabled();
3210 }
3211 inline void Engineering::_internal_set_engineering_messages_enabled(bool value) {
3212  _has_bits_[0] |= 0x00000800u;
3213  engineering_messages_enabled_ = value;
3214 }
3215 inline void Engineering::set_engineering_messages_enabled(bool value) {
3216  _internal_set_engineering_messages_enabled(value);
3217  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Engineering.engineering_messages_enabled)
3218 }
3219 
3220 // optional .jaiabot.protobuf.BotStatusRate bot_status_rate = 14 [default = BotStatusRate_1_Hz];
3221 inline bool Engineering::_internal_has_bot_status_rate() const {
3222  bool value = (_has_bits_[0] & 0x00002000u) != 0;
3223  return value;
3224 }
3225 inline bool Engineering::has_bot_status_rate() const {
3226  return _internal_has_bot_status_rate();
3227 }
3228 inline void Engineering::clear_bot_status_rate() {
3229  bot_status_rate_ = 1;
3230  _has_bits_[0] &= ~0x00002000u;
3231 }
3232 inline ::jaiabot::protobuf::BotStatusRate Engineering::_internal_bot_status_rate() const {
3233  return static_cast< ::jaiabot::protobuf::BotStatusRate >(bot_status_rate_);
3234 }
3235 inline ::jaiabot::protobuf::BotStatusRate Engineering::bot_status_rate() const {
3236  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.bot_status_rate)
3237  return _internal_bot_status_rate();
3238 }
3239 inline void Engineering::_internal_set_bot_status_rate(::jaiabot::protobuf::BotStatusRate value) {
3241  _has_bits_[0] |= 0x00002000u;
3242  bot_status_rate_ = value;
3243 }
3244 inline void Engineering::set_bot_status_rate(::jaiabot::protobuf::BotStatusRate value) {
3245  _internal_set_bot_status_rate(value);
3246  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Engineering.bot_status_rate)
3247 }
3248 
3249 // optional .jaiabot.protobuf.GPSRequirements gps_requirements = 15;
3250 inline bool Engineering::_internal_has_gps_requirements() const {
3251  bool value = (_has_bits_[0] & 0x00000002u) != 0;
3252  PROTOBUF_ASSUME(!value || gps_requirements_ != nullptr);
3253  return value;
3254 }
3255 inline bool Engineering::has_gps_requirements() const {
3256  return _internal_has_gps_requirements();
3257 }
3258 inline void Engineering::clear_gps_requirements() {
3259  if (gps_requirements_ != nullptr) gps_requirements_->Clear();
3260  _has_bits_[0] &= ~0x00000002u;
3261 }
3262 inline const ::jaiabot::protobuf::GPSRequirements& Engineering::_internal_gps_requirements() const {
3263  const ::jaiabot::protobuf::GPSRequirements* p = gps_requirements_;
3264  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::GPSRequirements*>(
3266 }
3267 inline const ::jaiabot::protobuf::GPSRequirements& Engineering::gps_requirements() const {
3268  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.gps_requirements)
3269  return _internal_gps_requirements();
3270 }
3271 inline void Engineering::unsafe_arena_set_allocated_gps_requirements(
3272  ::jaiabot::protobuf::GPSRequirements* gps_requirements) {
3273  if (GetArena() == nullptr) {
3274  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(gps_requirements_);
3275  }
3276  gps_requirements_ = gps_requirements;
3277  if (gps_requirements) {
3278  _has_bits_[0] |= 0x00000002u;
3279  } else {
3280  _has_bits_[0] &= ~0x00000002u;
3281  }
3282  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.Engineering.gps_requirements)
3283 }
3284 inline ::jaiabot::protobuf::GPSRequirements* Engineering::release_gps_requirements() {
3285  auto temp = unsafe_arena_release_gps_requirements();
3286  if (GetArena() != nullptr) {
3287  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3288  }
3289  return temp;
3290 }
3291 inline ::jaiabot::protobuf::GPSRequirements* Engineering::unsafe_arena_release_gps_requirements() {
3292  // @@protoc_insertion_point(field_release:jaiabot.protobuf.Engineering.gps_requirements)
3293  _has_bits_[0] &= ~0x00000002u;
3294  ::jaiabot::protobuf::GPSRequirements* temp = gps_requirements_;
3295  gps_requirements_ = nullptr;
3296  return temp;
3297 }
3298 inline ::jaiabot::protobuf::GPSRequirements* Engineering::_internal_mutable_gps_requirements() {
3299  _has_bits_[0] |= 0x00000002u;
3300  if (gps_requirements_ == nullptr) {
3301  auto* p = CreateMaybeMessage<::jaiabot::protobuf::GPSRequirements>(GetArena());
3302  gps_requirements_ = p;
3303  }
3304  return gps_requirements_;
3305 }
3306 inline ::jaiabot::protobuf::GPSRequirements* Engineering::mutable_gps_requirements() {
3307  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.Engineering.gps_requirements)
3308  return _internal_mutable_gps_requirements();
3309 }
3310 inline void Engineering::set_allocated_gps_requirements(::jaiabot::protobuf::GPSRequirements* gps_requirements) {
3311  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3312  if (message_arena == nullptr) {
3313  delete gps_requirements_;
3314  }
3315  if (gps_requirements) {
3316  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3317  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(gps_requirements);
3318  if (message_arena != submessage_arena) {
3319  gps_requirements = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3320  message_arena, gps_requirements, submessage_arena);
3321  }
3322  _has_bits_[0] |= 0x00000002u;
3323  } else {
3324  _has_bits_[0] &= ~0x00000002u;
3325  }
3326  gps_requirements_ = gps_requirements;
3327  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.Engineering.gps_requirements)
3328 }
3329 
3330 // optional .jaiabot.protobuf.RFDisableOptions rf_disable_options = 16;
3331 inline bool Engineering::_internal_has_rf_disable_options() const {
3332  bool value = (_has_bits_[0] & 0x00000004u) != 0;
3333  PROTOBUF_ASSUME(!value || rf_disable_options_ != nullptr);
3334  return value;
3335 }
3336 inline bool Engineering::has_rf_disable_options() const {
3337  return _internal_has_rf_disable_options();
3338 }
3339 inline void Engineering::clear_rf_disable_options() {
3340  if (rf_disable_options_ != nullptr) rf_disable_options_->Clear();
3341  _has_bits_[0] &= ~0x00000004u;
3342 }
3343 inline const ::jaiabot::protobuf::RFDisableOptions& Engineering::_internal_rf_disable_options() const {
3344  const ::jaiabot::protobuf::RFDisableOptions* p = rf_disable_options_;
3345  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::RFDisableOptions*>(
3347 }
3348 inline const ::jaiabot::protobuf::RFDisableOptions& Engineering::rf_disable_options() const {
3349  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.rf_disable_options)
3350  return _internal_rf_disable_options();
3351 }
3352 inline void Engineering::unsafe_arena_set_allocated_rf_disable_options(
3353  ::jaiabot::protobuf::RFDisableOptions* rf_disable_options) {
3354  if (GetArena() == nullptr) {
3355  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(rf_disable_options_);
3356  }
3357  rf_disable_options_ = rf_disable_options;
3358  if (rf_disable_options) {
3359  _has_bits_[0] |= 0x00000004u;
3360  } else {
3361  _has_bits_[0] &= ~0x00000004u;
3362  }
3363  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.Engineering.rf_disable_options)
3364 }
3365 inline ::jaiabot::protobuf::RFDisableOptions* Engineering::release_rf_disable_options() {
3366  auto temp = unsafe_arena_release_rf_disable_options();
3367  if (GetArena() != nullptr) {
3368  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3369  }
3370  return temp;
3371 }
3372 inline ::jaiabot::protobuf::RFDisableOptions* Engineering::unsafe_arena_release_rf_disable_options() {
3373  // @@protoc_insertion_point(field_release:jaiabot.protobuf.Engineering.rf_disable_options)
3374  _has_bits_[0] &= ~0x00000004u;
3375  ::jaiabot::protobuf::RFDisableOptions* temp = rf_disable_options_;
3376  rf_disable_options_ = nullptr;
3377  return temp;
3378 }
3379 inline ::jaiabot::protobuf::RFDisableOptions* Engineering::_internal_mutable_rf_disable_options() {
3380  _has_bits_[0] |= 0x00000004u;
3381  if (rf_disable_options_ == nullptr) {
3382  auto* p = CreateMaybeMessage<::jaiabot::protobuf::RFDisableOptions>(GetArena());
3383  rf_disable_options_ = p;
3384  }
3385  return rf_disable_options_;
3386 }
3387 inline ::jaiabot::protobuf::RFDisableOptions* Engineering::mutable_rf_disable_options() {
3388  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.Engineering.rf_disable_options)
3389  return _internal_mutable_rf_disable_options();
3390 }
3391 inline void Engineering::set_allocated_rf_disable_options(::jaiabot::protobuf::RFDisableOptions* rf_disable_options) {
3392  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3393  if (message_arena == nullptr) {
3394  delete rf_disable_options_;
3395  }
3396  if (rf_disable_options) {
3397  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3398  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(rf_disable_options);
3399  if (message_arena != submessage_arena) {
3400  rf_disable_options = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3401  message_arena, rf_disable_options, submessage_arena);
3402  }
3403  _has_bits_[0] |= 0x00000004u;
3404  } else {
3405  _has_bits_[0] &= ~0x00000004u;
3406  }
3407  rf_disable_options_ = rf_disable_options;
3408  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.Engineering.rf_disable_options)
3409 }
3410 
3411 // optional .jaiabot.protobuf.BottomDepthSafetyParams bottom_depth_safety_params = 17;
3412 inline bool Engineering::_internal_has_bottom_depth_safety_params() const {
3413  bool value = (_has_bits_[0] & 0x00000008u) != 0;
3414  PROTOBUF_ASSUME(!value || bottom_depth_safety_params_ != nullptr);
3415  return value;
3416 }
3417 inline bool Engineering::has_bottom_depth_safety_params() const {
3418  return _internal_has_bottom_depth_safety_params();
3419 }
3420 inline const ::jaiabot::protobuf::BottomDepthSafetyParams& Engineering::_internal_bottom_depth_safety_params() const {
3421  const ::jaiabot::protobuf::BottomDepthSafetyParams* p = bottom_depth_safety_params_;
3422  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::BottomDepthSafetyParams*>(
3424 }
3425 inline const ::jaiabot::protobuf::BottomDepthSafetyParams& Engineering::bottom_depth_safety_params() const {
3426  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.bottom_depth_safety_params)
3427  return _internal_bottom_depth_safety_params();
3428 }
3429 inline void Engineering::unsafe_arena_set_allocated_bottom_depth_safety_params(
3430  ::jaiabot::protobuf::BottomDepthSafetyParams* bottom_depth_safety_params) {
3431  if (GetArena() == nullptr) {
3432  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(bottom_depth_safety_params_);
3433  }
3434  bottom_depth_safety_params_ = bottom_depth_safety_params;
3435  if (bottom_depth_safety_params) {
3436  _has_bits_[0] |= 0x00000008u;
3437  } else {
3438  _has_bits_[0] &= ~0x00000008u;
3439  }
3440  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.Engineering.bottom_depth_safety_params)
3441 }
3442 inline ::jaiabot::protobuf::BottomDepthSafetyParams* Engineering::release_bottom_depth_safety_params() {
3443  auto temp = unsafe_arena_release_bottom_depth_safety_params();
3444  if (GetArena() != nullptr) {
3445  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3446  }
3447  return temp;
3448 }
3449 inline ::jaiabot::protobuf::BottomDepthSafetyParams* Engineering::unsafe_arena_release_bottom_depth_safety_params() {
3450  // @@protoc_insertion_point(field_release:jaiabot.protobuf.Engineering.bottom_depth_safety_params)
3451  _has_bits_[0] &= ~0x00000008u;
3452  ::jaiabot::protobuf::BottomDepthSafetyParams* temp = bottom_depth_safety_params_;
3453  bottom_depth_safety_params_ = nullptr;
3454  return temp;
3455 }
3456 inline ::jaiabot::protobuf::BottomDepthSafetyParams* Engineering::_internal_mutable_bottom_depth_safety_params() {
3457  _has_bits_[0] |= 0x00000008u;
3458  if (bottom_depth_safety_params_ == nullptr) {
3459  auto* p = CreateMaybeMessage<::jaiabot::protobuf::BottomDepthSafetyParams>(GetArena());
3460  bottom_depth_safety_params_ = p;
3461  }
3462  return bottom_depth_safety_params_;
3463 }
3464 inline ::jaiabot::protobuf::BottomDepthSafetyParams* Engineering::mutable_bottom_depth_safety_params() {
3465  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.Engineering.bottom_depth_safety_params)
3466  return _internal_mutable_bottom_depth_safety_params();
3467 }
3468 inline void Engineering::set_allocated_bottom_depth_safety_params(::jaiabot::protobuf::BottomDepthSafetyParams* bottom_depth_safety_params) {
3469  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3470  if (message_arena == nullptr) {
3471  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(bottom_depth_safety_params_);
3472  }
3473  if (bottom_depth_safety_params) {
3474  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3475  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(bottom_depth_safety_params)->GetArena();
3476  if (message_arena != submessage_arena) {
3477  bottom_depth_safety_params = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3478  message_arena, bottom_depth_safety_params, submessage_arena);
3479  }
3480  _has_bits_[0] |= 0x00000008u;
3481  } else {
3482  _has_bits_[0] &= ~0x00000008u;
3483  }
3484  bottom_depth_safety_params_ = bottom_depth_safety_params;
3485  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.Engineering.bottom_depth_safety_params)
3486 }
3487 
3488 // optional .jaiabot.protobuf.IMUCalibration imu_cal = 18;
3489 inline bool Engineering::_internal_has_imu_cal() const {
3490  bool value = (_has_bits_[0] & 0x00000010u) != 0;
3491  PROTOBUF_ASSUME(!value || imu_cal_ != nullptr);
3492  return value;
3493 }
3494 inline bool Engineering::has_imu_cal() const {
3495  return _internal_has_imu_cal();
3496 }
3497 inline void Engineering::clear_imu_cal() {
3498  if (imu_cal_ != nullptr) imu_cal_->Clear();
3499  _has_bits_[0] &= ~0x00000010u;
3500 }
3501 inline const ::jaiabot::protobuf::IMUCalibration& Engineering::_internal_imu_cal() const {
3502  const ::jaiabot::protobuf::IMUCalibration* p = imu_cal_;
3503  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::IMUCalibration*>(
3505 }
3506 inline const ::jaiabot::protobuf::IMUCalibration& Engineering::imu_cal() const {
3507  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.imu_cal)
3508  return _internal_imu_cal();
3509 }
3510 inline void Engineering::unsafe_arena_set_allocated_imu_cal(
3511  ::jaiabot::protobuf::IMUCalibration* imu_cal) {
3512  if (GetArena() == nullptr) {
3513  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(imu_cal_);
3514  }
3515  imu_cal_ = imu_cal;
3516  if (imu_cal) {
3517  _has_bits_[0] |= 0x00000010u;
3518  } else {
3519  _has_bits_[0] &= ~0x00000010u;
3520  }
3521  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.Engineering.imu_cal)
3522 }
3523 inline ::jaiabot::protobuf::IMUCalibration* Engineering::release_imu_cal() {
3524  auto temp = unsafe_arena_release_imu_cal();
3525  if (GetArena() != nullptr) {
3526  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3527  }
3528  return temp;
3529 }
3530 inline ::jaiabot::protobuf::IMUCalibration* Engineering::unsafe_arena_release_imu_cal() {
3531  // @@protoc_insertion_point(field_release:jaiabot.protobuf.Engineering.imu_cal)
3532  _has_bits_[0] &= ~0x00000010u;
3533  ::jaiabot::protobuf::IMUCalibration* temp = imu_cal_;
3534  imu_cal_ = nullptr;
3535  return temp;
3536 }
3537 inline ::jaiabot::protobuf::IMUCalibration* Engineering::_internal_mutable_imu_cal() {
3538  _has_bits_[0] |= 0x00000010u;
3539  if (imu_cal_ == nullptr) {
3540  auto* p = CreateMaybeMessage<::jaiabot::protobuf::IMUCalibration>(GetArena());
3541  imu_cal_ = p;
3542  }
3543  return imu_cal_;
3544 }
3545 inline ::jaiabot::protobuf::IMUCalibration* Engineering::mutable_imu_cal() {
3546  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.Engineering.imu_cal)
3547  return _internal_mutable_imu_cal();
3548 }
3549 inline void Engineering::set_allocated_imu_cal(::jaiabot::protobuf::IMUCalibration* imu_cal) {
3550  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3551  if (message_arena == nullptr) {
3552  delete imu_cal_;
3553  }
3554  if (imu_cal) {
3555  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3556  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(imu_cal);
3557  if (message_arena != submessage_arena) {
3558  imu_cal = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3559  message_arena, imu_cal, submessage_arena);
3560  }
3561  _has_bits_[0] |= 0x00000010u;
3562  } else {
3563  _has_bits_[0] &= ~0x00000010u;
3564  }
3565  imu_cal_ = imu_cal;
3566  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.Engineering.imu_cal)
3567 }
3568 
3569 // optional .jaiabot.protobuf.Echo echo = 19;
3570 inline bool Engineering::_internal_has_echo() const {
3571  bool value = (_has_bits_[0] & 0x00000020u) != 0;
3572  PROTOBUF_ASSUME(!value || echo_ != nullptr);
3573  return value;
3574 }
3575 inline bool Engineering::has_echo() const {
3576  return _internal_has_echo();
3577 }
3578 inline void Engineering::clear_echo() {
3579  if (echo_ != nullptr) echo_->Clear();
3580  _has_bits_[0] &= ~0x00000020u;
3581 }
3582 inline const ::jaiabot::protobuf::Echo& Engineering::_internal_echo() const {
3583  const ::jaiabot::protobuf::Echo* p = echo_;
3584  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::Echo*>(
3586 }
3587 inline const ::jaiabot::protobuf::Echo& Engineering::echo() const {
3588  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.echo)
3589  return _internal_echo();
3590 }
3591 inline void Engineering::unsafe_arena_set_allocated_echo(
3592  ::jaiabot::protobuf::Echo* echo) {
3593  if (GetArena() == nullptr) {
3594  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(echo_);
3595  }
3596  echo_ = echo;
3597  if (echo) {
3598  _has_bits_[0] |= 0x00000020u;
3599  } else {
3600  _has_bits_[0] &= ~0x00000020u;
3601  }
3602  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.Engineering.echo)
3603 }
3604 inline ::jaiabot::protobuf::Echo* Engineering::release_echo() {
3605  auto temp = unsafe_arena_release_echo();
3606  if (GetArena() != nullptr) {
3607  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3608  }
3609  return temp;
3610 }
3611 inline ::jaiabot::protobuf::Echo* Engineering::unsafe_arena_release_echo() {
3612  // @@protoc_insertion_point(field_release:jaiabot.protobuf.Engineering.echo)
3613  _has_bits_[0] &= ~0x00000020u;
3614  ::jaiabot::protobuf::Echo* temp = echo_;
3615  echo_ = nullptr;
3616  return temp;
3617 }
3618 inline ::jaiabot::protobuf::Echo* Engineering::_internal_mutable_echo() {
3619  _has_bits_[0] |= 0x00000020u;
3620  if (echo_ == nullptr) {
3621  auto* p = CreateMaybeMessage<::jaiabot::protobuf::Echo>(GetArena());
3622  echo_ = p;
3623  }
3624  return echo_;
3625 }
3626 inline ::jaiabot::protobuf::Echo* Engineering::mutable_echo() {
3627  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.Engineering.echo)
3628  return _internal_mutable_echo();
3629 }
3630 inline void Engineering::set_allocated_echo(::jaiabot::protobuf::Echo* echo) {
3631  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3632  if (message_arena == nullptr) {
3633  delete echo_;
3634  }
3635  if (echo) {
3636  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3637  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(echo);
3638  if (message_arena != submessage_arena) {
3639  echo = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3640  message_arena, echo, submessage_arena);
3641  }
3642  _has_bits_[0] |= 0x00000020u;
3643  } else {
3644  _has_bits_[0] &= ~0x00000020u;
3645  }
3646  echo_ = echo;
3647  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.Engineering.echo)
3648 }
3649 
3650 // optional uint32 flag = 100 [(.dccl.field) = {
3651 inline bool Engineering::_internal_has_flag() const {
3652  bool value = (_has_bits_[0] & 0x00001000u) != 0;
3653  return value;
3654 }
3655 inline bool Engineering::has_flag() const {
3656  return _internal_has_flag();
3657 }
3658 inline void Engineering::clear_flag() {
3659  flag_ = 0u;
3660  _has_bits_[0] &= ~0x00001000u;
3661 }
3662 inline ::PROTOBUF_NAMESPACE_ID::uint32 Engineering::_internal_flag() const {
3663  return flag_;
3664 }
3665 inline ::PROTOBUF_NAMESPACE_ID::uint32 Engineering::flag() const {
3666  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.flag)
3667  return _internal_flag();
3668 }
3669 inline void Engineering::_internal_set_flag(::PROTOBUF_NAMESPACE_ID::uint32 value) {
3670  _has_bits_[0] |= 0x00001000u;
3671  flag_ = value;
3672 }
3673 inline void Engineering::set_flag(::PROTOBUF_NAMESPACE_ID::uint32 value) {
3674  _internal_set_flag(value);
3675  // @@protoc_insertion_point(field_set:jaiabot.protobuf.Engineering.flag)
3676 }
3677 
3678 // optional .jaiabot.protobuf.Bounds bounds = 101;
3679 inline bool Engineering::_internal_has_bounds() const {
3680  bool value = (_has_bits_[0] & 0x00000040u) != 0;
3681  PROTOBUF_ASSUME(!value || bounds_ != nullptr);
3682  return value;
3683 }
3684 inline bool Engineering::has_bounds() const {
3685  return _internal_has_bounds();
3686 }
3687 inline const ::jaiabot::protobuf::Bounds& Engineering::_internal_bounds() const {
3688  const ::jaiabot::protobuf::Bounds* p = bounds_;
3689  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::Bounds*>(
3691 }
3692 inline const ::jaiabot::protobuf::Bounds& Engineering::bounds() const {
3693  // @@protoc_insertion_point(field_get:jaiabot.protobuf.Engineering.bounds)
3694  return _internal_bounds();
3695 }
3696 inline void Engineering::unsafe_arena_set_allocated_bounds(
3697  ::jaiabot::protobuf::Bounds* bounds) {
3698  if (GetArena() == nullptr) {
3699  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(bounds_);
3700  }
3701  bounds_ = bounds;
3702  if (bounds) {
3703  _has_bits_[0] |= 0x00000040u;
3704  } else {
3705  _has_bits_[0] &= ~0x00000040u;
3706  }
3707  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.Engineering.bounds)
3708 }
3709 inline ::jaiabot::protobuf::Bounds* Engineering::release_bounds() {
3710  auto temp = unsafe_arena_release_bounds();
3711  if (GetArena() != nullptr) {
3712  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3713  }
3714  return temp;
3715 }
3716 inline ::jaiabot::protobuf::Bounds* Engineering::unsafe_arena_release_bounds() {
3717  // @@protoc_insertion_point(field_release:jaiabot.protobuf.Engineering.bounds)
3718  _has_bits_[0] &= ~0x00000040u;
3719  ::jaiabot::protobuf::Bounds* temp = bounds_;
3720  bounds_ = nullptr;
3721  return temp;
3722 }
3723 inline ::jaiabot::protobuf::Bounds* Engineering::_internal_mutable_bounds() {
3724  _has_bits_[0] |= 0x00000040u;
3725  if (bounds_ == nullptr) {
3726  auto* p = CreateMaybeMessage<::jaiabot::protobuf::Bounds>(GetArena());
3727  bounds_ = p;
3728  }
3729  return bounds_;
3730 }
3731 inline ::jaiabot::protobuf::Bounds* Engineering::mutable_bounds() {
3732  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.Engineering.bounds)
3733  return _internal_mutable_bounds();
3734 }
3735 inline void Engineering::set_allocated_bounds(::jaiabot::protobuf::Bounds* bounds) {
3736  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3737  if (message_arena == nullptr) {
3738  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(bounds_);
3739  }
3740  if (bounds) {
3741  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3742  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(bounds)->GetArena();
3743  if (message_arena != submessage_arena) {
3744  bounds = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3745  message_arena, bounds, submessage_arena);
3746  }
3747  _has_bits_[0] |= 0x00000040u;
3748  } else {
3749  _has_bits_[0] &= ~0x00000040u;
3750  }
3751  bounds_ = bounds;
3752  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.Engineering.bounds)
3753 }
3754 
3755 #ifdef __GNUC__
3756  #pragma GCC diagnostic pop
3757 #endif // __GNUC__
3758 // -------------------------------------------------------------------
3759 
3760 // -------------------------------------------------------------------
3761 
3762 // -------------------------------------------------------------------
3763 
3764 // -------------------------------------------------------------------
3765 
3766 // -------------------------------------------------------------------
3767 
3768 // -------------------------------------------------------------------
3769 
3770 
3771 // @@protoc_insertion_point(namespace_scope)
3772 
3773 } // namespace protobuf
3774 } // namespace jaiabot
3775 
3776 PROTOBUF_NAMESPACE_OPEN
3777 
3778 template <> struct is_proto_enum< ::jaiabot::protobuf::BotStatusRate> : ::std::true_type {};
3779 template <>
3780 inline const EnumDescriptor* GetEnumDescriptor< ::jaiabot::protobuf::BotStatusRate>() {
3782 }
3783 
3784 PROTOBUF_NAMESPACE_CLOSE
3785 
3786 // @@protoc_insertion_point(global_scope)
3787 
3788 #include <google/protobuf/port_undef.inc>
3789 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_jaiabot_2fmessages_2fengineering_2eproto
::jaiabot::protobuf::BottomDepthSafetyParams * mutable_bottom_depth_safety_params()
static const PIDControl & default_instance()
void set_transit_hdop_req(double value)
::jaiabot::protobuf::IMUCalibration * mutable_imu_cal()
::jaiabot::protobuf::PIDControl_PIDSettings * mutable_speed()
::jaiabot::protobuf::PIDControl_PIDSettings * release_speed()
::jaiabot::protobuf::RFDisableOptions * mutable_rf_disable_options()
void CopyFrom(const PIDControl_PIDSettings &from)
void unsafe_arena_set_allocated_echo(::jaiabot::protobuf::Echo *echo)
::jaiabot::protobuf::Bounds * release_bounds()
void set_transit_gps_degraded_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value)
GPSRequirements(GPSRequirements &&from) noexcept
void set_query_engineering_status(bool value)
::PROTOBUF_NAMESPACE_ID::uint32 transit_gps_degraded_fix_checks() const
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
::jaiabot::protobuf::RFDisableOptions * unsafe_arena_release_rf_disable_options()
void MergeFrom(const RFDisableOptions &from)
::jaiabot::protobuf::PIDControl_PIDSettings * unsafe_arena_release_depth()
IMUCalibration(const IMUCalibration &from)
void set_after_dive_pdop_req(double value)
::jaiabot::protobuf::RFDisableOptions * release_rf_disable_options()
PIDControl_PIDSettings & operator=(PIDControl_PIDSettings &&from) noexcept
bool has_transit_gps_degraded_fix_checks() const
void set_time_with_units(Quantity value_w_units)
void unsafe_arena_set_allocated_roll(::jaiabot::protobuf::PIDControl_PIDSettings *roll)
const ::jaiabot::protobuf::PIDControl_PIDSettings & heading_constant() const
GPSRequirements * New() const final
const ::jaiabot::protobuf::RFDisableOptions & rf_disable_options() const
::PROTOBUF_NAMESPACE_ID::int32 rf_disable_timeout_mins() const
void UnsafeArenaSwap(PIDControl_PIDSettings *other)
::jaiabot::protobuf::PIDControl * unsafe_arena_release_pid_control()
void MergeFrom(const PIDControl &from)
void Swap(IMUCalibration *other)
Echo & operator=(Echo &&from) noexcept
RFDisableOptions(::PROTOBUF_NAMESPACE_ID::Arena *arena)
PIDControl * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
void set_bot_status_rate(::jaiabot::protobuf::BotStatusRate value)
void unsafe_arena_set_allocated_bottom_depth_safety_params(::jaiabot::protobuf::BottomDepthSafetyParams *bottom_depth_safety_params)
static const Echo & default_instance()
::jaiabot::protobuf::Bounds * unsafe_arena_release_bounds()
::PROTOBUF_NAMESPACE_ID::uint32 timeout() const
const ::jaiabot::protobuf::PIDControl_PIDSettings & heading() const
GPSRequirements(::PROTOBUF_NAMESPACE_ID::Arena *arena)
friend void swap(GPSRequirements &a, GPSRequirements &b)
void MergeFrom(const PIDControl_PIDSettings &from)
void unsafe_arena_set_allocated_heading(::jaiabot::protobuf::PIDControl_PIDSettings *heading)
void set_bot_id(::PROTOBUF_NAMESPACE_ID::uint32 value)
::jaiabot::protobuf::PIDControl_PIDSettings * unsafe_arena_release_heading_constant()
static const Engineering * internal_default_instance()
Engineering & operator=(const Engineering &from)
static const IMUCalibration * internal_default_instance()
void set_allocated_depth(::jaiabot::protobuf::PIDControl_PIDSettings *depth)
Engineering * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
::PROTOBUF_NAMESPACE_ID::uint32 transit_gps_fix_checks() const
boost::units::time_dimension time_dimension
void set_allocated_bottom_depth_safety_params(::jaiabot::protobuf::BottomDepthSafetyParams *bottom_depth_safety_params)
RFDisableOptions(RFDisableOptions &&from) noexcept
::PROTOBUF_NAMESPACE_ID::uint32 flag() const
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::jaiabot::protobuf::PIDControl_PIDSettings * mutable_roll()
::jaiabot::protobuf::Echo * unsafe_arena_release_echo()
void set_allocated_gps_requirements(::jaiabot::protobuf::GPSRequirements *gps_requirements)
void UnsafeArenaSwap(Engineering *other)
const ::jaiabot::protobuf::BottomDepthSafetyParams & bottom_depth_safety_params() const
static const PIDControl_PIDSettings & default_instance()
PIDControl_PIDSettings * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
::jaiabot::protobuf::PIDControl_PIDSettings * release_depth()
RFDisableOptions(const RFDisableOptions &from)
void set_port_elevator(double value)
::jaiabot::protobuf::EchoState echo_state() const
void set_allocated_echo(::jaiabot::protobuf::Echo *echo)
void UnsafeArenaSwap(PIDControl *other)
void UnsafeArenaSwap(GPSRequirements *other)
IMUCalibration(::PROTOBUF_NAMESPACE_ID::Arena *arena)
PIDControl * New() const final
void set_stbd_elevator(double value)
void MergeFrom(const Echo &from)
static const PIDControl_PIDSettings * internal_default_instance()
Engineering(const Engineering &from)
static const PIDControl * internal_default_instance()
PIDControl_PIDSettings(const PIDControl_PIDSettings &from)
::jaiabot::protobuf::PIDControl_PIDSettings * unsafe_arena_release_speed()
friend void swap(Echo &a, Echo &b)
::jaiabot::protobuf::PIDControl_PIDSettings * mutable_heading_constant()
::jaiabot::protobuf::PIDControl_PIDSettings * unsafe_arena_release_heading()
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
IMUCalibration * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
IMUCalibration & operator=(const IMUCalibration &from)
void set_transit_pdop_req(double value)
void unsafe_arena_set_allocated_speed(::jaiabot::protobuf::PIDControl_PIDSettings *speed)
::jaiabot::protobuf::BottomDepthSafetyParams * release_bottom_depth_safety_params()
void set_after_dive_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value)
void set_allocated_bounds(::jaiabot::protobuf::Bounds *bounds)
const ::jaiabot::protobuf::Echo & echo() const
const ::jaiabot::protobuf::PIDControl_PIDSettings & speed() const
static const RFDisableOptions & default_instance()
Engineering * New() const final
void unsafe_arena_set_allocated_gps_requirements(::jaiabot::protobuf::GPSRequirements *gps_requirements)
Echo & operator=(const Echo &from)
RFDisableOptions * New() const final
void unsafe_arena_set_allocated_imu_cal(::jaiabot::protobuf::IMUCalibration *imu_cal)
static const Engineering & default_instance()
::jaiabot::protobuf::BotStatusRate bot_status_rate() const
::jaiabot::protobuf::PIDControl * mutable_pid_control()
Engineering(Engineering &&from) noexcept
GPSRequirements(const GPSRequirements &from)
GPSRequirements & operator=(GPSRequirements &&from) noexcept
void unsafe_arena_set_allocated_bounds(::jaiabot::protobuf::Bounds *bounds)
IMUCalibration & operator=(IMUCalibration &&from) noexcept
void UnsafeArenaSwap(IMUCalibration *other)
void set_transit_gps_fix_checks(::PROTOBUF_NAMESPACE_ID::uint32 value)
void set_after_dive_hdop_req(double value)
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
boost::units::plane_angle_dimension target_dimension
void CopyFrom(const IMUCalibration &from)
::jaiabot::protobuf::PIDControl_PIDSettings * release_roll()
::jaiabot::protobuf::BottomDepthSafetyParams * unsafe_arena_release_bottom_depth_safety_params()
PIDControl_PIDSettings PIDSettings
void set_allocated_speed(::jaiabot::protobuf::PIDControl_PIDSettings *speed)
IMUCalibration(IMUCalibration &&from) noexcept
Echo * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
::jaiabot::protobuf::PIDControl_PIDSettings * unsafe_arena_release_pitch()
void set_target_with_units(Quantity value_w_units)
const ::jaiabot::protobuf::GPSRequirements & gps_requirements() const
::jaiabot::protobuf::IMUCalibration * unsafe_arena_release_imu_cal()
friend void swap(IMUCalibration &a, IMUCalibration &b)
void unsafe_arena_set_allocated_depth(::jaiabot::protobuf::PIDControl_PIDSettings *depth)
::jaiabot::protobuf::Echo * release_echo()
::PROTOBUF_NAMESPACE_ID::uint32 after_dive_gps_fix_checks() const
void set_allocated_rf_disable_options(::jaiabot::protobuf::RFDisableOptions *rf_disable_options)
const ::jaiabot::protobuf::PIDControl_PIDSettings & pitch() const
void CopyFrom(const Engineering &from)
void set_allocated_imu_cal(::jaiabot::protobuf::IMUCalibration *imu_cal)
const ::jaiabot::protobuf::PIDControl_PIDSettings & roll() const
void Swap(Engineering *other)
void set_allocated_heading(::jaiabot::protobuf::PIDControl_PIDSettings *heading)
void unsafe_arena_set_allocated_pitch(::jaiabot::protobuf::PIDControl_PIDSettings *pitch)
PIDControl_PIDSettings & operator=(const PIDControl_PIDSettings &from)
::PROTOBUF_NAMESPACE_ID::uint64 time() const
::jaiabot::protobuf::PIDControl_PIDSettings * release_pitch()
Engineering & operator=(Engineering &&from) noexcept
void CopyFrom(const PIDControl &from)
static const GPSRequirements & default_instance()
RFDisableOptions * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
void UnsafeArenaSwap(RFDisableOptions *other)
::jaiabot::protobuf::GPSRequirements * mutable_gps_requirements()
void Swap(GPSRequirements *other)
::jaiabot::protobuf::PIDControl_PIDSettings * mutable_pitch()
PIDControl_PIDSettings * New() const final
IMUCalibration * New() const final
boost::units::quantity< timeout_unit, google::protobuf::uint32 > timeout_with_units() const
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
void unsafe_arena_set_allocated_rf_disable_options(::jaiabot::protobuf::RFDisableOptions *rf_disable_options)
PIDControl(const PIDControl &from)
PIDControl & operator=(const PIDControl &from)
boost::units::time_dimension timeout_dimension
Echo(::PROTOBUF_NAMESPACE_ID::Arena *arena)
static const Echo * internal_default_instance()
void MergeFrom(const GPSRequirements &from)
friend void swap(Engineering &a, Engineering &b)
RFDisableOptions & operator=(const RFDisableOptions &from)
const ::jaiabot::protobuf::PIDControl_PIDSettings & depth() const
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
void set_time(::PROTOBUF_NAMESPACE_ID::uint64 value)
::jaiabot::protobuf::GPSRequirements * unsafe_arena_release_gps_requirements()
void set_allocated_roll(::jaiabot::protobuf::PIDControl_PIDSettings *roll)
const ::jaiabot::protobuf::Bounds & bounds() const
boost::units::unit< timeout_dimension, boost::units::si::system > timeout_unit
void set_timeout_with_units(Quantity value_w_units)
friend void swap(RFDisableOptions &a, RFDisableOptions &b)
void set_allocated_pitch(::jaiabot::protobuf::PIDControl_PIDSettings *pitch)
void set_query_bot_status(bool value)
Engineering(::PROTOBUF_NAMESPACE_ID::Arena *arena)
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
static const GPSRequirements * internal_default_instance()
void Swap(PIDControl_PIDSettings *other)
RFDisableOptions & operator=(RFDisableOptions &&from) noexcept
boost::units::quantity< target_unit, double > target_with_units() const
void set_timeout(::PROTOBUF_NAMESPACE_ID::uint32 value)
::jaiabot::protobuf::PIDControl_PIDSettings * release_heading()
::jaiabot::protobuf::PIDControl_PIDSettings * unsafe_arena_release_roll()
void set_flag(::PROTOBUF_NAMESPACE_ID::uint32 value)
friend void swap(PIDControl &a, PIDControl &b)
::jaiabot::protobuf::GPSRequirements * release_gps_requirements()
boost::units::quantity< time_unit, google::protobuf::uint64 > time_with_units() const
void unsafe_arena_set_allocated_pid_control(::jaiabot::protobuf::PIDControl *pid_control)
PIDControl_PIDSettings(::PROTOBUF_NAMESPACE_ID::Arena *arena)
::jaiabot::protobuf::PIDControl_PIDSettings * mutable_depth()
PIDControl(PIDControl &&from) noexcept
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
::jaiabot::protobuf::PIDControl * release_pid_control()
void CopyFrom(const Echo &from)
::PROTOBUF_NAMESPACE_ID::uint32 bot_id() const
PIDControl & operator=(PIDControl &&from) noexcept
::jaiabot::protobuf::PIDControl_PIDSettings * mutable_heading()
void CopyFrom(const RFDisableOptions &from)
bool has_engineering_messages_enabled() const
friend void swap(PIDControl_PIDSettings &a, PIDControl_PIDSettings &b)
void unsafe_arena_set_allocated_heading_constant(::jaiabot::protobuf::PIDControl_PIDSettings *heading_constant)
GPSRequirements * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
void set_allocated_pid_control(::jaiabot::protobuf::PIDControl *pid_control)
::jaiabot::protobuf::PIDControl_PIDSettings * release_heading_constant()
boost::units::unit< target_dimension, boost::units::degree::system > target_unit
void set_allocated_heading_constant(::jaiabot::protobuf::PIDControl_PIDSettings *heading_constant)
PIDControl_PIDSettings(PIDControl_PIDSettings &&from) noexcept
PIDControl(::PROTOBUF_NAMESPACE_ID::Arena *arena)
void CopyFrom(const GPSRequirements &from)
GPSRequirements & operator=(const GPSRequirements &from)
void MergeFrom(const Engineering &from)
static const IMUCalibration & default_instance()
static const RFDisableOptions * internal_default_instance()
void MergeFrom(const IMUCalibration &from)
const ::jaiabot::protobuf::IMUCalibration & imu_cal() const
boost::units::make_scaled_unit< boost::units::unit< time_dimension, boost::units::si::system >, boost::units::scale< 10, boost::units::static_rational<-6 > > >::type time_unit
void Swap(PIDControl *other)
::jaiabot::protobuf::Echo * mutable_echo()
void set_rf_disable_timeout_mins(::PROTOBUF_NAMESPACE_ID::int32 value)
::jaiabot::protobuf::IMUCalibration * release_imu_cal()
void set_echo_state(::jaiabot::protobuf::EchoState value)
::jaiabot::protobuf::Bounds * mutable_bounds()
const ::jaiabot::protobuf::PIDControl & pid_control() const
void Swap(RFDisableOptions *other)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
void set_engineering_messages_enabled(bool value)
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_jaiabot_2fmessages_2fengineering_2eproto
constexpr goby::middleware::Group echo
Definition: groups.h:46
const std::string & BotStatusRate_Name(T enum_t_value)
BottomDepthSafetyParamsDefaultTypeInternal _BottomDepthSafetyParams_default_instance_
PIDControlDefaultTypeInternal _PIDControl_default_instance_
RFDisableOptionsDefaultTypeInternal _RFDisableOptions_default_instance_
bool BotStatusRate_IsValid(int value)
EchoDefaultTypeInternal _Echo_default_instance_
bool EchoState_IsValid(int value)
bool BotStatusRate_Parse(const std::string &name, BotStatusRate *value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * BotStatusRate_descriptor()
EngineeringDefaultTypeInternal _Engineering_default_instance_
constexpr int BotStatusRate_ARRAYSIZE
GPSRequirementsDefaultTypeInternal _GPSRequirements_default_instance_
IMUCalibrationDefaultTypeInternal _IMUCalibration_default_instance_
PIDControl_PIDSettingsDefaultTypeInternal _PIDControl_PIDSettings_default_instance_
constexpr BotStatusRate BotStatusRate_MAX
BoundsDefaultTypeInternal _Bounds_default_instance_
constexpr BotStatusRate BotStatusRate_MIN
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[7] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)