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