JaiaBot  1.20.0
JaiaBot micro-AUV software
config.pb.h
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: bin/pid_control/config.proto
3 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_bin_2fpid_5fcontrol_2fconfig_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_bin_2fpid_5fcontrol_2fconfig_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/unknown_field_set.h>
35 #include "goby/middleware/protobuf/app_config.pb.h"
36 #include "goby/zeromq/protobuf/interprocess_config.pb.h"
37 #include "goby/middleware/protobuf/transporter_config.pb.h"
40 #include <boost/units/quantity.hpp>
41 #include <boost/units/absolute.hpp>
42 #include <boost/units/dimensionless_type.hpp>
43 #include <boost/units/make_scaled_unit.hpp>
44 
45 #include <boost/units/systems/angle/degrees.hpp>
46 
47 #include <boost/units/systems/si.hpp>
48 // @@protoc_insertion_point(includes)
49 #include <google/protobuf/port_def.inc>
50 #define PROTOBUF_INTERNAL_EXPORT_bin_2fpid_5fcontrol_2fconfig_2eproto
51 PROTOBUF_NAMESPACE_OPEN
52 namespace internal {
53 class AnyMetadata;
54 } // namespace internal
55 PROTOBUF_NAMESPACE_CLOSE
56 
57 // Internal implementation detail -- do not use these members.
59  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
60  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
61  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
62  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
63  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[3]
64  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
65  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
66  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
67  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
68 };
69 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_bin_2fpid_5fcontrol_2fconfig_2eproto;
70 namespace jaiabot {
71 namespace config {
72 class BotPidControl;
73 class BotPidControlDefaultTypeInternal;
74 extern BotPidControlDefaultTypeInternal _BotPidControl_default_instance_;
75 class BotPidControl_PIDGains;
76 class BotPidControl_PIDGainsDefaultTypeInternal;
77 extern BotPidControl_PIDGainsDefaultTypeInternal _BotPidControl_PIDGains_default_instance_;
78 class BotPidControl_ThrottleSpeedEntry;
79 class BotPidControl_ThrottleSpeedEntryDefaultTypeInternal;
80 extern BotPidControl_ThrottleSpeedEntryDefaultTypeInternal _BotPidControl_ThrottleSpeedEntry_default_instance_;
81 } // namespace config
82 } // namespace jaiabot
83 PROTOBUF_NAMESPACE_OPEN
84 template<> ::jaiabot::config::BotPidControl* Arena::CreateMaybeMessage<::jaiabot::config::BotPidControl>(Arena*);
85 template<> ::jaiabot::config::BotPidControl_PIDGains* Arena::CreateMaybeMessage<::jaiabot::config::BotPidControl_PIDGains>(Arena*);
86 template<> ::jaiabot::config::BotPidControl_ThrottleSpeedEntry* Arena::CreateMaybeMessage<::jaiabot::config::BotPidControl_ThrottleSpeedEntry>(Arena*);
87 PROTOBUF_NAMESPACE_CLOSE
88 namespace jaiabot {
89 namespace config {
90 
91 // ===================================================================
92 
93 class BotPidControl_PIDGains PROTOBUF_FINAL :
94  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.config.BotPidControl.PIDGains) */ {
95  public:
96  inline BotPidControl_PIDGains() : BotPidControl_PIDGains(nullptr) {};
98 
99  BotPidControl_PIDGains(const BotPidControl_PIDGains& from);
100  BotPidControl_PIDGains(BotPidControl_PIDGains&& from) noexcept
101  : BotPidControl_PIDGains() {
102  *this = ::std::move(from);
103  }
104 
105  inline BotPidControl_PIDGains& operator=(const BotPidControl_PIDGains& from) {
106  CopyFrom(from);
107  return *this;
108  }
109  inline BotPidControl_PIDGains& operator=(BotPidControl_PIDGains&& from) noexcept {
110  if (GetArena() == from.GetArena()) {
111  if (this != &from) InternalSwap(&from);
112  } else {
113  CopyFrom(from);
114  }
115  return *this;
116  }
117 
118  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
119  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
120  }
121  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
122  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
123  }
124 
125  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
126  return GetDescriptor();
127  }
128  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
129  return GetMetadataStatic().descriptor;
130  }
131  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
132  return GetMetadataStatic().reflection;
133  }
134  static const BotPidControl_PIDGains& default_instance();
135 
136  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
137  static inline const BotPidControl_PIDGains* internal_default_instance() {
138  return reinterpret_cast<const BotPidControl_PIDGains*>(
140  }
141  static constexpr int kIndexInFileMessages =
142  0;
143 
144  friend void swap(BotPidControl_PIDGains& a, BotPidControl_PIDGains& b) {
145  a.Swap(&b);
146  }
147  inline void Swap(BotPidControl_PIDGains* other) {
148  if (other == this) return;
149  if (GetArena() == other->GetArena()) {
150  InternalSwap(other);
151  } else {
152  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
153  }
154  }
155  void UnsafeArenaSwap(BotPidControl_PIDGains* other) {
156  if (other == this) return;
157  GOOGLE_DCHECK(GetArena() == other->GetArena());
158  InternalSwap(other);
159  }
160 
161  // implements Message ----------------------------------------------
162 
163  inline BotPidControl_PIDGains* New() const final {
164  return CreateMaybeMessage<BotPidControl_PIDGains>(nullptr);
165  }
166 
167  BotPidControl_PIDGains* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
168  return CreateMaybeMessage<BotPidControl_PIDGains>(arena);
169  }
170  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
171  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
172  void CopyFrom(const BotPidControl_PIDGains& from);
173  void MergeFrom(const BotPidControl_PIDGains& from);
174  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
175  bool IsInitialized() const final;
176 
177  size_t ByteSizeLong() const final;
178  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
179  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
180  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
181  int GetCachedSize() const final { return _cached_size_.Get(); }
182 
183  private:
184  inline void SharedCtor();
185  inline void SharedDtor();
186  void SetCachedSize(int size) const final;
187  void InternalSwap(BotPidControl_PIDGains* other);
188  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
189  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
190  return "jaiabot.config.BotPidControl.PIDGains";
191  }
192  protected:
193  explicit BotPidControl_PIDGains(::PROTOBUF_NAMESPACE_ID::Arena* arena);
194  private:
195  static void ArenaDtor(void* object);
196  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
197  public:
198 
199  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
200  private:
201  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
202  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_bin_2fpid_5fcontrol_2fconfig_2eproto);
203  return ::descriptor_table_bin_2fpid_5fcontrol_2fconfig_2eproto.file_level_metadata[kIndexInFileMessages];
204  }
205 
206  public:
207 
208  // nested types ----------------------------------------------------
209 
210  // accessors -------------------------------------------------------
211 
212  enum : int {
213  kKpFieldNumber = 1,
214  kKiFieldNumber = 2,
215  kKdFieldNumber = 3,
216  };
217  // required double Kp = 1;
218  bool has_kp() const;
219  private:
220  bool _internal_has_kp() const;
221  public:
222  void clear_kp();
223  double kp() const;
224  void set_kp(double value);
225  private:
226  double _internal_kp() const;
227  void _internal_set_kp(double value);
228  public:
229 
230  // required double Ki = 2;
231  bool has_ki() const;
232  private:
233  bool _internal_has_ki() const;
234  public:
235  void clear_ki();
236  double ki() const;
237  void set_ki(double value);
238  private:
239  double _internal_ki() const;
240  void _internal_set_ki(double value);
241  public:
242 
243  // required double Kd = 3;
244  bool has_kd() const;
245  private:
246  bool _internal_has_kd() const;
247  public:
248  void clear_kd();
249  double kd() const;
250  void set_kd(double value);
251  private:
252  double _internal_kd() const;
253  void _internal_set_kd(double value);
254  public:
255 
256  // @@protoc_insertion_point(class_scope:jaiabot.config.BotPidControl.PIDGains)
257  private:
258  class _Internal;
259 
260  // helper for ByteSizeLong()
261  size_t RequiredFieldsByteSizeFallback() const;
262 
263  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
264  typedef void InternalArenaConstructable_;
265  typedef void DestructorSkippable_;
266  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
267  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
268  double kp_;
269  double ki_;
270  double kd_;
271  friend struct ::TableStruct_bin_2fpid_5fcontrol_2fconfig_2eproto;
272 };
273 // -------------------------------------------------------------------
274 
275 class BotPidControl_ThrottleSpeedEntry PROTOBUF_FINAL :
276  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.config.BotPidControl.ThrottleSpeedEntry) */ {
277  public:
278  inline BotPidControl_ThrottleSpeedEntry() : BotPidControl_ThrottleSpeedEntry(nullptr) {};
280 
281  BotPidControl_ThrottleSpeedEntry(const BotPidControl_ThrottleSpeedEntry& from);
282  BotPidControl_ThrottleSpeedEntry(BotPidControl_ThrottleSpeedEntry&& from) noexcept
283  : BotPidControl_ThrottleSpeedEntry() {
284  *this = ::std::move(from);
285  }
286 
287  inline BotPidControl_ThrottleSpeedEntry& operator=(const BotPidControl_ThrottleSpeedEntry& from) {
288  CopyFrom(from);
289  return *this;
290  }
291  inline BotPidControl_ThrottleSpeedEntry& operator=(BotPidControl_ThrottleSpeedEntry&& from) noexcept {
292  if (GetArena() == from.GetArena()) {
293  if (this != &from) InternalSwap(&from);
294  } else {
295  CopyFrom(from);
296  }
297  return *this;
298  }
299 
300  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
301  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
302  }
303  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
304  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
305  }
306 
307  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
308  return GetDescriptor();
309  }
310  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
311  return GetMetadataStatic().descriptor;
312  }
313  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
314  return GetMetadataStatic().reflection;
315  }
316  static const BotPidControl_ThrottleSpeedEntry& default_instance();
317 
318  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
319  static inline const BotPidControl_ThrottleSpeedEntry* internal_default_instance() {
320  return reinterpret_cast<const BotPidControl_ThrottleSpeedEntry*>(
322  }
323  static constexpr int kIndexInFileMessages =
324  1;
325 
326  friend void swap(BotPidControl_ThrottleSpeedEntry& a, BotPidControl_ThrottleSpeedEntry& b) {
327  a.Swap(&b);
328  }
329  inline void Swap(BotPidControl_ThrottleSpeedEntry* other) {
330  if (other == this) return;
331  if (GetArena() == other->GetArena()) {
332  InternalSwap(other);
333  } else {
334  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
335  }
336  }
337  void UnsafeArenaSwap(BotPidControl_ThrottleSpeedEntry* other) {
338  if (other == this) return;
339  GOOGLE_DCHECK(GetArena() == other->GetArena());
340  InternalSwap(other);
341  }
342 
343  // implements Message ----------------------------------------------
344 
345  inline BotPidControl_ThrottleSpeedEntry* New() const final {
346  return CreateMaybeMessage<BotPidControl_ThrottleSpeedEntry>(nullptr);
347  }
348 
349  BotPidControl_ThrottleSpeedEntry* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
350  return CreateMaybeMessage<BotPidControl_ThrottleSpeedEntry>(arena);
351  }
352  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
353  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
354  void CopyFrom(const BotPidControl_ThrottleSpeedEntry& from);
355  void MergeFrom(const BotPidControl_ThrottleSpeedEntry& from);
356  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
357  bool IsInitialized() const final;
358 
359  size_t ByteSizeLong() const final;
360  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
361  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
362  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
363  int GetCachedSize() const final { return _cached_size_.Get(); }
364 
365  private:
366  inline void SharedCtor();
367  inline void SharedDtor();
368  void SetCachedSize(int size) const final;
369  void InternalSwap(BotPidControl_ThrottleSpeedEntry* other);
370  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
371  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
372  return "jaiabot.config.BotPidControl.ThrottleSpeedEntry";
373  }
374  protected:
375  explicit BotPidControl_ThrottleSpeedEntry(::PROTOBUF_NAMESPACE_ID::Arena* arena);
376  private:
377  static void ArenaDtor(void* object);
378  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
379  public:
380 
381  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
382  private:
383  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
384  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_bin_2fpid_5fcontrol_2fconfig_2eproto);
385  return ::descriptor_table_bin_2fpid_5fcontrol_2fconfig_2eproto.file_level_metadata[kIndexInFileMessages];
386  }
387 
388  public:
389 
390  // nested types ----------------------------------------------------
391 
392  // accessors -------------------------------------------------------
393 
394  enum : int {
395  kSpeedFieldNumber = 1,
396  kThrottleFieldNumber = 2,
397  };
398  // required double speed = 1 [(.dccl.field) = {
399  bool has_speed() const;
400  private:
401  bool _internal_has_speed() const;
402  public:
403  void clear_speed();
404  double speed() const;
405  void set_speed(double value);
406  private:
407  double _internal_speed() const;
408  void _internal_set_speed(double value);
409  public:
410 
411  // required int32 throttle = 2;
412  bool has_throttle() const;
413  private:
414  bool _internal_has_throttle() const;
415  public:
417  ::PROTOBUF_NAMESPACE_ID::int32 throttle() const;
418  void set_throttle(::PROTOBUF_NAMESPACE_ID::int32 value);
419  private:
420  ::PROTOBUF_NAMESPACE_ID::int32 _internal_throttle() const;
421  void _internal_set_throttle(::PROTOBUF_NAMESPACE_ID::int32 value);
422  public:
423 
424  typedef boost::units::velocity_dimension speed_dimension;
425 
426  typedef boost::units::unit<speed_dimension,boost::units::si::system> speed_unit;
427 
428  template<typename Quantity >
429  void set_speed_with_units(Quantity value_w_units)
430  { set_speed(boost::units::quantity<speed_unit,double >(value_w_units).value() ); };
431 
432  template<typename Quantity >
433  Quantity speed_with_units() const
434  { return Quantity(speed() * speed_unit()); };
435 
436  boost::units::quantity< speed_unit,double > speed_with_units() const
437  { return speed_with_units<boost::units::quantity< speed_unit,double > >(); };
438 
439  // @@protoc_insertion_point(class_scope:jaiabot.config.BotPidControl.ThrottleSpeedEntry)
440  private:
441  class _Internal;
442 
443  // helper for ByteSizeLong()
444  size_t RequiredFieldsByteSizeFallback() const;
445 
446  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
447  typedef void InternalArenaConstructable_;
448  typedef void DestructorSkippable_;
449  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
450  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
451  double speed_;
452  ::PROTOBUF_NAMESPACE_ID::int32 throttle_;
453  friend struct ::TableStruct_bin_2fpid_5fcontrol_2fconfig_2eproto;
454 };
455 // -------------------------------------------------------------------
456 
457 class BotPidControl PROTOBUF_FINAL :
458  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.config.BotPidControl) */ {
459  public:
460  inline BotPidControl() : BotPidControl(nullptr) {};
461  virtual ~BotPidControl();
462 
463  BotPidControl(const BotPidControl& from);
464  BotPidControl(BotPidControl&& from) noexcept
465  : BotPidControl() {
466  *this = ::std::move(from);
467  }
468 
469  inline BotPidControl& operator=(const BotPidControl& from) {
470  CopyFrom(from);
471  return *this;
472  }
473  inline BotPidControl& operator=(BotPidControl&& from) noexcept {
474  if (GetArena() == from.GetArena()) {
475  if (this != &from) InternalSwap(&from);
476  } else {
477  CopyFrom(from);
478  }
479  return *this;
480  }
481 
482  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
483  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
484  }
485  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
486  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
487  }
488 
489  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
490  return GetDescriptor();
491  }
492  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
493  return GetMetadataStatic().descriptor;
494  }
495  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
496  return GetMetadataStatic().reflection;
497  }
498  static const BotPidControl& default_instance();
499 
500  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
501  static inline const BotPidControl* internal_default_instance() {
502  return reinterpret_cast<const BotPidControl*>(
504  }
505  static constexpr int kIndexInFileMessages =
506  2;
507 
508  friend void swap(BotPidControl& a, BotPidControl& b) {
509  a.Swap(&b);
510  }
511  inline void Swap(BotPidControl* other) {
512  if (other == this) return;
513  if (GetArena() == other->GetArena()) {
514  InternalSwap(other);
515  } else {
516  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
517  }
518  }
519  void UnsafeArenaSwap(BotPidControl* other) {
520  if (other == this) return;
521  GOOGLE_DCHECK(GetArena() == other->GetArena());
522  InternalSwap(other);
523  }
524 
525  // implements Message ----------------------------------------------
526 
527  inline BotPidControl* New() const final {
528  return CreateMaybeMessage<BotPidControl>(nullptr);
529  }
530 
531  BotPidControl* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
532  return CreateMaybeMessage<BotPidControl>(arena);
533  }
534  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
535  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
536  void CopyFrom(const BotPidControl& from);
537  void MergeFrom(const BotPidControl& from);
538  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
539  bool IsInitialized() const final;
540 
541  size_t ByteSizeLong() const final;
542  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
543  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
544  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
545  int GetCachedSize() const final { return _cached_size_.Get(); }
546 
547  private:
548  inline void SharedCtor();
549  inline void SharedDtor();
550  void SetCachedSize(int size) const final;
551  void InternalSwap(BotPidControl* other);
552  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
553  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
554  return "jaiabot.config.BotPidControl";
555  }
556  protected:
557  explicit BotPidControl(::PROTOBUF_NAMESPACE_ID::Arena* arena);
558  private:
559  static void ArenaDtor(void* object);
560  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
561  public:
562 
563  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
564  private:
565  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
566  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_bin_2fpid_5fcontrol_2fconfig_2eproto);
567  return ::descriptor_table_bin_2fpid_5fcontrol_2fconfig_2eproto.file_level_metadata[kIndexInFileMessages];
568  }
569 
570  public:
571 
572  // nested types ----------------------------------------------------
573 
574  typedef BotPidControl_PIDGains PIDGains;
575  typedef BotPidControl_ThrottleSpeedEntry ThrottleSpeedEntry;
576 
577  // accessors -------------------------------------------------------
578 
579  enum : int {
580  kThrottleTableFieldNumber = 32,
581  kAppFieldNumber = 1,
582  kInterprocessFieldNumber = 2,
583  kThrottleSpeedPidGainsFieldNumber = 30,
584  kThrottleDepthPidGainsFieldNumber = 40,
585  kHeadingPidGainsFieldNumber = 50,
586  kHeadingConstantPidGainsFieldNumber = 51,
587  kRollPidGainsFieldNumber = 60,
588  kPitchPidGainsFieldNumber = 70,
589  kBoundsFieldNumber = 80,
590  kBotIdFieldNumber = 10,
591  kUseThrottleTableForSpeedFieldNumber = 31,
592  kDefaultTimeoutFieldNumber = 20,
593  kFullSpeedWindowFieldNumber = 33,
594  };
595  // repeated .jaiabot.config.BotPidControl.ThrottleSpeedEntry throttle_table = 32;
596  int throttle_table_size() const;
597  private:
598  int _internal_throttle_table_size() const;
599  public:
601  ::jaiabot::config::BotPidControl_ThrottleSpeedEntry* mutable_throttle_table(int index);
602  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::jaiabot::config::BotPidControl_ThrottleSpeedEntry >*
604  private:
605  const ::jaiabot::config::BotPidControl_ThrottleSpeedEntry& _internal_throttle_table(int index) const;
606  ::jaiabot::config::BotPidControl_ThrottleSpeedEntry* _internal_add_throttle_table();
607  public:
608  const ::jaiabot::config::BotPidControl_ThrottleSpeedEntry& throttle_table(int index) const;
609  ::jaiabot::config::BotPidControl_ThrottleSpeedEntry* add_throttle_table();
610  const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::jaiabot::config::BotPidControl_ThrottleSpeedEntry >&
611  throttle_table() const;
612 
613  // optional .goby.middleware.protobuf.AppConfig app = 1;
614  bool has_app() const;
615  private:
616  bool _internal_has_app() const;
617  public:
618  void clear_app();
619  const ::goby::middleware::protobuf::AppConfig& app() const;
620  ::goby::middleware::protobuf::AppConfig* release_app();
621  ::goby::middleware::protobuf::AppConfig* mutable_app();
622  void set_allocated_app(::goby::middleware::protobuf::AppConfig* app);
623  private:
624  const ::goby::middleware::protobuf::AppConfig& _internal_app() const;
625  ::goby::middleware::protobuf::AppConfig* _internal_mutable_app();
626  public:
628  ::goby::middleware::protobuf::AppConfig* app);
629  ::goby::middleware::protobuf::AppConfig* unsafe_arena_release_app();
630 
631  // optional .goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2;
632  bool has_interprocess() const;
633  private:
634  bool _internal_has_interprocess() const;
635  public:
637  const ::goby::zeromq::protobuf::InterProcessPortalConfig& interprocess() const;
638  ::goby::zeromq::protobuf::InterProcessPortalConfig* release_interprocess();
639  ::goby::zeromq::protobuf::InterProcessPortalConfig* mutable_interprocess();
640  void set_allocated_interprocess(::goby::zeromq::protobuf::InterProcessPortalConfig* interprocess);
641  private:
642  const ::goby::zeromq::protobuf::InterProcessPortalConfig& _internal_interprocess() const;
643  ::goby::zeromq::protobuf::InterProcessPortalConfig* _internal_mutable_interprocess();
644  public:
646  ::goby::zeromq::protobuf::InterProcessPortalConfig* interprocess);
647  ::goby::zeromq::protobuf::InterProcessPortalConfig* unsafe_arena_release_interprocess();
648 
649  // optional .jaiabot.config.BotPidControl.PIDGains throttle_speed_pid_gains = 30;
651  private:
652  bool _internal_has_throttle_speed_pid_gains() const;
653  public:
655  const ::jaiabot::config::BotPidControl_PIDGains& throttle_speed_pid_gains() const;
656  ::jaiabot::config::BotPidControl_PIDGains* release_throttle_speed_pid_gains();
657  ::jaiabot::config::BotPidControl_PIDGains* mutable_throttle_speed_pid_gains();
658  void set_allocated_throttle_speed_pid_gains(::jaiabot::config::BotPidControl_PIDGains* throttle_speed_pid_gains);
659  private:
660  const ::jaiabot::config::BotPidControl_PIDGains& _internal_throttle_speed_pid_gains() const;
661  ::jaiabot::config::BotPidControl_PIDGains* _internal_mutable_throttle_speed_pid_gains();
662  public:
664  ::jaiabot::config::BotPidControl_PIDGains* throttle_speed_pid_gains);
665  ::jaiabot::config::BotPidControl_PIDGains* unsafe_arena_release_throttle_speed_pid_gains();
666 
667  // optional .jaiabot.config.BotPidControl.PIDGains throttle_depth_pid_gains = 40;
669  private:
670  bool _internal_has_throttle_depth_pid_gains() const;
671  public:
673  const ::jaiabot::config::BotPidControl_PIDGains& throttle_depth_pid_gains() const;
674  ::jaiabot::config::BotPidControl_PIDGains* release_throttle_depth_pid_gains();
675  ::jaiabot::config::BotPidControl_PIDGains* mutable_throttle_depth_pid_gains();
676  void set_allocated_throttle_depth_pid_gains(::jaiabot::config::BotPidControl_PIDGains* throttle_depth_pid_gains);
677  private:
678  const ::jaiabot::config::BotPidControl_PIDGains& _internal_throttle_depth_pid_gains() const;
679  ::jaiabot::config::BotPidControl_PIDGains* _internal_mutable_throttle_depth_pid_gains();
680  public:
682  ::jaiabot::config::BotPidControl_PIDGains* throttle_depth_pid_gains);
683  ::jaiabot::config::BotPidControl_PIDGains* unsafe_arena_release_throttle_depth_pid_gains();
684 
685  // optional .jaiabot.config.BotPidControl.PIDGains heading_pid_gains = 50;
686  bool has_heading_pid_gains() const;
687  private:
688  bool _internal_has_heading_pid_gains() const;
689  public:
691  const ::jaiabot::config::BotPidControl_PIDGains& heading_pid_gains() const;
692  ::jaiabot::config::BotPidControl_PIDGains* release_heading_pid_gains();
693  ::jaiabot::config::BotPidControl_PIDGains* mutable_heading_pid_gains();
694  void set_allocated_heading_pid_gains(::jaiabot::config::BotPidControl_PIDGains* heading_pid_gains);
695  private:
696  const ::jaiabot::config::BotPidControl_PIDGains& _internal_heading_pid_gains() const;
697  ::jaiabot::config::BotPidControl_PIDGains* _internal_mutable_heading_pid_gains();
698  public:
700  ::jaiabot::config::BotPidControl_PIDGains* heading_pid_gains);
701  ::jaiabot::config::BotPidControl_PIDGains* unsafe_arena_release_heading_pid_gains();
702 
703  // optional .jaiabot.config.BotPidControl.PIDGains heading_constant_pid_gains = 51;
705  private:
706  bool _internal_has_heading_constant_pid_gains() const;
707  public:
709  const ::jaiabot::config::BotPidControl_PIDGains& heading_constant_pid_gains() const;
710  ::jaiabot::config::BotPidControl_PIDGains* release_heading_constant_pid_gains();
711  ::jaiabot::config::BotPidControl_PIDGains* mutable_heading_constant_pid_gains();
712  void set_allocated_heading_constant_pid_gains(::jaiabot::config::BotPidControl_PIDGains* heading_constant_pid_gains);
713  private:
714  const ::jaiabot::config::BotPidControl_PIDGains& _internal_heading_constant_pid_gains() const;
715  ::jaiabot::config::BotPidControl_PIDGains* _internal_mutable_heading_constant_pid_gains();
716  public:
718  ::jaiabot::config::BotPidControl_PIDGains* heading_constant_pid_gains);
719  ::jaiabot::config::BotPidControl_PIDGains* unsafe_arena_release_heading_constant_pid_gains();
720 
721  // optional .jaiabot.config.BotPidControl.PIDGains roll_pid_gains = 60;
722  bool has_roll_pid_gains() const;
723  private:
724  bool _internal_has_roll_pid_gains() const;
725  public:
727  const ::jaiabot::config::BotPidControl_PIDGains& roll_pid_gains() const;
728  ::jaiabot::config::BotPidControl_PIDGains* release_roll_pid_gains();
729  ::jaiabot::config::BotPidControl_PIDGains* mutable_roll_pid_gains();
730  void set_allocated_roll_pid_gains(::jaiabot::config::BotPidControl_PIDGains* roll_pid_gains);
731  private:
732  const ::jaiabot::config::BotPidControl_PIDGains& _internal_roll_pid_gains() const;
733  ::jaiabot::config::BotPidControl_PIDGains* _internal_mutable_roll_pid_gains();
734  public:
736  ::jaiabot::config::BotPidControl_PIDGains* roll_pid_gains);
737  ::jaiabot::config::BotPidControl_PIDGains* unsafe_arena_release_roll_pid_gains();
738 
739  // optional .jaiabot.config.BotPidControl.PIDGains pitch_pid_gains = 70;
740  bool has_pitch_pid_gains() const;
741  private:
742  bool _internal_has_pitch_pid_gains() const;
743  public:
745  const ::jaiabot::config::BotPidControl_PIDGains& pitch_pid_gains() const;
746  ::jaiabot::config::BotPidControl_PIDGains* release_pitch_pid_gains();
747  ::jaiabot::config::BotPidControl_PIDGains* mutable_pitch_pid_gains();
748  void set_allocated_pitch_pid_gains(::jaiabot::config::BotPidControl_PIDGains* pitch_pid_gains);
749  private:
750  const ::jaiabot::config::BotPidControl_PIDGains& _internal_pitch_pid_gains() const;
751  ::jaiabot::config::BotPidControl_PIDGains* _internal_mutable_pitch_pid_gains();
752  public:
754  ::jaiabot::config::BotPidControl_PIDGains* pitch_pid_gains);
755  ::jaiabot::config::BotPidControl_PIDGains* unsafe_arena_release_pitch_pid_gains();
756 
757  // optional .jaiabot.protobuf.Bounds bounds = 80;
758  bool has_bounds() const;
759  private:
760  bool _internal_has_bounds() const;
761  public:
762  void clear_bounds();
763  const ::jaiabot::protobuf::Bounds& bounds() const;
764  ::jaiabot::protobuf::Bounds* release_bounds();
765  ::jaiabot::protobuf::Bounds* mutable_bounds();
766  void set_allocated_bounds(::jaiabot::protobuf::Bounds* bounds);
767  private:
768  const ::jaiabot::protobuf::Bounds& _internal_bounds() const;
769  ::jaiabot::protobuf::Bounds* _internal_mutable_bounds();
770  public:
772  ::jaiabot::protobuf::Bounds* bounds);
773  ::jaiabot::protobuf::Bounds* unsafe_arena_release_bounds();
774 
775  // required int32 bot_id = 10;
776  bool has_bot_id() const;
777  private:
778  bool _internal_has_bot_id() const;
779  public:
780  void clear_bot_id();
781  ::PROTOBUF_NAMESPACE_ID::int32 bot_id() const;
782  void set_bot_id(::PROTOBUF_NAMESPACE_ID::int32 value);
783  private:
784  ::PROTOBUF_NAMESPACE_ID::int32 _internal_bot_id() const;
785  void _internal_set_bot_id(::PROTOBUF_NAMESPACE_ID::int32 value);
786  public:
787 
788  // optional bool use_throttle_table_for_speed = 31;
790  private:
791  bool _internal_has_use_throttle_table_for_speed() const;
792  public:
796  private:
797  bool _internal_use_throttle_table_for_speed() const;
798  void _internal_set_use_throttle_table_for_speed(bool value);
799  public:
800 
801  // optional int32 default_timeout = 20 [default = 5, (.dccl.field) = {
802  bool has_default_timeout() const;
803  private:
804  bool _internal_has_default_timeout() const;
805  public:
807  ::PROTOBUF_NAMESPACE_ID::int32 default_timeout() const;
808  void set_default_timeout(::PROTOBUF_NAMESPACE_ID::int32 value);
809  private:
810  ::PROTOBUF_NAMESPACE_ID::int32 _internal_default_timeout() const;
811  void _internal_set_default_timeout(::PROTOBUF_NAMESPACE_ID::int32 value);
812  public:
813 
814  // optional double full_speed_window = 33 [default = 1, (.dccl.field) = {
815  bool has_full_speed_window() const;
816  private:
817  bool _internal_has_full_speed_window() const;
818  public:
820  double full_speed_window() const;
821  void set_full_speed_window(double value);
822  private:
823  double _internal_full_speed_window() const;
824  void _internal_set_full_speed_window(double value);
825  public:
826 
827  typedef boost::units::derived_dimension< boost::units::time_base_dimension,1 >::type default_timeout_dimension;
828 
829  typedef boost::units::unit<default_timeout_dimension,boost::units::si::system> default_timeout_unit;
830 
831  template<typename Quantity >
832  void set_default_timeout_with_units(Quantity value_w_units)
833  { set_default_timeout(boost::units::quantity<default_timeout_unit,google::protobuf::int32 >(value_w_units).value() ); };
834 
835  template<typename Quantity >
836  Quantity default_timeout_with_units() const
837  { return Quantity(default_timeout() * default_timeout_unit()); };
838 
839  boost::units::quantity< default_timeout_unit,google::protobuf::int32 > default_timeout_with_units() const
840  { return default_timeout_with_units<boost::units::quantity< default_timeout_unit,google::protobuf::int32 > >(); };
841 
842  typedef boost::units::plane_angle_dimension full_speed_window_dimension;
843 
844  typedef boost::units::unit<full_speed_window_dimension,boost::units::degree::system> full_speed_window_unit;
845 
846  template<typename Quantity >
847  void set_full_speed_window_with_units(Quantity value_w_units)
848  { set_full_speed_window(boost::units::quantity<full_speed_window_unit,double >(value_w_units).value() ); };
849 
850  template<typename Quantity >
852  { return Quantity(full_speed_window() * full_speed_window_unit()); };
853 
854  boost::units::quantity< full_speed_window_unit,double > full_speed_window_with_units() const
855  { return full_speed_window_with_units<boost::units::quantity< full_speed_window_unit,double > >(); };
856 
857  // @@protoc_insertion_point(class_scope:jaiabot.config.BotPidControl)
858  private:
859  class _Internal;
860 
861  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
862  typedef void InternalArenaConstructable_;
863  typedef void DestructorSkippable_;
864  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
865  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
866  ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::jaiabot::config::BotPidControl_ThrottleSpeedEntry > throttle_table_;
867  ::goby::middleware::protobuf::AppConfig* app_;
868  ::goby::zeromq::protobuf::InterProcessPortalConfig* interprocess_;
869  ::jaiabot::config::BotPidControl_PIDGains* throttle_speed_pid_gains_;
870  ::jaiabot::config::BotPidControl_PIDGains* throttle_depth_pid_gains_;
871  ::jaiabot::config::BotPidControl_PIDGains* heading_pid_gains_;
872  ::jaiabot::config::BotPidControl_PIDGains* heading_constant_pid_gains_;
873  ::jaiabot::config::BotPidControl_PIDGains* roll_pid_gains_;
874  ::jaiabot::config::BotPidControl_PIDGains* pitch_pid_gains_;
875  ::jaiabot::protobuf::Bounds* bounds_;
876  ::PROTOBUF_NAMESPACE_ID::int32 bot_id_;
877  bool use_throttle_table_for_speed_;
878  ::PROTOBUF_NAMESPACE_ID::int32 default_timeout_;
879  double full_speed_window_;
880  friend struct ::TableStruct_bin_2fpid_5fcontrol_2fconfig_2eproto;
881 };
882 // ===================================================================
883 
884 
885 // ===================================================================
886 
887 #ifdef __GNUC__
888  #pragma GCC diagnostic push
889  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
890 #endif // __GNUC__
891 // BotPidControl_PIDGains
892 
893 // required double Kp = 1;
894 inline bool BotPidControl_PIDGains::_internal_has_kp() const {
895  bool value = (_has_bits_[0] & 0x00000001u) != 0;
896  return value;
897 }
898 inline bool BotPidControl_PIDGains::has_kp() const {
899  return _internal_has_kp();
900 }
901 inline void BotPidControl_PIDGains::clear_kp() {
902  kp_ = 0;
903  _has_bits_[0] &= ~0x00000001u;
904 }
905 inline double BotPidControl_PIDGains::_internal_kp() const {
906  return kp_;
907 }
908 inline double BotPidControl_PIDGains::kp() const {
909  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.PIDGains.Kp)
910  return _internal_kp();
911 }
912 inline void BotPidControl_PIDGains::_internal_set_kp(double value) {
913  _has_bits_[0] |= 0x00000001u;
914  kp_ = value;
915 }
916 inline void BotPidControl_PIDGains::set_kp(double value) {
917  _internal_set_kp(value);
918  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.PIDGains.Kp)
919 }
920 
921 // required double Ki = 2;
922 inline bool BotPidControl_PIDGains::_internal_has_ki() const {
923  bool value = (_has_bits_[0] & 0x00000002u) != 0;
924  return value;
925 }
926 inline bool BotPidControl_PIDGains::has_ki() const {
927  return _internal_has_ki();
928 }
929 inline void BotPidControl_PIDGains::clear_ki() {
930  ki_ = 0;
931  _has_bits_[0] &= ~0x00000002u;
932 }
933 inline double BotPidControl_PIDGains::_internal_ki() const {
934  return ki_;
935 }
936 inline double BotPidControl_PIDGains::ki() const {
937  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.PIDGains.Ki)
938  return _internal_ki();
939 }
940 inline void BotPidControl_PIDGains::_internal_set_ki(double value) {
941  _has_bits_[0] |= 0x00000002u;
942  ki_ = value;
943 }
944 inline void BotPidControl_PIDGains::set_ki(double value) {
945  _internal_set_ki(value);
946  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.PIDGains.Ki)
947 }
948 
949 // required double Kd = 3;
950 inline bool BotPidControl_PIDGains::_internal_has_kd() const {
951  bool value = (_has_bits_[0] & 0x00000004u) != 0;
952  return value;
953 }
954 inline bool BotPidControl_PIDGains::has_kd() const {
955  return _internal_has_kd();
956 }
957 inline void BotPidControl_PIDGains::clear_kd() {
958  kd_ = 0;
959  _has_bits_[0] &= ~0x00000004u;
960 }
961 inline double BotPidControl_PIDGains::_internal_kd() const {
962  return kd_;
963 }
964 inline double BotPidControl_PIDGains::kd() const {
965  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.PIDGains.Kd)
966  return _internal_kd();
967 }
968 inline void BotPidControl_PIDGains::_internal_set_kd(double value) {
969  _has_bits_[0] |= 0x00000004u;
970  kd_ = value;
971 }
972 inline void BotPidControl_PIDGains::set_kd(double value) {
973  _internal_set_kd(value);
974  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.PIDGains.Kd)
975 }
976 
977 // -------------------------------------------------------------------
978 
979 // BotPidControl_ThrottleSpeedEntry
980 
981 // required double speed = 1 [(.dccl.field) = {
982 inline bool BotPidControl_ThrottleSpeedEntry::_internal_has_speed() const {
983  bool value = (_has_bits_[0] & 0x00000001u) != 0;
984  return value;
985 }
986 inline bool BotPidControl_ThrottleSpeedEntry::has_speed() const {
987  return _internal_has_speed();
988 }
989 inline void BotPidControl_ThrottleSpeedEntry::clear_speed() {
990  speed_ = 0;
991  _has_bits_[0] &= ~0x00000001u;
992 }
993 inline double BotPidControl_ThrottleSpeedEntry::_internal_speed() const {
994  return speed_;
995 }
996 inline double BotPidControl_ThrottleSpeedEntry::speed() const {
997  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.ThrottleSpeedEntry.speed)
998  return _internal_speed();
999 }
1000 inline void BotPidControl_ThrottleSpeedEntry::_internal_set_speed(double value) {
1001  _has_bits_[0] |= 0x00000001u;
1002  speed_ = value;
1003 }
1004 inline void BotPidControl_ThrottleSpeedEntry::set_speed(double value) {
1005  _internal_set_speed(value);
1006  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.ThrottleSpeedEntry.speed)
1007 }
1008 
1009 // required int32 throttle = 2;
1010 inline bool BotPidControl_ThrottleSpeedEntry::_internal_has_throttle() const {
1011  bool value = (_has_bits_[0] & 0x00000002u) != 0;
1012  return value;
1013 }
1014 inline bool BotPidControl_ThrottleSpeedEntry::has_throttle() const {
1015  return _internal_has_throttle();
1016 }
1017 inline void BotPidControl_ThrottleSpeedEntry::clear_throttle() {
1018  throttle_ = 0;
1019  _has_bits_[0] &= ~0x00000002u;
1020 }
1021 inline ::PROTOBUF_NAMESPACE_ID::int32 BotPidControl_ThrottleSpeedEntry::_internal_throttle() const {
1022  return throttle_;
1023 }
1024 inline ::PROTOBUF_NAMESPACE_ID::int32 BotPidControl_ThrottleSpeedEntry::throttle() const {
1025  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.ThrottleSpeedEntry.throttle)
1026  return _internal_throttle();
1027 }
1028 inline void BotPidControl_ThrottleSpeedEntry::_internal_set_throttle(::PROTOBUF_NAMESPACE_ID::int32 value) {
1029  _has_bits_[0] |= 0x00000002u;
1030  throttle_ = value;
1031 }
1032 inline void BotPidControl_ThrottleSpeedEntry::set_throttle(::PROTOBUF_NAMESPACE_ID::int32 value) {
1033  _internal_set_throttle(value);
1034  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.ThrottleSpeedEntry.throttle)
1035 }
1036 
1037 // -------------------------------------------------------------------
1038 
1039 // BotPidControl
1040 
1041 // optional .goby.middleware.protobuf.AppConfig app = 1;
1042 inline bool BotPidControl::_internal_has_app() const {
1043  bool value = (_has_bits_[0] & 0x00000001u) != 0;
1044  PROTOBUF_ASSUME(!value || app_ != nullptr);
1045  return value;
1046 }
1047 inline bool BotPidControl::has_app() const {
1048  return _internal_has_app();
1049 }
1050 inline const ::goby::middleware::protobuf::AppConfig& BotPidControl::_internal_app() const {
1051  const ::goby::middleware::protobuf::AppConfig* p = app_;
1052  return p != nullptr ? *p : *reinterpret_cast<const ::goby::middleware::protobuf::AppConfig*>(
1053  &::goby::middleware::protobuf::_AppConfig_default_instance_);
1054 }
1055 inline const ::goby::middleware::protobuf::AppConfig& BotPidControl::app() const {
1056  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.app)
1057  return _internal_app();
1058 }
1059 inline void BotPidControl::unsafe_arena_set_allocated_app(
1060  ::goby::middleware::protobuf::AppConfig* app) {
1061  if (GetArena() == nullptr) {
1062  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(app_);
1063  }
1064  app_ = app;
1065  if (app) {
1066  _has_bits_[0] |= 0x00000001u;
1067  } else {
1068  _has_bits_[0] &= ~0x00000001u;
1069  }
1070  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.app)
1071 }
1072 inline ::goby::middleware::protobuf::AppConfig* BotPidControl::release_app() {
1073  auto temp = unsafe_arena_release_app();
1074  if (GetArena() != nullptr) {
1075  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1076  }
1077  return temp;
1078 }
1079 inline ::goby::middleware::protobuf::AppConfig* BotPidControl::unsafe_arena_release_app() {
1080  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.app)
1081  _has_bits_[0] &= ~0x00000001u;
1082  ::goby::middleware::protobuf::AppConfig* temp = app_;
1083  app_ = nullptr;
1084  return temp;
1085 }
1086 inline ::goby::middleware::protobuf::AppConfig* BotPidControl::_internal_mutable_app() {
1087  _has_bits_[0] |= 0x00000001u;
1088  if (app_ == nullptr) {
1089  auto* p = CreateMaybeMessage<::goby::middleware::protobuf::AppConfig>(GetArena());
1090  app_ = p;
1091  }
1092  return app_;
1093 }
1094 inline ::goby::middleware::protobuf::AppConfig* BotPidControl::mutable_app() {
1095  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.app)
1096  return _internal_mutable_app();
1097 }
1098 inline void BotPidControl::set_allocated_app(::goby::middleware::protobuf::AppConfig* app) {
1099  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1100  if (message_arena == nullptr) {
1101  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(app_);
1102  }
1103  if (app) {
1104  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1105  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(app)->GetArena();
1106  if (message_arena != submessage_arena) {
1107  app = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1108  message_arena, app, submessage_arena);
1109  }
1110  _has_bits_[0] |= 0x00000001u;
1111  } else {
1112  _has_bits_[0] &= ~0x00000001u;
1113  }
1114  app_ = app;
1115  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.app)
1116 }
1117 
1118 // optional .goby.zeromq.protobuf.InterProcessPortalConfig interprocess = 2;
1119 inline bool BotPidControl::_internal_has_interprocess() const {
1120  bool value = (_has_bits_[0] & 0x00000002u) != 0;
1121  PROTOBUF_ASSUME(!value || interprocess_ != nullptr);
1122  return value;
1123 }
1124 inline bool BotPidControl::has_interprocess() const {
1125  return _internal_has_interprocess();
1126 }
1127 inline const ::goby::zeromq::protobuf::InterProcessPortalConfig& BotPidControl::_internal_interprocess() const {
1128  const ::goby::zeromq::protobuf::InterProcessPortalConfig* p = interprocess_;
1129  return p != nullptr ? *p : *reinterpret_cast<const ::goby::zeromq::protobuf::InterProcessPortalConfig*>(
1130  &::goby::zeromq::protobuf::_InterProcessPortalConfig_default_instance_);
1131 }
1132 inline const ::goby::zeromq::protobuf::InterProcessPortalConfig& BotPidControl::interprocess() const {
1133  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.interprocess)
1134  return _internal_interprocess();
1135 }
1136 inline void BotPidControl::unsafe_arena_set_allocated_interprocess(
1137  ::goby::zeromq::protobuf::InterProcessPortalConfig* interprocess) {
1138  if (GetArena() == nullptr) {
1139  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(interprocess_);
1140  }
1141  interprocess_ = interprocess;
1142  if (interprocess) {
1143  _has_bits_[0] |= 0x00000002u;
1144  } else {
1145  _has_bits_[0] &= ~0x00000002u;
1146  }
1147  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.interprocess)
1148 }
1149 inline ::goby::zeromq::protobuf::InterProcessPortalConfig* BotPidControl::release_interprocess() {
1150  auto temp = unsafe_arena_release_interprocess();
1151  if (GetArena() != nullptr) {
1152  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1153  }
1154  return temp;
1155 }
1156 inline ::goby::zeromq::protobuf::InterProcessPortalConfig* BotPidControl::unsafe_arena_release_interprocess() {
1157  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.interprocess)
1158  _has_bits_[0] &= ~0x00000002u;
1159  ::goby::zeromq::protobuf::InterProcessPortalConfig* temp = interprocess_;
1160  interprocess_ = nullptr;
1161  return temp;
1162 }
1163 inline ::goby::zeromq::protobuf::InterProcessPortalConfig* BotPidControl::_internal_mutable_interprocess() {
1164  _has_bits_[0] |= 0x00000002u;
1165  if (interprocess_ == nullptr) {
1166  auto* p = CreateMaybeMessage<::goby::zeromq::protobuf::InterProcessPortalConfig>(GetArena());
1167  interprocess_ = p;
1168  }
1169  return interprocess_;
1170 }
1171 inline ::goby::zeromq::protobuf::InterProcessPortalConfig* BotPidControl::mutable_interprocess() {
1172  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.interprocess)
1173  return _internal_mutable_interprocess();
1174 }
1175 inline void BotPidControl::set_allocated_interprocess(::goby::zeromq::protobuf::InterProcessPortalConfig* interprocess) {
1176  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1177  if (message_arena == nullptr) {
1178  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(interprocess_);
1179  }
1180  if (interprocess) {
1181  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1182  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(interprocess)->GetArena();
1183  if (message_arena != submessage_arena) {
1184  interprocess = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1185  message_arena, interprocess, submessage_arena);
1186  }
1187  _has_bits_[0] |= 0x00000002u;
1188  } else {
1189  _has_bits_[0] &= ~0x00000002u;
1190  }
1191  interprocess_ = interprocess;
1192  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.interprocess)
1193 }
1194 
1195 // required int32 bot_id = 10;
1196 inline bool BotPidControl::_internal_has_bot_id() const {
1197  bool value = (_has_bits_[0] & 0x00000200u) != 0;
1198  return value;
1199 }
1200 inline bool BotPidControl::has_bot_id() const {
1201  return _internal_has_bot_id();
1202 }
1203 inline void BotPidControl::clear_bot_id() {
1204  bot_id_ = 0;
1205  _has_bits_[0] &= ~0x00000200u;
1206 }
1207 inline ::PROTOBUF_NAMESPACE_ID::int32 BotPidControl::_internal_bot_id() const {
1208  return bot_id_;
1209 }
1210 inline ::PROTOBUF_NAMESPACE_ID::int32 BotPidControl::bot_id() const {
1211  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.bot_id)
1212  return _internal_bot_id();
1213 }
1214 inline void BotPidControl::_internal_set_bot_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
1215  _has_bits_[0] |= 0x00000200u;
1216  bot_id_ = value;
1217 }
1218 inline void BotPidControl::set_bot_id(::PROTOBUF_NAMESPACE_ID::int32 value) {
1219  _internal_set_bot_id(value);
1220  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.bot_id)
1221 }
1222 
1223 // optional int32 default_timeout = 20 [default = 5, (.dccl.field) = {
1224 inline bool BotPidControl::_internal_has_default_timeout() const {
1225  bool value = (_has_bits_[0] & 0x00000800u) != 0;
1226  return value;
1227 }
1228 inline bool BotPidControl::has_default_timeout() const {
1229  return _internal_has_default_timeout();
1230 }
1231 inline void BotPidControl::clear_default_timeout() {
1232  default_timeout_ = 5;
1233  _has_bits_[0] &= ~0x00000800u;
1234 }
1235 inline ::PROTOBUF_NAMESPACE_ID::int32 BotPidControl::_internal_default_timeout() const {
1236  return default_timeout_;
1237 }
1238 inline ::PROTOBUF_NAMESPACE_ID::int32 BotPidControl::default_timeout() const {
1239  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.default_timeout)
1240  return _internal_default_timeout();
1241 }
1242 inline void BotPidControl::_internal_set_default_timeout(::PROTOBUF_NAMESPACE_ID::int32 value) {
1243  _has_bits_[0] |= 0x00000800u;
1244  default_timeout_ = value;
1245 }
1246 inline void BotPidControl::set_default_timeout(::PROTOBUF_NAMESPACE_ID::int32 value) {
1247  _internal_set_default_timeout(value);
1248  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.default_timeout)
1249 }
1250 
1251 // optional .jaiabot.config.BotPidControl.PIDGains throttle_speed_pid_gains = 30;
1252 inline bool BotPidControl::_internal_has_throttle_speed_pid_gains() const {
1253  bool value = (_has_bits_[0] & 0x00000004u) != 0;
1254  PROTOBUF_ASSUME(!value || throttle_speed_pid_gains_ != nullptr);
1255  return value;
1256 }
1257 inline bool BotPidControl::has_throttle_speed_pid_gains() const {
1258  return _internal_has_throttle_speed_pid_gains();
1259 }
1260 inline void BotPidControl::clear_throttle_speed_pid_gains() {
1261  if (throttle_speed_pid_gains_ != nullptr) throttle_speed_pid_gains_->Clear();
1262  _has_bits_[0] &= ~0x00000004u;
1263 }
1264 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::_internal_throttle_speed_pid_gains() const {
1265  const ::jaiabot::config::BotPidControl_PIDGains* p = throttle_speed_pid_gains_;
1266  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::config::BotPidControl_PIDGains*>(
1268 }
1269 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::throttle_speed_pid_gains() const {
1270  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.throttle_speed_pid_gains)
1271  return _internal_throttle_speed_pid_gains();
1272 }
1273 inline void BotPidControl::unsafe_arena_set_allocated_throttle_speed_pid_gains(
1274  ::jaiabot::config::BotPidControl_PIDGains* throttle_speed_pid_gains) {
1275  if (GetArena() == nullptr) {
1276  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(throttle_speed_pid_gains_);
1277  }
1278  throttle_speed_pid_gains_ = throttle_speed_pid_gains;
1279  if (throttle_speed_pid_gains) {
1280  _has_bits_[0] |= 0x00000004u;
1281  } else {
1282  _has_bits_[0] &= ~0x00000004u;
1283  }
1284  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.throttle_speed_pid_gains)
1285 }
1286 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::release_throttle_speed_pid_gains() {
1287  auto temp = unsafe_arena_release_throttle_speed_pid_gains();
1288  if (GetArena() != nullptr) {
1289  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1290  }
1291  return temp;
1292 }
1293 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::unsafe_arena_release_throttle_speed_pid_gains() {
1294  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.throttle_speed_pid_gains)
1295  _has_bits_[0] &= ~0x00000004u;
1296  ::jaiabot::config::BotPidControl_PIDGains* temp = throttle_speed_pid_gains_;
1297  throttle_speed_pid_gains_ = nullptr;
1298  return temp;
1299 }
1300 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::_internal_mutable_throttle_speed_pid_gains() {
1301  _has_bits_[0] |= 0x00000004u;
1302  if (throttle_speed_pid_gains_ == nullptr) {
1303  auto* p = CreateMaybeMessage<::jaiabot::config::BotPidControl_PIDGains>(GetArena());
1304  throttle_speed_pid_gains_ = p;
1305  }
1306  return throttle_speed_pid_gains_;
1307 }
1308 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::mutable_throttle_speed_pid_gains() {
1309  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.throttle_speed_pid_gains)
1310  return _internal_mutable_throttle_speed_pid_gains();
1311 }
1312 inline void BotPidControl::set_allocated_throttle_speed_pid_gains(::jaiabot::config::BotPidControl_PIDGains* throttle_speed_pid_gains) {
1313  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1314  if (message_arena == nullptr) {
1315  delete throttle_speed_pid_gains_;
1316  }
1317  if (throttle_speed_pid_gains) {
1318  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1319  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(throttle_speed_pid_gains);
1320  if (message_arena != submessage_arena) {
1321  throttle_speed_pid_gains = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1322  message_arena, throttle_speed_pid_gains, submessage_arena);
1323  }
1324  _has_bits_[0] |= 0x00000004u;
1325  } else {
1326  _has_bits_[0] &= ~0x00000004u;
1327  }
1328  throttle_speed_pid_gains_ = throttle_speed_pid_gains;
1329  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.throttle_speed_pid_gains)
1330 }
1331 
1332 // optional .jaiabot.config.BotPidControl.PIDGains throttle_depth_pid_gains = 40;
1333 inline bool BotPidControl::_internal_has_throttle_depth_pid_gains() const {
1334  bool value = (_has_bits_[0] & 0x00000008u) != 0;
1335  PROTOBUF_ASSUME(!value || throttle_depth_pid_gains_ != nullptr);
1336  return value;
1337 }
1338 inline bool BotPidControl::has_throttle_depth_pid_gains() const {
1339  return _internal_has_throttle_depth_pid_gains();
1340 }
1341 inline void BotPidControl::clear_throttle_depth_pid_gains() {
1342  if (throttle_depth_pid_gains_ != nullptr) throttle_depth_pid_gains_->Clear();
1343  _has_bits_[0] &= ~0x00000008u;
1344 }
1345 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::_internal_throttle_depth_pid_gains() const {
1346  const ::jaiabot::config::BotPidControl_PIDGains* p = throttle_depth_pid_gains_;
1347  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::config::BotPidControl_PIDGains*>(
1349 }
1350 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::throttle_depth_pid_gains() const {
1351  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.throttle_depth_pid_gains)
1352  return _internal_throttle_depth_pid_gains();
1353 }
1354 inline void BotPidControl::unsafe_arena_set_allocated_throttle_depth_pid_gains(
1355  ::jaiabot::config::BotPidControl_PIDGains* throttle_depth_pid_gains) {
1356  if (GetArena() == nullptr) {
1357  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(throttle_depth_pid_gains_);
1358  }
1359  throttle_depth_pid_gains_ = throttle_depth_pid_gains;
1360  if (throttle_depth_pid_gains) {
1361  _has_bits_[0] |= 0x00000008u;
1362  } else {
1363  _has_bits_[0] &= ~0x00000008u;
1364  }
1365  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.throttle_depth_pid_gains)
1366 }
1367 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::release_throttle_depth_pid_gains() {
1368  auto temp = unsafe_arena_release_throttle_depth_pid_gains();
1369  if (GetArena() != nullptr) {
1370  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1371  }
1372  return temp;
1373 }
1374 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::unsafe_arena_release_throttle_depth_pid_gains() {
1375  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.throttle_depth_pid_gains)
1376  _has_bits_[0] &= ~0x00000008u;
1377  ::jaiabot::config::BotPidControl_PIDGains* temp = throttle_depth_pid_gains_;
1378  throttle_depth_pid_gains_ = nullptr;
1379  return temp;
1380 }
1381 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::_internal_mutable_throttle_depth_pid_gains() {
1382  _has_bits_[0] |= 0x00000008u;
1383  if (throttle_depth_pid_gains_ == nullptr) {
1384  auto* p = CreateMaybeMessage<::jaiabot::config::BotPidControl_PIDGains>(GetArena());
1385  throttle_depth_pid_gains_ = p;
1386  }
1387  return throttle_depth_pid_gains_;
1388 }
1389 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::mutable_throttle_depth_pid_gains() {
1390  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.throttle_depth_pid_gains)
1391  return _internal_mutable_throttle_depth_pid_gains();
1392 }
1393 inline void BotPidControl::set_allocated_throttle_depth_pid_gains(::jaiabot::config::BotPidControl_PIDGains* throttle_depth_pid_gains) {
1394  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1395  if (message_arena == nullptr) {
1396  delete throttle_depth_pid_gains_;
1397  }
1398  if (throttle_depth_pid_gains) {
1399  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1400  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(throttle_depth_pid_gains);
1401  if (message_arena != submessage_arena) {
1402  throttle_depth_pid_gains = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1403  message_arena, throttle_depth_pid_gains, submessage_arena);
1404  }
1405  _has_bits_[0] |= 0x00000008u;
1406  } else {
1407  _has_bits_[0] &= ~0x00000008u;
1408  }
1409  throttle_depth_pid_gains_ = throttle_depth_pid_gains;
1410  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.throttle_depth_pid_gains)
1411 }
1412 
1413 // optional .jaiabot.config.BotPidControl.PIDGains heading_pid_gains = 50;
1414 inline bool BotPidControl::_internal_has_heading_pid_gains() const {
1415  bool value = (_has_bits_[0] & 0x00000010u) != 0;
1416  PROTOBUF_ASSUME(!value || heading_pid_gains_ != nullptr);
1417  return value;
1418 }
1419 inline bool BotPidControl::has_heading_pid_gains() const {
1420  return _internal_has_heading_pid_gains();
1421 }
1422 inline void BotPidControl::clear_heading_pid_gains() {
1423  if (heading_pid_gains_ != nullptr) heading_pid_gains_->Clear();
1424  _has_bits_[0] &= ~0x00000010u;
1425 }
1426 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::_internal_heading_pid_gains() const {
1427  const ::jaiabot::config::BotPidControl_PIDGains* p = heading_pid_gains_;
1428  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::config::BotPidControl_PIDGains*>(
1430 }
1431 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::heading_pid_gains() const {
1432  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.heading_pid_gains)
1433  return _internal_heading_pid_gains();
1434 }
1435 inline void BotPidControl::unsafe_arena_set_allocated_heading_pid_gains(
1436  ::jaiabot::config::BotPidControl_PIDGains* heading_pid_gains) {
1437  if (GetArena() == nullptr) {
1438  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(heading_pid_gains_);
1439  }
1440  heading_pid_gains_ = heading_pid_gains;
1441  if (heading_pid_gains) {
1442  _has_bits_[0] |= 0x00000010u;
1443  } else {
1444  _has_bits_[0] &= ~0x00000010u;
1445  }
1446  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.heading_pid_gains)
1447 }
1448 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::release_heading_pid_gains() {
1449  auto temp = unsafe_arena_release_heading_pid_gains();
1450  if (GetArena() != nullptr) {
1451  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1452  }
1453  return temp;
1454 }
1455 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::unsafe_arena_release_heading_pid_gains() {
1456  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.heading_pid_gains)
1457  _has_bits_[0] &= ~0x00000010u;
1458  ::jaiabot::config::BotPidControl_PIDGains* temp = heading_pid_gains_;
1459  heading_pid_gains_ = nullptr;
1460  return temp;
1461 }
1462 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::_internal_mutable_heading_pid_gains() {
1463  _has_bits_[0] |= 0x00000010u;
1464  if (heading_pid_gains_ == nullptr) {
1465  auto* p = CreateMaybeMessage<::jaiabot::config::BotPidControl_PIDGains>(GetArena());
1466  heading_pid_gains_ = p;
1467  }
1468  return heading_pid_gains_;
1469 }
1470 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::mutable_heading_pid_gains() {
1471  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.heading_pid_gains)
1472  return _internal_mutable_heading_pid_gains();
1473 }
1474 inline void BotPidControl::set_allocated_heading_pid_gains(::jaiabot::config::BotPidControl_PIDGains* heading_pid_gains) {
1475  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1476  if (message_arena == nullptr) {
1477  delete heading_pid_gains_;
1478  }
1479  if (heading_pid_gains) {
1480  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1481  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(heading_pid_gains);
1482  if (message_arena != submessage_arena) {
1483  heading_pid_gains = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1484  message_arena, heading_pid_gains, submessage_arena);
1485  }
1486  _has_bits_[0] |= 0x00000010u;
1487  } else {
1488  _has_bits_[0] &= ~0x00000010u;
1489  }
1490  heading_pid_gains_ = heading_pid_gains;
1491  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.heading_pid_gains)
1492 }
1493 
1494 // optional .jaiabot.config.BotPidControl.PIDGains heading_constant_pid_gains = 51;
1495 inline bool BotPidControl::_internal_has_heading_constant_pid_gains() const {
1496  bool value = (_has_bits_[0] & 0x00000020u) != 0;
1497  PROTOBUF_ASSUME(!value || heading_constant_pid_gains_ != nullptr);
1498  return value;
1499 }
1500 inline bool BotPidControl::has_heading_constant_pid_gains() const {
1501  return _internal_has_heading_constant_pid_gains();
1502 }
1503 inline void BotPidControl::clear_heading_constant_pid_gains() {
1504  if (heading_constant_pid_gains_ != nullptr) heading_constant_pid_gains_->Clear();
1505  _has_bits_[0] &= ~0x00000020u;
1506 }
1507 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::_internal_heading_constant_pid_gains() const {
1508  const ::jaiabot::config::BotPidControl_PIDGains* p = heading_constant_pid_gains_;
1509  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::config::BotPidControl_PIDGains*>(
1511 }
1512 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::heading_constant_pid_gains() const {
1513  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.heading_constant_pid_gains)
1514  return _internal_heading_constant_pid_gains();
1515 }
1516 inline void BotPidControl::unsafe_arena_set_allocated_heading_constant_pid_gains(
1517  ::jaiabot::config::BotPidControl_PIDGains* heading_constant_pid_gains) {
1518  if (GetArena() == nullptr) {
1519  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(heading_constant_pid_gains_);
1520  }
1521  heading_constant_pid_gains_ = heading_constant_pid_gains;
1522  if (heading_constant_pid_gains) {
1523  _has_bits_[0] |= 0x00000020u;
1524  } else {
1525  _has_bits_[0] &= ~0x00000020u;
1526  }
1527  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.heading_constant_pid_gains)
1528 }
1529 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::release_heading_constant_pid_gains() {
1530  auto temp = unsafe_arena_release_heading_constant_pid_gains();
1531  if (GetArena() != nullptr) {
1532  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1533  }
1534  return temp;
1535 }
1536 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::unsafe_arena_release_heading_constant_pid_gains() {
1537  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.heading_constant_pid_gains)
1538  _has_bits_[0] &= ~0x00000020u;
1539  ::jaiabot::config::BotPidControl_PIDGains* temp = heading_constant_pid_gains_;
1540  heading_constant_pid_gains_ = nullptr;
1541  return temp;
1542 }
1543 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::_internal_mutable_heading_constant_pid_gains() {
1544  _has_bits_[0] |= 0x00000020u;
1545  if (heading_constant_pid_gains_ == nullptr) {
1546  auto* p = CreateMaybeMessage<::jaiabot::config::BotPidControl_PIDGains>(GetArena());
1547  heading_constant_pid_gains_ = p;
1548  }
1549  return heading_constant_pid_gains_;
1550 }
1551 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::mutable_heading_constant_pid_gains() {
1552  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.heading_constant_pid_gains)
1553  return _internal_mutable_heading_constant_pid_gains();
1554 }
1555 inline void BotPidControl::set_allocated_heading_constant_pid_gains(::jaiabot::config::BotPidControl_PIDGains* heading_constant_pid_gains) {
1556  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1557  if (message_arena == nullptr) {
1558  delete heading_constant_pid_gains_;
1559  }
1560  if (heading_constant_pid_gains) {
1561  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1562  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(heading_constant_pid_gains);
1563  if (message_arena != submessage_arena) {
1564  heading_constant_pid_gains = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1565  message_arena, heading_constant_pid_gains, submessage_arena);
1566  }
1567  _has_bits_[0] |= 0x00000020u;
1568  } else {
1569  _has_bits_[0] &= ~0x00000020u;
1570  }
1571  heading_constant_pid_gains_ = heading_constant_pid_gains;
1572  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.heading_constant_pid_gains)
1573 }
1574 
1575 // optional .jaiabot.config.BotPidControl.PIDGains roll_pid_gains = 60;
1576 inline bool BotPidControl::_internal_has_roll_pid_gains() const {
1577  bool value = (_has_bits_[0] & 0x00000040u) != 0;
1578  PROTOBUF_ASSUME(!value || roll_pid_gains_ != nullptr);
1579  return value;
1580 }
1581 inline bool BotPidControl::has_roll_pid_gains() const {
1582  return _internal_has_roll_pid_gains();
1583 }
1584 inline void BotPidControl::clear_roll_pid_gains() {
1585  if (roll_pid_gains_ != nullptr) roll_pid_gains_->Clear();
1586  _has_bits_[0] &= ~0x00000040u;
1587 }
1588 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::_internal_roll_pid_gains() const {
1589  const ::jaiabot::config::BotPidControl_PIDGains* p = roll_pid_gains_;
1590  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::config::BotPidControl_PIDGains*>(
1592 }
1593 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::roll_pid_gains() const {
1594  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.roll_pid_gains)
1595  return _internal_roll_pid_gains();
1596 }
1597 inline void BotPidControl::unsafe_arena_set_allocated_roll_pid_gains(
1598  ::jaiabot::config::BotPidControl_PIDGains* roll_pid_gains) {
1599  if (GetArena() == nullptr) {
1600  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(roll_pid_gains_);
1601  }
1602  roll_pid_gains_ = roll_pid_gains;
1603  if (roll_pid_gains) {
1604  _has_bits_[0] |= 0x00000040u;
1605  } else {
1606  _has_bits_[0] &= ~0x00000040u;
1607  }
1608  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.roll_pid_gains)
1609 }
1610 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::release_roll_pid_gains() {
1611  auto temp = unsafe_arena_release_roll_pid_gains();
1612  if (GetArena() != nullptr) {
1613  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1614  }
1615  return temp;
1616 }
1617 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::unsafe_arena_release_roll_pid_gains() {
1618  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.roll_pid_gains)
1619  _has_bits_[0] &= ~0x00000040u;
1620  ::jaiabot::config::BotPidControl_PIDGains* temp = roll_pid_gains_;
1621  roll_pid_gains_ = nullptr;
1622  return temp;
1623 }
1624 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::_internal_mutable_roll_pid_gains() {
1625  _has_bits_[0] |= 0x00000040u;
1626  if (roll_pid_gains_ == nullptr) {
1627  auto* p = CreateMaybeMessage<::jaiabot::config::BotPidControl_PIDGains>(GetArena());
1628  roll_pid_gains_ = p;
1629  }
1630  return roll_pid_gains_;
1631 }
1632 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::mutable_roll_pid_gains() {
1633  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.roll_pid_gains)
1634  return _internal_mutable_roll_pid_gains();
1635 }
1636 inline void BotPidControl::set_allocated_roll_pid_gains(::jaiabot::config::BotPidControl_PIDGains* roll_pid_gains) {
1637  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1638  if (message_arena == nullptr) {
1639  delete roll_pid_gains_;
1640  }
1641  if (roll_pid_gains) {
1642  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1643  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(roll_pid_gains);
1644  if (message_arena != submessage_arena) {
1645  roll_pid_gains = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1646  message_arena, roll_pid_gains, submessage_arena);
1647  }
1648  _has_bits_[0] |= 0x00000040u;
1649  } else {
1650  _has_bits_[0] &= ~0x00000040u;
1651  }
1652  roll_pid_gains_ = roll_pid_gains;
1653  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.roll_pid_gains)
1654 }
1655 
1656 // optional .jaiabot.config.BotPidControl.PIDGains pitch_pid_gains = 70;
1657 inline bool BotPidControl::_internal_has_pitch_pid_gains() const {
1658  bool value = (_has_bits_[0] & 0x00000080u) != 0;
1659  PROTOBUF_ASSUME(!value || pitch_pid_gains_ != nullptr);
1660  return value;
1661 }
1662 inline bool BotPidControl::has_pitch_pid_gains() const {
1663  return _internal_has_pitch_pid_gains();
1664 }
1665 inline void BotPidControl::clear_pitch_pid_gains() {
1666  if (pitch_pid_gains_ != nullptr) pitch_pid_gains_->Clear();
1667  _has_bits_[0] &= ~0x00000080u;
1668 }
1669 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::_internal_pitch_pid_gains() const {
1670  const ::jaiabot::config::BotPidControl_PIDGains* p = pitch_pid_gains_;
1671  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::config::BotPidControl_PIDGains*>(
1673 }
1674 inline const ::jaiabot::config::BotPidControl_PIDGains& BotPidControl::pitch_pid_gains() const {
1675  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.pitch_pid_gains)
1676  return _internal_pitch_pid_gains();
1677 }
1678 inline void BotPidControl::unsafe_arena_set_allocated_pitch_pid_gains(
1679  ::jaiabot::config::BotPidControl_PIDGains* pitch_pid_gains) {
1680  if (GetArena() == nullptr) {
1681  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(pitch_pid_gains_);
1682  }
1683  pitch_pid_gains_ = pitch_pid_gains;
1684  if (pitch_pid_gains) {
1685  _has_bits_[0] |= 0x00000080u;
1686  } else {
1687  _has_bits_[0] &= ~0x00000080u;
1688  }
1689  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.pitch_pid_gains)
1690 }
1691 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::release_pitch_pid_gains() {
1692  auto temp = unsafe_arena_release_pitch_pid_gains();
1693  if (GetArena() != nullptr) {
1694  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1695  }
1696  return temp;
1697 }
1698 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::unsafe_arena_release_pitch_pid_gains() {
1699  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.pitch_pid_gains)
1700  _has_bits_[0] &= ~0x00000080u;
1701  ::jaiabot::config::BotPidControl_PIDGains* temp = pitch_pid_gains_;
1702  pitch_pid_gains_ = nullptr;
1703  return temp;
1704 }
1705 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::_internal_mutable_pitch_pid_gains() {
1706  _has_bits_[0] |= 0x00000080u;
1707  if (pitch_pid_gains_ == nullptr) {
1708  auto* p = CreateMaybeMessage<::jaiabot::config::BotPidControl_PIDGains>(GetArena());
1709  pitch_pid_gains_ = p;
1710  }
1711  return pitch_pid_gains_;
1712 }
1713 inline ::jaiabot::config::BotPidControl_PIDGains* BotPidControl::mutable_pitch_pid_gains() {
1714  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.pitch_pid_gains)
1715  return _internal_mutable_pitch_pid_gains();
1716 }
1717 inline void BotPidControl::set_allocated_pitch_pid_gains(::jaiabot::config::BotPidControl_PIDGains* pitch_pid_gains) {
1718  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1719  if (message_arena == nullptr) {
1720  delete pitch_pid_gains_;
1721  }
1722  if (pitch_pid_gains) {
1723  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1724  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(pitch_pid_gains);
1725  if (message_arena != submessage_arena) {
1726  pitch_pid_gains = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1727  message_arena, pitch_pid_gains, submessage_arena);
1728  }
1729  _has_bits_[0] |= 0x00000080u;
1730  } else {
1731  _has_bits_[0] &= ~0x00000080u;
1732  }
1733  pitch_pid_gains_ = pitch_pid_gains;
1734  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.pitch_pid_gains)
1735 }
1736 
1737 // optional bool use_throttle_table_for_speed = 31;
1738 inline bool BotPidControl::_internal_has_use_throttle_table_for_speed() const {
1739  bool value = (_has_bits_[0] & 0x00000400u) != 0;
1740  return value;
1741 }
1742 inline bool BotPidControl::has_use_throttle_table_for_speed() const {
1743  return _internal_has_use_throttle_table_for_speed();
1744 }
1745 inline void BotPidControl::clear_use_throttle_table_for_speed() {
1746  use_throttle_table_for_speed_ = false;
1747  _has_bits_[0] &= ~0x00000400u;
1748 }
1749 inline bool BotPidControl::_internal_use_throttle_table_for_speed() const {
1750  return use_throttle_table_for_speed_;
1751 }
1752 inline bool BotPidControl::use_throttle_table_for_speed() const {
1753  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.use_throttle_table_for_speed)
1754  return _internal_use_throttle_table_for_speed();
1755 }
1756 inline void BotPidControl::_internal_set_use_throttle_table_for_speed(bool value) {
1757  _has_bits_[0] |= 0x00000400u;
1758  use_throttle_table_for_speed_ = value;
1759 }
1760 inline void BotPidControl::set_use_throttle_table_for_speed(bool value) {
1761  _internal_set_use_throttle_table_for_speed(value);
1762  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.use_throttle_table_for_speed)
1763 }
1764 
1765 // repeated .jaiabot.config.BotPidControl.ThrottleSpeedEntry throttle_table = 32;
1766 inline int BotPidControl::_internal_throttle_table_size() const {
1767  return throttle_table_.size();
1768 }
1769 inline int BotPidControl::throttle_table_size() const {
1770  return _internal_throttle_table_size();
1771 }
1772 inline void BotPidControl::clear_throttle_table() {
1773  throttle_table_.Clear();
1774 }
1775 inline ::jaiabot::config::BotPidControl_ThrottleSpeedEntry* BotPidControl::mutable_throttle_table(int index) {
1776  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.throttle_table)
1777  return throttle_table_.Mutable(index);
1778 }
1779 inline ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::jaiabot::config::BotPidControl_ThrottleSpeedEntry >*
1780 BotPidControl::mutable_throttle_table() {
1781  // @@protoc_insertion_point(field_mutable_list:jaiabot.config.BotPidControl.throttle_table)
1782  return &throttle_table_;
1783 }
1784 inline const ::jaiabot::config::BotPidControl_ThrottleSpeedEntry& BotPidControl::_internal_throttle_table(int index) const {
1785  return throttle_table_.Get(index);
1786 }
1787 inline const ::jaiabot::config::BotPidControl_ThrottleSpeedEntry& BotPidControl::throttle_table(int index) const {
1788  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.throttle_table)
1789  return _internal_throttle_table(index);
1790 }
1791 inline ::jaiabot::config::BotPidControl_ThrottleSpeedEntry* BotPidControl::_internal_add_throttle_table() {
1792  return throttle_table_.Add();
1793 }
1794 inline ::jaiabot::config::BotPidControl_ThrottleSpeedEntry* BotPidControl::add_throttle_table() {
1795  // @@protoc_insertion_point(field_add:jaiabot.config.BotPidControl.throttle_table)
1796  return _internal_add_throttle_table();
1797 }
1798 inline const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::jaiabot::config::BotPidControl_ThrottleSpeedEntry >&
1799 BotPidControl::throttle_table() const {
1800  // @@protoc_insertion_point(field_list:jaiabot.config.BotPidControl.throttle_table)
1801  return throttle_table_;
1802 }
1803 
1804 // optional double full_speed_window = 33 [default = 1, (.dccl.field) = {
1805 inline bool BotPidControl::_internal_has_full_speed_window() const {
1806  bool value = (_has_bits_[0] & 0x00001000u) != 0;
1807  return value;
1808 }
1809 inline bool BotPidControl::has_full_speed_window() const {
1810  return _internal_has_full_speed_window();
1811 }
1812 inline void BotPidControl::clear_full_speed_window() {
1813  full_speed_window_ = 1;
1814  _has_bits_[0] &= ~0x00001000u;
1815 }
1816 inline double BotPidControl::_internal_full_speed_window() const {
1817  return full_speed_window_;
1818 }
1819 inline double BotPidControl::full_speed_window() const {
1820  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.full_speed_window)
1821  return _internal_full_speed_window();
1822 }
1823 inline void BotPidControl::_internal_set_full_speed_window(double value) {
1824  _has_bits_[0] |= 0x00001000u;
1825  full_speed_window_ = value;
1826 }
1827 inline void BotPidControl::set_full_speed_window(double value) {
1828  _internal_set_full_speed_window(value);
1829  // @@protoc_insertion_point(field_set:jaiabot.config.BotPidControl.full_speed_window)
1830 }
1831 
1832 // optional .jaiabot.protobuf.Bounds bounds = 80;
1833 inline bool BotPidControl::_internal_has_bounds() const {
1834  bool value = (_has_bits_[0] & 0x00000100u) != 0;
1835  PROTOBUF_ASSUME(!value || bounds_ != nullptr);
1836  return value;
1837 }
1838 inline bool BotPidControl::has_bounds() const {
1839  return _internal_has_bounds();
1840 }
1841 inline const ::jaiabot::protobuf::Bounds& BotPidControl::_internal_bounds() const {
1842  const ::jaiabot::protobuf::Bounds* p = bounds_;
1843  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::Bounds*>(
1845 }
1846 inline const ::jaiabot::protobuf::Bounds& BotPidControl::bounds() const {
1847  // @@protoc_insertion_point(field_get:jaiabot.config.BotPidControl.bounds)
1848  return _internal_bounds();
1849 }
1850 inline void BotPidControl::unsafe_arena_set_allocated_bounds(
1851  ::jaiabot::protobuf::Bounds* bounds) {
1852  if (GetArena() == nullptr) {
1853  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(bounds_);
1854  }
1855  bounds_ = bounds;
1856  if (bounds) {
1857  _has_bits_[0] |= 0x00000100u;
1858  } else {
1859  _has_bits_[0] &= ~0x00000100u;
1860  }
1861  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.config.BotPidControl.bounds)
1862 }
1863 inline ::jaiabot::protobuf::Bounds* BotPidControl::release_bounds() {
1864  auto temp = unsafe_arena_release_bounds();
1865  if (GetArena() != nullptr) {
1866  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
1867  }
1868  return temp;
1869 }
1870 inline ::jaiabot::protobuf::Bounds* BotPidControl::unsafe_arena_release_bounds() {
1871  // @@protoc_insertion_point(field_release:jaiabot.config.BotPidControl.bounds)
1872  _has_bits_[0] &= ~0x00000100u;
1873  ::jaiabot::protobuf::Bounds* temp = bounds_;
1874  bounds_ = nullptr;
1875  return temp;
1876 }
1877 inline ::jaiabot::protobuf::Bounds* BotPidControl::_internal_mutable_bounds() {
1878  _has_bits_[0] |= 0x00000100u;
1879  if (bounds_ == nullptr) {
1880  auto* p = CreateMaybeMessage<::jaiabot::protobuf::Bounds>(GetArena());
1881  bounds_ = p;
1882  }
1883  return bounds_;
1884 }
1885 inline ::jaiabot::protobuf::Bounds* BotPidControl::mutable_bounds() {
1886  // @@protoc_insertion_point(field_mutable:jaiabot.config.BotPidControl.bounds)
1887  return _internal_mutable_bounds();
1888 }
1889 inline void BotPidControl::set_allocated_bounds(::jaiabot::protobuf::Bounds* bounds) {
1890  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
1891  if (message_arena == nullptr) {
1892  delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(bounds_);
1893  }
1894  if (bounds) {
1895  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
1896  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(bounds)->GetArena();
1897  if (message_arena != submessage_arena) {
1898  bounds = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
1899  message_arena, bounds, submessage_arena);
1900  }
1901  _has_bits_[0] |= 0x00000100u;
1902  } else {
1903  _has_bits_[0] &= ~0x00000100u;
1904  }
1905  bounds_ = bounds;
1906  // @@protoc_insertion_point(field_set_allocated:jaiabot.config.BotPidControl.bounds)
1907 }
1908 
1909 #ifdef __GNUC__
1910  #pragma GCC diagnostic pop
1911 #endif // __GNUC__
1912 // -------------------------------------------------------------------
1913 
1914 // -------------------------------------------------------------------
1915 
1916 
1917 // @@protoc_insertion_point(namespace_scope)
1918 
1919 } // namespace config
1920 } // namespace jaiabot
1921 
1922 // @@protoc_insertion_point(global_scope)
1923 
1924 #include <google/protobuf/port_undef.inc>
1925 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_bin_2fpid_5fcontrol_2fconfig_2eproto
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
Definition: config.pb.h:121
static const BotPidControl_PIDGains * internal_default_instance()
Definition: config.pb.h:137
::jaiabot::protobuf::Bounds * unsafe_arena_release_bounds()
::jaiabot::config::BotPidControl_PIDGains * mutable_roll_pid_gains()
void set_speed_with_units(Quantity value_w_units)
Definition: config.pb.h:429
BotPidControl(const BotPidControl &from)
BotPidControl_ThrottleSpeedEntry(::PROTOBUF_NAMESPACE_ID::Arena *arena)
::jaiabot::config::BotPidControl_PIDGains * unsafe_arena_release_pitch_pid_gains()
bool has_use_throttle_table_for_speed() const
BotPidControl_ThrottleSpeedEntry(BotPidControl_ThrottleSpeedEntry &&from) noexcept
Definition: config.pb.h:282
::jaiabot::config::BotPidControl_PIDGains * release_throttle_speed_pid_gains()
void set_default_timeout(::PROTOBUF_NAMESPACE_ID::int32 value)
const ::jaiabot::config::BotPidControl_PIDGains & pitch_pid_gains() const
static const BotPidControl_ThrottleSpeedEntry & default_instance()
BotPidControl & operator=(const BotPidControl &from)
Definition: config.pb.h:469
BotPidControl_ThrottleSpeedEntry ThrottleSpeedEntry
Definition: config.pb.h:575
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const BotPidControl * internal_default_instance()
Definition: config.pb.h:501
void unsafe_arena_set_allocated_bounds(::jaiabot::protobuf::Bounds *bounds)
const ::goby::middleware::protobuf::AppConfig & app() const
friend void swap(BotPidControl_ThrottleSpeedEntry &a, BotPidControl_ThrottleSpeedEntry &b)
Definition: config.pb.h:326
::jaiabot::config::BotPidControl_PIDGains * mutable_heading_constant_pid_gains()
void CopyFrom(const BotPidControl_PIDGains &from)
bool has_heading_constant_pid_gains() const
void unsafe_arena_set_allocated_heading_constant_pid_gains(::jaiabot::config::BotPidControl_PIDGains *heading_constant_pid_gains)
void set_full_speed_window(double value)
BotPidControl_ThrottleSpeedEntry & operator=(const BotPidControl_ThrottleSpeedEntry &from)
Definition: config.pb.h:287
::jaiabot::config::BotPidControl_PIDGains * mutable_heading_pid_gains()
BotPidControl * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: config.pb.h:531
::goby::middleware::protobuf::AppConfig * unsafe_arena_release_app()
::jaiabot::config::BotPidControl_PIDGains * mutable_pitch_pid_gains()
::goby::middleware::protobuf::AppConfig * release_app()
void set_use_throttle_table_for_speed(bool value)
::jaiabot::config::BotPidControl_PIDGains * release_heading_pid_gains()
::jaiabot::config::BotPidControl_ThrottleSpeedEntry * mutable_throttle_table(int index)
void set_allocated_pitch_pid_gains(::jaiabot::config::BotPidControl_PIDGains *pitch_pid_gains)
void Swap(BotPidControl_PIDGains *other)
Definition: config.pb.h:147
BotPidControl_PIDGains * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: config.pb.h:167
const ::goby::zeromq::protobuf::InterProcessPortalConfig & interprocess() const
boost::units::unit< default_timeout_dimension, boost::units::si::system > default_timeout_unit
Definition: config.pb.h:829
void Swap(BotPidControl *other)
Definition: config.pb.h:511
BotPidControl_PIDGains PIDGains
Definition: config.pb.h:574
::PROTOBUF_NAMESPACE_ID::int32 throttle() const
::jaiabot::config::BotPidControl_PIDGains * unsafe_arena_release_heading_constant_pid_gains()
Quantity default_timeout_with_units() const
Definition: config.pb.h:836
void set_allocated_bounds(::jaiabot::protobuf::Bounds *bounds)
::jaiabot::config::BotPidControl_PIDGains * mutable_throttle_speed_pid_gains()
::jaiabot::config::BotPidControl_ThrottleSpeedEntry * add_throttle_table()
const ::jaiabot::config::BotPidControl_PIDGains & heading_pid_gains() const
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
Definition: config.pb.h:131
BotPidControl_PIDGains(BotPidControl_PIDGains &&from) noexcept
Definition: config.pb.h:100
void unsafe_arena_set_allocated_interprocess(::goby::zeromq::protobuf::InterProcessPortalConfig *interprocess)
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
::jaiabot::config::BotPidControl_PIDGains * unsafe_arena_release_heading_pid_gains()
boost::units::derived_dimension< boost::units::time_base_dimension, 1 >::type default_timeout_dimension
Definition: config.pb.h:827
void set_bot_id(::PROTOBUF_NAMESPACE_ID::int32 value)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
Definition: config.pb.h:128
::PROTOBUF_NAMESPACE_ID::int32 bot_id() const
void UnsafeArenaSwap(BotPidControl_PIDGains *other)
Definition: config.pb.h:155
void MergeFrom(const BotPidControl &from)
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
Definition: config.pb.h:118
BotPidControl_ThrottleSpeedEntry * New() const final
Definition: config.pb.h:345
::goby::zeromq::protobuf::InterProcessPortalConfig * release_interprocess()
void set_full_speed_window_with_units(Quantity value_w_units)
Definition: config.pb.h:847
void unsafe_arena_set_allocated_heading_pid_gains(::jaiabot::config::BotPidControl_PIDGains *heading_pid_gains)
::goby::zeromq::protobuf::InterProcessPortalConfig * mutable_interprocess()
boost::units::unit< speed_dimension, boost::units::si::system > speed_unit
Definition: config.pb.h:426
::jaiabot::config::BotPidControl_PIDGains * mutable_throttle_depth_pid_gains()
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const BotPidControl_ThrottleSpeedEntry * internal_default_instance()
Definition: config.pb.h:319
BotPidControl_ThrottleSpeedEntry & operator=(BotPidControl_ThrottleSpeedEntry &&from) noexcept
Definition: config.pb.h:291
void set_allocated_throttle_speed_pid_gains(::jaiabot::config::BotPidControl_PIDGains *throttle_speed_pid_gains)
::jaiabot::protobuf::Bounds * mutable_bounds()
void CopyFrom(const BotPidControl &from)
void Swap(BotPidControl_ThrottleSpeedEntry *other)
Definition: config.pb.h:329
::jaiabot::config::BotPidControl_PIDGains * release_heading_constant_pid_gains()
void MergeFrom(const BotPidControl_PIDGains &from)
BotPidControl_PIDGains & operator=(BotPidControl_PIDGains &&from) noexcept
Definition: config.pb.h:109
const ::jaiabot::config::BotPidControl_PIDGains & throttle_speed_pid_gains() const
BotPidControl(::PROTOBUF_NAMESPACE_ID::Arena *arena)
friend void swap(BotPidControl_PIDGains &a, BotPidControl_PIDGains &b)
Definition: config.pb.h:144
BotPidControl_PIDGains(::PROTOBUF_NAMESPACE_ID::Arena *arena)
void set_allocated_heading_pid_gains(::jaiabot::config::BotPidControl_PIDGains *heading_pid_gains)
boost::units::unit< full_speed_window_dimension, boost::units::degree::system > full_speed_window_unit
Definition: config.pb.h:844
::jaiabot::config::BotPidControl_PIDGains * unsafe_arena_release_roll_pid_gains()
BotPidControl & operator=(BotPidControl &&from) noexcept
Definition: config.pb.h:473
::PROTOBUF_NAMESPACE_ID::int32 default_timeout() const
const ::jaiabot::config::BotPidControl_ThrottleSpeedEntry & throttle_table(int index) const
boost::units::quantity< speed_unit, double > speed_with_units() const
Definition: config.pb.h:436
::goby::middleware::protobuf::AppConfig * mutable_app()
::jaiabot::config::BotPidControl_PIDGains * unsafe_arena_release_throttle_speed_pid_gains()
void set_allocated_heading_constant_pid_gains(::jaiabot::config::BotPidControl_PIDGains *heading_constant_pid_gains)
void UnsafeArenaSwap(BotPidControl_ThrottleSpeedEntry *other)
Definition: config.pb.h:337
const ::jaiabot::config::BotPidControl_PIDGains & heading_constant_pid_gains() const
bool has_throttle_depth_pid_gains() const
void set_speed(double value)
void UnsafeArenaSwap(BotPidControl *other)
Definition: config.pb.h:519
friend void swap(BotPidControl &a, BotPidControl &b)
Definition: config.pb.h:508
void unsafe_arena_set_allocated_throttle_speed_pid_gains(::jaiabot::config::BotPidControl_PIDGains *throttle_speed_pid_gains)
bool has_throttle_speed_pid_gains() const
BotPidControl_PIDGains * New() const final
Definition: config.pb.h:163
boost::units::quantity< default_timeout_unit, google::protobuf::int32 > default_timeout_with_units() const
Definition: config.pb.h:839
::jaiabot::config::BotPidControl_PIDGains * release_roll_pid_gains()
BotPidControl(BotPidControl &&from) noexcept
Definition: config.pb.h:464
::jaiabot::config::BotPidControl_PIDGains * release_pitch_pid_gains()
bool use_throttle_table_for_speed() const
void set_allocated_interprocess(::goby::zeromq::protobuf::InterProcessPortalConfig *interprocess)
const ::jaiabot::config::BotPidControl_PIDGains & roll_pid_gains() const
void unsafe_arena_set_allocated_throttle_depth_pid_gains(::jaiabot::config::BotPidControl_PIDGains *throttle_depth_pid_gains)
void unsafe_arena_set_allocated_app(::goby::middleware::protobuf::AppConfig *app)
BotPidControl_ThrottleSpeedEntry * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: config.pb.h:349
boost::units::velocity_dimension speed_dimension
Definition: config.pb.h:424
::jaiabot::protobuf::Bounds * release_bounds()
void set_allocated_app(::goby::middleware::protobuf::AppConfig *app)
boost::units::quantity< full_speed_window_unit, double > full_speed_window_with_units() const
Definition: config.pb.h:854
boost::units::plane_angle_dimension full_speed_window_dimension
Definition: config.pb.h:840
void set_default_timeout_with_units(Quantity value_w_units)
Definition: config.pb.h:832
void set_allocated_roll_pid_gains(::jaiabot::config::BotPidControl_PIDGains *roll_pid_gains)
::goby::zeromq::protobuf::InterProcessPortalConfig * unsafe_arena_release_interprocess()
const ::jaiabot::protobuf::Bounds & bounds() const
void CopyFrom(const BotPidControl_ThrottleSpeedEntry &from)
BotPidControl_ThrottleSpeedEntry(const BotPidControl_ThrottleSpeedEntry &from)
const ::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::jaiabot::config::BotPidControl_ThrottleSpeedEntry > & throttle_table() const
static const BotPidControl_PIDGains & default_instance()
::jaiabot::config::BotPidControl_PIDGains * release_throttle_depth_pid_gains()
static const BotPidControl & default_instance()
void unsafe_arena_set_allocated_roll_pid_gains(::jaiabot::config::BotPidControl_PIDGains *roll_pid_gains)
BotPidControl * New() const final
Definition: config.pb.h:527
const ::jaiabot::config::BotPidControl_PIDGains & throttle_depth_pid_gains() const
void MergeFrom(const BotPidControl_ThrottleSpeedEntry &from)
::jaiabot::config::BotPidControl_PIDGains * unsafe_arena_release_throttle_depth_pid_gains()
Quantity full_speed_window_with_units() const
Definition: config.pb.h:851
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
Definition: config.pb.h:125
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
::PROTOBUF_NAMESPACE_ID::RepeatedPtrField< ::jaiabot::config::BotPidControl_ThrottleSpeedEntry > * mutable_throttle_table()
BotPidControl_PIDGains(const BotPidControl_PIDGains &from)
void unsafe_arena_set_allocated_pitch_pid_gains(::jaiabot::config::BotPidControl_PIDGains *pitch_pid_gains)
Quantity speed_with_units() const
Definition: config.pb.h:433
BotPidControl_PIDGains & operator=(const BotPidControl_PIDGains &from)
Definition: config.pb.h:105
void set_allocated_throttle_depth_pid_gains(::jaiabot::config::BotPidControl_PIDGains *throttle_depth_pid_gains)
void set_throttle(::PROTOBUF_NAMESPACE_ID::int32 value)
BotPidControl_PIDGainsDefaultTypeInternal _BotPidControl_PIDGains_default_instance_
BotPidControl_ThrottleSpeedEntryDefaultTypeInternal _BotPidControl_ThrottleSpeedEntry_default_instance_
BotPidControlDefaultTypeInternal _BotPidControl_default_instance_
BoundsDefaultTypeInternal _Bounds_default_instance_
extern ::PROTOBUF_NAMESPACE_ID::internal::ExtensionIdentifier< ::goby::acomms::protobuf::DriverConfig, ::PROTOBUF_NAMESPACE_ID::internal::MessageTypeTraits< ::jaiabot::udp::protobuf::Config >, 11, false > config
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_bin_2fpid_5fcontrol_2fconfig_2eproto
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: config.pb.h:67
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]
Definition: config.pb.h:65
static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
Definition: config.pb.h:66
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[3] PROTOBUF_SECTION_VARIABLE(protodesc_cold)