JaiaBot  1.19.0
JaiaBot micro-AUV software
imu.pb.h
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: jaiabot/messages/imu.proto
3 
4 #ifndef GOOGLE_PROTOBUF_INCLUDED_jaiabot_2fmessages_2fimu_2eproto
5 #define GOOGLE_PROTOBUF_INCLUDED_jaiabot_2fmessages_2fimu_2eproto
6 
7 #include <limits>
8 #include <string>
9 
10 #include <google/protobuf/port_def.inc>
11 #if PROTOBUF_VERSION < 3012000
12 #error This file was generated by a newer version of protoc which is
13 #error incompatible with your Protocol Buffer headers. Please update
14 #error your headers.
15 #endif
16 #if 3012004 < PROTOBUF_MIN_PROTOC_VERSION
17 #error This file was generated by an older version of protoc which is
18 #error incompatible with your Protocol Buffer headers. Please
19 #error regenerate this file with a newer version of protoc.
20 #endif
21 
22 #include <google/protobuf/port_undef.inc>
23 #include <google/protobuf/io/coded_stream.h>
24 #include <google/protobuf/arena.h>
25 #include <google/protobuf/arenastring.h>
26 #include <google/protobuf/generated_message_table_driven.h>
27 #include <google/protobuf/generated_message_util.h>
28 #include <google/protobuf/inlined_string_field.h>
29 #include <google/protobuf/metadata_lite.h>
30 #include <google/protobuf/generated_message_reflection.h>
31 #include <google/protobuf/message.h>
32 #include <google/protobuf/repeated_field.h> // IWYU pragma: export
33 #include <google/protobuf/extension_set.h> // IWYU pragma: export
34 #include <google/protobuf/generated_enum_reflection.h>
35 #include <google/protobuf/unknown_field_set.h>
36 #include "dccl/option_extensions.pb.h"
38 #include <boost/units/quantity.hpp>
39 #include <boost/units/absolute.hpp>
40 #include <boost/units/dimensionless_type.hpp>
41 #include <boost/units/make_scaled_unit.hpp>
42 
43 #include <boost/units/systems/angle/degrees.hpp>
44 
45 #include <boost/units/systems/si.hpp>
46 // @@protoc_insertion_point(includes)
47 #include <google/protobuf/port_def.inc>
48 #define PROTOBUF_INTERNAL_EXPORT_jaiabot_2fmessages_2fimu_2eproto
49 PROTOBUF_NAMESPACE_OPEN
50 namespace internal {
51 class AnyMetadata;
52 } // namespace internal
53 PROTOBUF_NAMESPACE_CLOSE
54 
55 // Internal implementation detail -- do not use these members.
57  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[]
58  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
59  static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[]
60  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
61  static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[8]
62  PROTOBUF_SECTION_VARIABLE(protodesc_cold);
63  static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[];
64  static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[];
65  static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[];
66 };
67 extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_jaiabot_2fmessages_2fimu_2eproto;
68 namespace jaiabot {
69 namespace protobuf {
70 class IMUCommand;
71 class IMUCommandDefaultTypeInternal;
72 extern IMUCommandDefaultTypeInternal _IMUCommand_default_instance_;
73 class IMUData;
74 class IMUDataDefaultTypeInternal;
75 extern IMUDataDefaultTypeInternal _IMUData_default_instance_;
76 class IMUData_Acceleration;
77 class IMUData_AccelerationDefaultTypeInternal;
78 extern IMUData_AccelerationDefaultTypeInternal _IMUData_Acceleration_default_instance_;
79 class IMUData_Accuracies;
80 class IMUData_AccuraciesDefaultTypeInternal;
81 extern IMUData_AccuraciesDefaultTypeInternal _IMUData_Accuracies_default_instance_;
82 class IMUData_AngularVelocity;
83 class IMUData_AngularVelocityDefaultTypeInternal;
84 extern IMUData_AngularVelocityDefaultTypeInternal _IMUData_AngularVelocity_default_instance_;
85 class IMUData_EulerAngles;
86 class IMUData_EulerAnglesDefaultTypeInternal;
87 extern IMUData_EulerAnglesDefaultTypeInternal _IMUData_EulerAngles_default_instance_;
88 class IMUData_Quaternion;
89 class IMUData_QuaternionDefaultTypeInternal;
90 extern IMUData_QuaternionDefaultTypeInternal _IMUData_Quaternion_default_instance_;
91 class IMUIssue;
92 class IMUIssueDefaultTypeInternal;
93 extern IMUIssueDefaultTypeInternal _IMUIssue_default_instance_;
94 } // namespace protobuf
95 } // namespace jaiabot
96 PROTOBUF_NAMESPACE_OPEN
97 template<> ::jaiabot::protobuf::IMUCommand* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUCommand>(Arena*);
98 template<> ::jaiabot::protobuf::IMUData* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUData>(Arena*);
99 template<> ::jaiabot::protobuf::IMUData_Acceleration* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUData_Acceleration>(Arena*);
100 template<> ::jaiabot::protobuf::IMUData_Accuracies* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUData_Accuracies>(Arena*);
101 template<> ::jaiabot::protobuf::IMUData_AngularVelocity* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUData_AngularVelocity>(Arena*);
102 template<> ::jaiabot::protobuf::IMUData_EulerAngles* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUData_EulerAngles>(Arena*);
103 template<> ::jaiabot::protobuf::IMUData_Quaternion* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUData_Quaternion>(Arena*);
104 template<> ::jaiabot::protobuf::IMUIssue* Arena::CreateMaybeMessage<::jaiabot::protobuf::IMUIssue>(Arena*);
105 PROTOBUF_NAMESPACE_CLOSE
106 namespace jaiabot {
107 namespace protobuf {
108 
116 };
121 
122 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* IMUCommand_IMUCommandType_descriptor();
123 template<typename T>
124 inline const std::string& IMUCommand_IMUCommandType_Name(T enum_t_value) {
125  static_assert(::std::is_same<T, IMUCommand_IMUCommandType>::value ||
126  ::std::is_integral<T>::value,
127  "Incorrect type passed to function IMUCommand_IMUCommandType_Name.");
128  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
129  IMUCommand_IMUCommandType_descriptor(), enum_t_value);
130 }
132  const std::string& name, IMUCommand_IMUCommandType* value) {
133  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<IMUCommand_IMUCommandType>(
134  IMUCommand_IMUCommandType_descriptor(), name, value);
135 }
146 };
151 
152 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* IMUIssue_SolutionType_descriptor();
153 template<typename T>
154 inline const std::string& IMUIssue_SolutionType_Name(T enum_t_value) {
155  static_assert(::std::is_same<T, IMUIssue_SolutionType>::value ||
156  ::std::is_integral<T>::value,
157  "Incorrect type passed to function IMUIssue_SolutionType_Name.");
158  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
159  IMUIssue_SolutionType_descriptor(), enum_t_value);
160 }
162  const std::string& name, IMUIssue_SolutionType* value) {
163  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<IMUIssue_SolutionType>(
164  IMUIssue_SolutionType_descriptor(), name, value);
165 }
166 enum IMUIssue_IssueType : int {
168 };
173 
174 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* IMUIssue_IssueType_descriptor();
175 template<typename T>
176 inline const std::string& IMUIssue_IssueType_Name(T enum_t_value) {
177  static_assert(::std::is_same<T, IMUIssue_IssueType>::value ||
178  ::std::is_integral<T>::value,
179  "Incorrect type passed to function IMUIssue_IssueType_Name.");
180  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
181  IMUIssue_IssueType_descriptor(), enum_t_value);
182 }
184  const std::string& name, IMUIssue_IssueType* value) {
185  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<IMUIssue_IssueType>(
186  IMUIssue_IssueType_descriptor(), name, value);
187 }
190  COMPLETE = 2
191 };
196 
197 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* IMUCalibrationState_descriptor();
198 template<typename T>
199 inline const std::string& IMUCalibrationState_Name(T enum_t_value) {
200  static_assert(::std::is_same<T, IMUCalibrationState>::value ||
201  ::std::is_integral<T>::value,
202  "Incorrect type passed to function IMUCalibrationState_Name.");
203  return ::PROTOBUF_NAMESPACE_ID::internal::NameOfEnum(
204  IMUCalibrationState_descriptor(), enum_t_value);
205 }
207  const std::string& name, IMUCalibrationState* value) {
208  return ::PROTOBUF_NAMESPACE_ID::internal::ParseNamedEnum<IMUCalibrationState>(
209  IMUCalibrationState_descriptor(), name, value);
210 }
211 // ===================================================================
212 
213 class IMUCommand PROTOBUF_FINAL :
214  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUCommand) */ {
215  public:
216  inline IMUCommand() : IMUCommand(nullptr) {};
217  virtual ~IMUCommand();
218 
219  IMUCommand(const IMUCommand& from);
220  IMUCommand(IMUCommand&& from) noexcept
221  : IMUCommand() {
222  *this = ::std::move(from);
223  }
224 
225  inline IMUCommand& operator=(const IMUCommand& from) {
226  CopyFrom(from);
227  return *this;
228  }
229  inline IMUCommand& operator=(IMUCommand&& from) noexcept {
230  if (GetArena() == from.GetArena()) {
231  if (this != &from) InternalSwap(&from);
232  } else {
233  CopyFrom(from);
234  }
235  return *this;
236  }
237 
238  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
239  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
240  }
241  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
242  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
243  }
244 
245  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
246  return GetDescriptor();
247  }
248  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
249  return GetMetadataStatic().descriptor;
250  }
251  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
252  return GetMetadataStatic().reflection;
253  }
254  static const IMUCommand& default_instance();
255 
256  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
257  static inline const IMUCommand* internal_default_instance() {
258  return reinterpret_cast<const IMUCommand*>(
260  }
261  static constexpr int kIndexInFileMessages =
262  0;
263 
264  friend void swap(IMUCommand& a, IMUCommand& b) {
265  a.Swap(&b);
266  }
267  inline void Swap(IMUCommand* other) {
268  if (other == this) return;
269  if (GetArena() == other->GetArena()) {
270  InternalSwap(other);
271  } else {
272  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
273  }
274  }
275  void UnsafeArenaSwap(IMUCommand* other) {
276  if (other == this) return;
277  GOOGLE_DCHECK(GetArena() == other->GetArena());
278  InternalSwap(other);
279  }
280 
281  // implements Message ----------------------------------------------
282 
283  inline IMUCommand* New() const final {
284  return CreateMaybeMessage<IMUCommand>(nullptr);
285  }
286 
287  IMUCommand* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
288  return CreateMaybeMessage<IMUCommand>(arena);
289  }
290  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
291  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
292  void CopyFrom(const IMUCommand& from);
293  void MergeFrom(const IMUCommand& from);
294  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
295  bool IsInitialized() const final;
296 
297  size_t ByteSizeLong() const final;
298  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
299  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
300  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
301  int GetCachedSize() const final { return _cached_size_.Get(); }
302 
303  private:
304  inline void SharedCtor();
305  inline void SharedDtor();
306  void SetCachedSize(int size) const final;
307  void InternalSwap(IMUCommand* other);
308  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
309  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
310  return "jaiabot.protobuf.IMUCommand";
311  }
312  protected:
313  explicit IMUCommand(::PROTOBUF_NAMESPACE_ID::Arena* arena);
314  private:
315  static void ArenaDtor(void* object);
316  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
317  public:
318 
319  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
320  private:
321  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
322  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fimu_2eproto);
323  return ::descriptor_table_jaiabot_2fmessages_2fimu_2eproto.file_level_metadata[kIndexInFileMessages];
324  }
325 
326  public:
327 
328  // nested types ----------------------------------------------------
329 
331  static constexpr IMUCommandType TAKE_READING =
333  static constexpr IMUCommandType START_WAVE_HEIGHT_SAMPLING =
335  static constexpr IMUCommandType STOP_WAVE_HEIGHT_SAMPLING =
337  static constexpr IMUCommandType START_BOTTOM_TYPE_SAMPLING =
339  static constexpr IMUCommandType STOP_BOTTOM_TYPE_SAMPLING =
341  static constexpr IMUCommandType START_CALIBRATION =
343  static inline bool IMUCommandType_IsValid(int value) {
344  return IMUCommand_IMUCommandType_IsValid(value);
345  }
346  static constexpr IMUCommandType IMUCommandType_MIN =
348  static constexpr IMUCommandType IMUCommandType_MAX =
350  static constexpr int IMUCommandType_ARRAYSIZE =
352  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
355  }
356  template<typename T>
357  static inline const std::string& IMUCommandType_Name(T enum_t_value) {
358  static_assert(::std::is_same<T, IMUCommandType>::value ||
359  ::std::is_integral<T>::value,
360  "Incorrect type passed to function IMUCommandType_Name.");
361  return IMUCommand_IMUCommandType_Name(enum_t_value);
362  }
363  static inline bool IMUCommandType_Parse(const std::string& name,
364  IMUCommandType* value) {
365  return IMUCommand_IMUCommandType_Parse(name, value);
366  }
367 
368  // accessors -------------------------------------------------------
369 
370  enum : int {
371  kTypeFieldNumber = 1,
372  };
373  // required .jaiabot.protobuf.IMUCommand.IMUCommandType type = 1;
374  bool has_type() const;
375  private:
376  bool _internal_has_type() const;
377  public:
378  void clear_type();
381  private:
382  ::jaiabot::protobuf::IMUCommand_IMUCommandType _internal_type() const;
383  void _internal_set_type(::jaiabot::protobuf::IMUCommand_IMUCommandType value);
384  public:
385 
386  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUCommand)
387  private:
388  class _Internal;
389 
390  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
391  typedef void InternalArenaConstructable_;
392  typedef void DestructorSkippable_;
393  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
394  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
395  int type_;
396  friend struct ::TableStruct_jaiabot_2fmessages_2fimu_2eproto;
397 };
398 // -------------------------------------------------------------------
399 
400 class IMUData_EulerAngles PROTOBUF_FINAL :
401  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUData.EulerAngles) */ {
402  public:
403  inline IMUData_EulerAngles() : IMUData_EulerAngles(nullptr) {};
405 
406  IMUData_EulerAngles(const IMUData_EulerAngles& from);
407  IMUData_EulerAngles(IMUData_EulerAngles&& from) noexcept
408  : IMUData_EulerAngles() {
409  *this = ::std::move(from);
410  }
411 
412  inline IMUData_EulerAngles& operator=(const IMUData_EulerAngles& from) {
413  CopyFrom(from);
414  return *this;
415  }
416  inline IMUData_EulerAngles& operator=(IMUData_EulerAngles&& from) noexcept {
417  if (GetArena() == from.GetArena()) {
418  if (this != &from) InternalSwap(&from);
419  } else {
420  CopyFrom(from);
421  }
422  return *this;
423  }
424 
425  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
426  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
427  }
428  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
429  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
430  }
431 
432  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
433  return GetDescriptor();
434  }
435  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
436  return GetMetadataStatic().descriptor;
437  }
438  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
439  return GetMetadataStatic().reflection;
440  }
441  static const IMUData_EulerAngles& default_instance();
442 
443  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
444  static inline const IMUData_EulerAngles* internal_default_instance() {
445  return reinterpret_cast<const IMUData_EulerAngles*>(
447  }
448  static constexpr int kIndexInFileMessages =
449  1;
450 
451  friend void swap(IMUData_EulerAngles& a, IMUData_EulerAngles& b) {
452  a.Swap(&b);
453  }
454  inline void Swap(IMUData_EulerAngles* other) {
455  if (other == this) return;
456  if (GetArena() == other->GetArena()) {
457  InternalSwap(other);
458  } else {
459  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
460  }
461  }
462  void UnsafeArenaSwap(IMUData_EulerAngles* other) {
463  if (other == this) return;
464  GOOGLE_DCHECK(GetArena() == other->GetArena());
465  InternalSwap(other);
466  }
467 
468  // implements Message ----------------------------------------------
469 
470  inline IMUData_EulerAngles* New() const final {
471  return CreateMaybeMessage<IMUData_EulerAngles>(nullptr);
472  }
473 
474  IMUData_EulerAngles* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
475  return CreateMaybeMessage<IMUData_EulerAngles>(arena);
476  }
477  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
478  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
479  void CopyFrom(const IMUData_EulerAngles& from);
480  void MergeFrom(const IMUData_EulerAngles& from);
481  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
482  bool IsInitialized() const final;
483 
484  size_t ByteSizeLong() const final;
485  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
486  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
487  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
488  int GetCachedSize() const final { return _cached_size_.Get(); }
489 
490  private:
491  inline void SharedCtor();
492  inline void SharedDtor();
493  void SetCachedSize(int size) const final;
494  void InternalSwap(IMUData_EulerAngles* other);
495  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
496  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
497  return "jaiabot.protobuf.IMUData.EulerAngles";
498  }
499  protected:
500  explicit IMUData_EulerAngles(::PROTOBUF_NAMESPACE_ID::Arena* arena);
501  private:
502  static void ArenaDtor(void* object);
503  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
504  public:
505 
506  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
507  private:
508  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
509  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fimu_2eproto);
510  return ::descriptor_table_jaiabot_2fmessages_2fimu_2eproto.file_level_metadata[kIndexInFileMessages];
511  }
512 
513  public:
514 
515  // nested types ----------------------------------------------------
516 
517  // accessors -------------------------------------------------------
518 
519  enum : int {
520  kHeadingFieldNumber = 1,
521  kPitchFieldNumber = 2,
522  kRollFieldNumber = 3,
523  };
524  // optional double heading = 1 [(.dccl.field) = {
525  bool has_heading() const;
526  private:
527  bool _internal_has_heading() const;
528  public:
530  double heading() const;
531  void set_heading(double value);
532  private:
533  double _internal_heading() const;
534  void _internal_set_heading(double value);
535  public:
536 
537  // optional double pitch = 2 [(.dccl.field) = {
538  bool has_pitch() const;
539  private:
540  bool _internal_has_pitch() const;
541  public:
542  void clear_pitch();
543  double pitch() const;
544  void set_pitch(double value);
545  private:
546  double _internal_pitch() const;
547  void _internal_set_pitch(double value);
548  public:
549 
550  // optional double roll = 3 [(.dccl.field) = {
551  bool has_roll() const;
552  private:
553  bool _internal_has_roll() const;
554  public:
555  void clear_roll();
556  double roll() const;
557  void set_roll(double value);
558  private:
559  double _internal_roll() const;
560  void _internal_set_roll(double value);
561  public:
562 
563  typedef boost::units::plane_angle_dimension heading_dimension;
564 
565  typedef boost::units::unit<heading_dimension,boost::units::degree::system> heading_unit;
566 
567  template<typename Quantity >
568  void set_heading_with_units(Quantity value_w_units)
569  { set_heading(boost::units::quantity<heading_unit,double >(value_w_units).value() ); };
570 
571  template<typename Quantity >
572  Quantity heading_with_units() const
573  { return Quantity(heading() * heading_unit()); };
574 
575  boost::units::quantity< heading_unit,double > heading_with_units() const
576  { return heading_with_units<boost::units::quantity< heading_unit,double > >(); };
577 
578  typedef boost::units::plane_angle_dimension pitch_dimension;
579 
580  typedef boost::units::unit<pitch_dimension,boost::units::degree::system> pitch_unit;
581 
582  template<typename Quantity >
583  void set_pitch_with_units(Quantity value_w_units)
584  { set_pitch(boost::units::quantity<pitch_unit,double >(value_w_units).value() ); };
585 
586  template<typename Quantity >
587  Quantity pitch_with_units() const
588  { return Quantity(pitch() * pitch_unit()); };
589 
590  boost::units::quantity< pitch_unit,double > pitch_with_units() const
591  { return pitch_with_units<boost::units::quantity< pitch_unit,double > >(); };
592 
593  typedef boost::units::plane_angle_dimension roll_dimension;
594 
595  typedef boost::units::unit<roll_dimension,boost::units::degree::system> roll_unit;
596 
597  template<typename Quantity >
598  void set_roll_with_units(Quantity value_w_units)
599  { set_roll(boost::units::quantity<roll_unit,double >(value_w_units).value() ); };
600 
601  template<typename Quantity >
602  Quantity roll_with_units() const
603  { return Quantity(roll() * roll_unit()); };
604 
605  boost::units::quantity< roll_unit,double > roll_with_units() const
606  { return roll_with_units<boost::units::quantity< roll_unit,double > >(); };
607 
608  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUData.EulerAngles)
609  private:
610  class _Internal;
611 
612  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
613  typedef void InternalArenaConstructable_;
614  typedef void DestructorSkippable_;
615  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
616  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
617  double heading_;
618  double pitch_;
619  double roll_;
620  friend struct ::TableStruct_jaiabot_2fmessages_2fimu_2eproto;
621 };
622 // -------------------------------------------------------------------
623 
624 class IMUData_Acceleration PROTOBUF_FINAL :
625  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUData.Acceleration) */ {
626  public:
627  inline IMUData_Acceleration() : IMUData_Acceleration(nullptr) {};
629 
630  IMUData_Acceleration(const IMUData_Acceleration& from);
631  IMUData_Acceleration(IMUData_Acceleration&& from) noexcept
632  : IMUData_Acceleration() {
633  *this = ::std::move(from);
634  }
635 
636  inline IMUData_Acceleration& operator=(const IMUData_Acceleration& from) {
637  CopyFrom(from);
638  return *this;
639  }
640  inline IMUData_Acceleration& operator=(IMUData_Acceleration&& from) noexcept {
641  if (GetArena() == from.GetArena()) {
642  if (this != &from) InternalSwap(&from);
643  } else {
644  CopyFrom(from);
645  }
646  return *this;
647  }
648 
649  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
650  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
651  }
652  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
653  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
654  }
655 
656  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
657  return GetDescriptor();
658  }
659  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
660  return GetMetadataStatic().descriptor;
661  }
662  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
663  return GetMetadataStatic().reflection;
664  }
665  static const IMUData_Acceleration& default_instance();
666 
667  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
668  static inline const IMUData_Acceleration* internal_default_instance() {
669  return reinterpret_cast<const IMUData_Acceleration*>(
671  }
672  static constexpr int kIndexInFileMessages =
673  2;
674 
675  friend void swap(IMUData_Acceleration& a, IMUData_Acceleration& b) {
676  a.Swap(&b);
677  }
678  inline void Swap(IMUData_Acceleration* other) {
679  if (other == this) return;
680  if (GetArena() == other->GetArena()) {
681  InternalSwap(other);
682  } else {
683  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
684  }
685  }
686  void UnsafeArenaSwap(IMUData_Acceleration* other) {
687  if (other == this) return;
688  GOOGLE_DCHECK(GetArena() == other->GetArena());
689  InternalSwap(other);
690  }
691 
692  // implements Message ----------------------------------------------
693 
694  inline IMUData_Acceleration* New() const final {
695  return CreateMaybeMessage<IMUData_Acceleration>(nullptr);
696  }
697 
698  IMUData_Acceleration* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
699  return CreateMaybeMessage<IMUData_Acceleration>(arena);
700  }
701  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
702  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
703  void CopyFrom(const IMUData_Acceleration& from);
704  void MergeFrom(const IMUData_Acceleration& from);
705  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
706  bool IsInitialized() const final;
707 
708  size_t ByteSizeLong() const final;
709  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
710  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
711  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
712  int GetCachedSize() const final { return _cached_size_.Get(); }
713 
714  private:
715  inline void SharedCtor();
716  inline void SharedDtor();
717  void SetCachedSize(int size) const final;
718  void InternalSwap(IMUData_Acceleration* other);
719  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
720  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
721  return "jaiabot.protobuf.IMUData.Acceleration";
722  }
723  protected:
724  explicit IMUData_Acceleration(::PROTOBUF_NAMESPACE_ID::Arena* arena);
725  private:
726  static void ArenaDtor(void* object);
727  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
728  public:
729 
730  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
731  private:
732  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
733  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fimu_2eproto);
734  return ::descriptor_table_jaiabot_2fmessages_2fimu_2eproto.file_level_metadata[kIndexInFileMessages];
735  }
736 
737  public:
738 
739  // nested types ----------------------------------------------------
740 
741  // accessors -------------------------------------------------------
742 
743  enum : int {
744  kXFieldNumber = 1,
745  kYFieldNumber = 2,
746  kZFieldNumber = 3,
747  };
748  // optional double x = 1;
749  bool has_x() const;
750  private:
751  bool _internal_has_x() const;
752  public:
753  void clear_x();
754  double x() const;
755  void set_x(double value);
756  private:
757  double _internal_x() const;
758  void _internal_set_x(double value);
759  public:
760 
761  // optional double y = 2;
762  bool has_y() const;
763  private:
764  bool _internal_has_y() const;
765  public:
766  void clear_y();
767  double y() const;
768  void set_y(double value);
769  private:
770  double _internal_y() const;
771  void _internal_set_y(double value);
772  public:
773 
774  // optional double z = 3;
775  bool has_z() const;
776  private:
777  bool _internal_has_z() const;
778  public:
779  void clear_z();
780  double z() const;
781  void set_z(double value);
782  private:
783  double _internal_z() const;
784  void _internal_set_z(double value);
785  public:
786 
787  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUData.Acceleration)
788  private:
789  class _Internal;
790 
791  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
792  typedef void InternalArenaConstructable_;
793  typedef void DestructorSkippable_;
794  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
795  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
796  double x_;
797  double y_;
798  double z_;
799  friend struct ::TableStruct_jaiabot_2fmessages_2fimu_2eproto;
800 };
801 // -------------------------------------------------------------------
802 
803 class IMUData_Accuracies PROTOBUF_FINAL :
804  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUData.Accuracies) */ {
805  public:
806  inline IMUData_Accuracies() : IMUData_Accuracies(nullptr) {};
808 
809  IMUData_Accuracies(const IMUData_Accuracies& from);
810  IMUData_Accuracies(IMUData_Accuracies&& from) noexcept
811  : IMUData_Accuracies() {
812  *this = ::std::move(from);
813  }
814 
815  inline IMUData_Accuracies& operator=(const IMUData_Accuracies& from) {
816  CopyFrom(from);
817  return *this;
818  }
819  inline IMUData_Accuracies& operator=(IMUData_Accuracies&& from) noexcept {
820  if (GetArena() == from.GetArena()) {
821  if (this != &from) InternalSwap(&from);
822  } else {
823  CopyFrom(from);
824  }
825  return *this;
826  }
827 
828  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
829  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
830  }
831  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
832  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
833  }
834 
835  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
836  return GetDescriptor();
837  }
838  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
839  return GetMetadataStatic().descriptor;
840  }
841  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
842  return GetMetadataStatic().reflection;
843  }
844  static const IMUData_Accuracies& default_instance();
845 
846  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
847  static inline const IMUData_Accuracies* internal_default_instance() {
848  return reinterpret_cast<const IMUData_Accuracies*>(
850  }
851  static constexpr int kIndexInFileMessages =
852  3;
853 
854  friend void swap(IMUData_Accuracies& a, IMUData_Accuracies& b) {
855  a.Swap(&b);
856  }
857  inline void Swap(IMUData_Accuracies* other) {
858  if (other == this) return;
859  if (GetArena() == other->GetArena()) {
860  InternalSwap(other);
861  } else {
862  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
863  }
864  }
865  void UnsafeArenaSwap(IMUData_Accuracies* other) {
866  if (other == this) return;
867  GOOGLE_DCHECK(GetArena() == other->GetArena());
868  InternalSwap(other);
869  }
870 
871  // implements Message ----------------------------------------------
872 
873  inline IMUData_Accuracies* New() const final {
874  return CreateMaybeMessage<IMUData_Accuracies>(nullptr);
875  }
876 
877  IMUData_Accuracies* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
878  return CreateMaybeMessage<IMUData_Accuracies>(arena);
879  }
880  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
881  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
882  void CopyFrom(const IMUData_Accuracies& from);
883  void MergeFrom(const IMUData_Accuracies& from);
884  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
885  bool IsInitialized() const final;
886 
887  size_t ByteSizeLong() const final;
888  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
889  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
890  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
891  int GetCachedSize() const final { return _cached_size_.Get(); }
892 
893  private:
894  inline void SharedCtor();
895  inline void SharedDtor();
896  void SetCachedSize(int size) const final;
897  void InternalSwap(IMUData_Accuracies* other);
898  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
899  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
900  return "jaiabot.protobuf.IMUData.Accuracies";
901  }
902  protected:
903  explicit IMUData_Accuracies(::PROTOBUF_NAMESPACE_ID::Arena* arena);
904  private:
905  static void ArenaDtor(void* object);
906  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
907  public:
908 
909  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
910  private:
911  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
912  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fimu_2eproto);
913  return ::descriptor_table_jaiabot_2fmessages_2fimu_2eproto.file_level_metadata[kIndexInFileMessages];
914  }
915 
916  public:
917 
918  // nested types ----------------------------------------------------
919 
920  // accessors -------------------------------------------------------
921 
922  enum : int {
923  kAccelerometerFieldNumber = 1,
924  kGyroscopeFieldNumber = 2,
925  kMagnetometerFieldNumber = 3,
926  };
927  // optional int32 accelerometer = 1 [(.dccl.field) = {
928  bool has_accelerometer() const;
929  private:
930  bool _internal_has_accelerometer() const;
931  public:
933  ::PROTOBUF_NAMESPACE_ID::int32 accelerometer() const;
934  void set_accelerometer(::PROTOBUF_NAMESPACE_ID::int32 value);
935  private:
936  ::PROTOBUF_NAMESPACE_ID::int32 _internal_accelerometer() const;
937  void _internal_set_accelerometer(::PROTOBUF_NAMESPACE_ID::int32 value);
938  public:
939 
940  // optional int32 gyroscope = 2 [(.dccl.field) = {
941  bool has_gyroscope() const;
942  private:
943  bool _internal_has_gyroscope() const;
944  public:
946  ::PROTOBUF_NAMESPACE_ID::int32 gyroscope() const;
947  void set_gyroscope(::PROTOBUF_NAMESPACE_ID::int32 value);
948  private:
949  ::PROTOBUF_NAMESPACE_ID::int32 _internal_gyroscope() const;
950  void _internal_set_gyroscope(::PROTOBUF_NAMESPACE_ID::int32 value);
951  public:
952 
953  // optional int32 magnetometer = 3 [(.dccl.field) = {
954  bool has_magnetometer() const;
955  private:
956  bool _internal_has_magnetometer() const;
957  public:
959  ::PROTOBUF_NAMESPACE_ID::int32 magnetometer() const;
960  void set_magnetometer(::PROTOBUF_NAMESPACE_ID::int32 value);
961  private:
962  ::PROTOBUF_NAMESPACE_ID::int32 _internal_magnetometer() const;
963  void _internal_set_magnetometer(::PROTOBUF_NAMESPACE_ID::int32 value);
964  public:
965 
966  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUData.Accuracies)
967  private:
968  class _Internal;
969 
970  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
971  typedef void InternalArenaConstructable_;
972  typedef void DestructorSkippable_;
973  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
974  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
975  ::PROTOBUF_NAMESPACE_ID::int32 accelerometer_;
976  ::PROTOBUF_NAMESPACE_ID::int32 gyroscope_;
977  ::PROTOBUF_NAMESPACE_ID::int32 magnetometer_;
978  friend struct ::TableStruct_jaiabot_2fmessages_2fimu_2eproto;
979 };
980 // -------------------------------------------------------------------
981 
982 class IMUData_AngularVelocity PROTOBUF_FINAL :
983  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUData.AngularVelocity) */ {
984  public:
985  inline IMUData_AngularVelocity() : IMUData_AngularVelocity(nullptr) {};
987 
988  IMUData_AngularVelocity(const IMUData_AngularVelocity& from);
989  IMUData_AngularVelocity(IMUData_AngularVelocity&& from) noexcept
990  : IMUData_AngularVelocity() {
991  *this = ::std::move(from);
992  }
993 
994  inline IMUData_AngularVelocity& operator=(const IMUData_AngularVelocity& from) {
995  CopyFrom(from);
996  return *this;
997  }
998  inline IMUData_AngularVelocity& operator=(IMUData_AngularVelocity&& from) noexcept {
999  if (GetArena() == from.GetArena()) {
1000  if (this != &from) InternalSwap(&from);
1001  } else {
1002  CopyFrom(from);
1003  }
1004  return *this;
1005  }
1006 
1007  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1008  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1009  }
1010  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1011  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1012  }
1013 
1014  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1015  return GetDescriptor();
1016  }
1017  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1018  return GetMetadataStatic().descriptor;
1019  }
1020  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1021  return GetMetadataStatic().reflection;
1022  }
1023  static const IMUData_AngularVelocity& default_instance();
1024 
1025  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1026  static inline const IMUData_AngularVelocity* internal_default_instance() {
1027  return reinterpret_cast<const IMUData_AngularVelocity*>(
1029  }
1030  static constexpr int kIndexInFileMessages =
1031  4;
1032 
1033  friend void swap(IMUData_AngularVelocity& a, IMUData_AngularVelocity& b) {
1034  a.Swap(&b);
1035  }
1036  inline void Swap(IMUData_AngularVelocity* other) {
1037  if (other == this) return;
1038  if (GetArena() == other->GetArena()) {
1039  InternalSwap(other);
1040  } else {
1041  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1042  }
1043  }
1044  void UnsafeArenaSwap(IMUData_AngularVelocity* other) {
1045  if (other == this) return;
1046  GOOGLE_DCHECK(GetArena() == other->GetArena());
1047  InternalSwap(other);
1048  }
1049 
1050  // implements Message ----------------------------------------------
1051 
1052  inline IMUData_AngularVelocity* New() const final {
1053  return CreateMaybeMessage<IMUData_AngularVelocity>(nullptr);
1054  }
1055 
1056  IMUData_AngularVelocity* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1057  return CreateMaybeMessage<IMUData_AngularVelocity>(arena);
1058  }
1059  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1060  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1061  void CopyFrom(const IMUData_AngularVelocity& from);
1062  void MergeFrom(const IMUData_AngularVelocity& from);
1063  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1064  bool IsInitialized() const final;
1065 
1066  size_t ByteSizeLong() const final;
1067  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1068  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1069  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1070  int GetCachedSize() const final { return _cached_size_.Get(); }
1071 
1072  private:
1073  inline void SharedCtor();
1074  inline void SharedDtor();
1075  void SetCachedSize(int size) const final;
1076  void InternalSwap(IMUData_AngularVelocity* other);
1077  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1078  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1079  return "jaiabot.protobuf.IMUData.AngularVelocity";
1080  }
1081  protected:
1082  explicit IMUData_AngularVelocity(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1083  private:
1084  static void ArenaDtor(void* object);
1085  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1086  public:
1087 
1088  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1089  private:
1090  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1091  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fimu_2eproto);
1092  return ::descriptor_table_jaiabot_2fmessages_2fimu_2eproto.file_level_metadata[kIndexInFileMessages];
1093  }
1094 
1095  public:
1096 
1097  // nested types ----------------------------------------------------
1098 
1099  // accessors -------------------------------------------------------
1100 
1101  enum : int {
1102  kXFieldNumber = 1,
1103  kYFieldNumber = 2,
1104  kZFieldNumber = 3,
1105  };
1106  // optional double x = 1 [(.dccl.field) = {
1107  bool has_x() const;
1108  private:
1109  bool _internal_has_x() const;
1110  public:
1111  void clear_x();
1112  double x() const;
1113  void set_x(double value);
1114  private:
1115  double _internal_x() const;
1116  void _internal_set_x(double value);
1117  public:
1118 
1119  // optional double y = 2 [(.dccl.field) = {
1120  bool has_y() const;
1121  private:
1122  bool _internal_has_y() const;
1123  public:
1124  void clear_y();
1125  double y() const;
1126  void set_y(double value);
1127  private:
1128  double _internal_y() const;
1129  void _internal_set_y(double value);
1130  public:
1131 
1132  // optional double z = 3 [(.dccl.field) = {
1133  bool has_z() const;
1134  private:
1135  bool _internal_has_z() const;
1136  public:
1137  void clear_z();
1138  double z() const;
1139  void set_z(double value);
1140  private:
1141  double _internal_z() const;
1142  void _internal_set_z(double value);
1143  public:
1144 
1145  typedef boost::units::angular_velocity_dimension x_dimension;
1146 
1147  typedef boost::units::unit<x_dimension,boost::units::si::system> x_unit;
1148 
1149  template<typename Quantity >
1150  void set_x_with_units(Quantity value_w_units)
1151  { set_x(boost::units::quantity<x_unit,double >(value_w_units).value() ); };
1152 
1153  template<typename Quantity >
1154  Quantity x_with_units() const
1155  { return Quantity(x() * x_unit()); };
1156 
1157  boost::units::quantity< x_unit,double > x_with_units() const
1158  { return x_with_units<boost::units::quantity< x_unit,double > >(); };
1159 
1160  typedef boost::units::angular_velocity_dimension y_dimension;
1161 
1162  typedef boost::units::unit<y_dimension,boost::units::si::system> y_unit;
1163 
1164  template<typename Quantity >
1165  void set_y_with_units(Quantity value_w_units)
1166  { set_y(boost::units::quantity<y_unit,double >(value_w_units).value() ); };
1167 
1168  template<typename Quantity >
1169  Quantity y_with_units() const
1170  { return Quantity(y() * y_unit()); };
1171 
1172  boost::units::quantity< y_unit,double > y_with_units() const
1173  { return y_with_units<boost::units::quantity< y_unit,double > >(); };
1174 
1175  typedef boost::units::angular_velocity_dimension z_dimension;
1176 
1177  typedef boost::units::unit<z_dimension,boost::units::si::system> z_unit;
1178 
1179  template<typename Quantity >
1180  void set_z_with_units(Quantity value_w_units)
1181  { set_z(boost::units::quantity<z_unit,double >(value_w_units).value() ); };
1182 
1183  template<typename Quantity >
1184  Quantity z_with_units() const
1185  { return Quantity(z() * z_unit()); };
1186 
1187  boost::units::quantity< z_unit,double > z_with_units() const
1188  { return z_with_units<boost::units::quantity< z_unit,double > >(); };
1189 
1190  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUData.AngularVelocity)
1191  private:
1192  class _Internal;
1193 
1194  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1195  typedef void InternalArenaConstructable_;
1196  typedef void DestructorSkippable_;
1197  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1198  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1199  double x_;
1200  double y_;
1201  double z_;
1202  friend struct ::TableStruct_jaiabot_2fmessages_2fimu_2eproto;
1203 };
1204 // -------------------------------------------------------------------
1205 
1206 class IMUData_Quaternion PROTOBUF_FINAL :
1207  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUData.Quaternion) */ {
1208  public:
1209  inline IMUData_Quaternion() : IMUData_Quaternion(nullptr) {};
1211 
1212  IMUData_Quaternion(const IMUData_Quaternion& from);
1213  IMUData_Quaternion(IMUData_Quaternion&& from) noexcept
1214  : IMUData_Quaternion() {
1215  *this = ::std::move(from);
1216  }
1217 
1218  inline IMUData_Quaternion& operator=(const IMUData_Quaternion& from) {
1219  CopyFrom(from);
1220  return *this;
1221  }
1222  inline IMUData_Quaternion& operator=(IMUData_Quaternion&& from) noexcept {
1223  if (GetArena() == from.GetArena()) {
1224  if (this != &from) InternalSwap(&from);
1225  } else {
1226  CopyFrom(from);
1227  }
1228  return *this;
1229  }
1230 
1231  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1232  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1233  }
1234  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1235  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1236  }
1237 
1238  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1239  return GetDescriptor();
1240  }
1241  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1242  return GetMetadataStatic().descriptor;
1243  }
1244  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1245  return GetMetadataStatic().reflection;
1246  }
1247  static const IMUData_Quaternion& default_instance();
1248 
1249  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1250  static inline const IMUData_Quaternion* internal_default_instance() {
1251  return reinterpret_cast<const IMUData_Quaternion*>(
1253  }
1254  static constexpr int kIndexInFileMessages =
1255  5;
1256 
1257  friend void swap(IMUData_Quaternion& a, IMUData_Quaternion& b) {
1258  a.Swap(&b);
1259  }
1260  inline void Swap(IMUData_Quaternion* other) {
1261  if (other == this) return;
1262  if (GetArena() == other->GetArena()) {
1263  InternalSwap(other);
1264  } else {
1265  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1266  }
1267  }
1268  void UnsafeArenaSwap(IMUData_Quaternion* other) {
1269  if (other == this) return;
1270  GOOGLE_DCHECK(GetArena() == other->GetArena());
1271  InternalSwap(other);
1272  }
1273 
1274  // implements Message ----------------------------------------------
1275 
1276  inline IMUData_Quaternion* New() const final {
1277  return CreateMaybeMessage<IMUData_Quaternion>(nullptr);
1278  }
1279 
1280  IMUData_Quaternion* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1281  return CreateMaybeMessage<IMUData_Quaternion>(arena);
1282  }
1283  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1284  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1285  void CopyFrom(const IMUData_Quaternion& from);
1286  void MergeFrom(const IMUData_Quaternion& from);
1287  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1288  bool IsInitialized() const final;
1289 
1290  size_t ByteSizeLong() const final;
1291  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1292  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1293  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1294  int GetCachedSize() const final { return _cached_size_.Get(); }
1295 
1296  private:
1297  inline void SharedCtor();
1298  inline void SharedDtor();
1299  void SetCachedSize(int size) const final;
1300  void InternalSwap(IMUData_Quaternion* other);
1301  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1302  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1303  return "jaiabot.protobuf.IMUData.Quaternion";
1304  }
1305  protected:
1306  explicit IMUData_Quaternion(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1307  private:
1308  static void ArenaDtor(void* object);
1309  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1310  public:
1311 
1312  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1313  private:
1314  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1315  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fimu_2eproto);
1316  return ::descriptor_table_jaiabot_2fmessages_2fimu_2eproto.file_level_metadata[kIndexInFileMessages];
1317  }
1318 
1319  public:
1320 
1321  // nested types ----------------------------------------------------
1322 
1323  // accessors -------------------------------------------------------
1324 
1325  enum : int {
1326  kWFieldNumber = 1,
1327  kXFieldNumber = 2,
1328  kYFieldNumber = 3,
1329  kZFieldNumber = 4,
1330  };
1331  // optional double w = 1;
1332  bool has_w() const;
1333  private:
1334  bool _internal_has_w() const;
1335  public:
1336  void clear_w();
1337  double w() const;
1338  void set_w(double value);
1339  private:
1340  double _internal_w() const;
1341  void _internal_set_w(double value);
1342  public:
1343 
1344  // optional double x = 2;
1345  bool has_x() const;
1346  private:
1347  bool _internal_has_x() const;
1348  public:
1349  void clear_x();
1350  double x() const;
1351  void set_x(double value);
1352  private:
1353  double _internal_x() const;
1354  void _internal_set_x(double value);
1355  public:
1356 
1357  // optional double y = 3;
1358  bool has_y() const;
1359  private:
1360  bool _internal_has_y() const;
1361  public:
1362  void clear_y();
1363  double y() const;
1364  void set_y(double value);
1365  private:
1366  double _internal_y() const;
1367  void _internal_set_y(double value);
1368  public:
1369 
1370  // optional double z = 4;
1371  bool has_z() const;
1372  private:
1373  bool _internal_has_z() const;
1374  public:
1375  void clear_z();
1376  double z() const;
1377  void set_z(double value);
1378  private:
1379  double _internal_z() const;
1380  void _internal_set_z(double value);
1381  public:
1382 
1383  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUData.Quaternion)
1384  private:
1385  class _Internal;
1386 
1387  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1388  typedef void InternalArenaConstructable_;
1389  typedef void DestructorSkippable_;
1390  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1391  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1392  double w_;
1393  double x_;
1394  double y_;
1395  double z_;
1396  friend struct ::TableStruct_jaiabot_2fmessages_2fimu_2eproto;
1397 };
1398 // -------------------------------------------------------------------
1399 
1400 class IMUData PROTOBUF_FINAL :
1401  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUData) */ {
1402  public:
1403  inline IMUData() : IMUData(nullptr) {};
1404  virtual ~IMUData();
1405 
1406  IMUData(const IMUData& from);
1407  IMUData(IMUData&& from) noexcept
1408  : IMUData() {
1409  *this = ::std::move(from);
1410  }
1411 
1412  inline IMUData& operator=(const IMUData& from) {
1413  CopyFrom(from);
1414  return *this;
1415  }
1416  inline IMUData& operator=(IMUData&& from) noexcept {
1417  if (GetArena() == from.GetArena()) {
1418  if (this != &from) InternalSwap(&from);
1419  } else {
1420  CopyFrom(from);
1421  }
1422  return *this;
1423  }
1424 
1425  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1426  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1427  }
1428  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1429  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1430  }
1431 
1432  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1433  return GetDescriptor();
1434  }
1435  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1436  return GetMetadataStatic().descriptor;
1437  }
1438  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1439  return GetMetadataStatic().reflection;
1440  }
1441  static const IMUData& default_instance();
1442 
1443  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1444  static inline const IMUData* internal_default_instance() {
1445  return reinterpret_cast<const IMUData*>(
1447  }
1448  static constexpr int kIndexInFileMessages =
1449  6;
1450 
1451  friend void swap(IMUData& a, IMUData& b) {
1452  a.Swap(&b);
1453  }
1454  inline void Swap(IMUData* other) {
1455  if (other == this) return;
1456  if (GetArena() == other->GetArena()) {
1457  InternalSwap(other);
1458  } else {
1459  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1460  }
1461  }
1462  void UnsafeArenaSwap(IMUData* other) {
1463  if (other == this) return;
1464  GOOGLE_DCHECK(GetArena() == other->GetArena());
1465  InternalSwap(other);
1466  }
1467 
1468  // implements Message ----------------------------------------------
1469 
1470  inline IMUData* New() const final {
1471  return CreateMaybeMessage<IMUData>(nullptr);
1472  }
1473 
1474  IMUData* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1475  return CreateMaybeMessage<IMUData>(arena);
1476  }
1477  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1478  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1479  void CopyFrom(const IMUData& from);
1480  void MergeFrom(const IMUData& from);
1481  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1482  bool IsInitialized() const final;
1483 
1484  size_t ByteSizeLong() const final;
1485  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1486  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1487  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1488  int GetCachedSize() const final { return _cached_size_.Get(); }
1489 
1490  private:
1491  inline void SharedCtor();
1492  inline void SharedDtor();
1493  void SetCachedSize(int size) const final;
1494  void InternalSwap(IMUData* other);
1495  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1496  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1497  return "jaiabot.protobuf.IMUData";
1498  }
1499  protected:
1500  explicit IMUData(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1501  private:
1502  static void ArenaDtor(void* object);
1503  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1504  public:
1505 
1506  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1507  private:
1508  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1509  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fimu_2eproto);
1510  return ::descriptor_table_jaiabot_2fmessages_2fimu_2eproto.file_level_metadata[kIndexInFileMessages];
1511  }
1512 
1513  public:
1514 
1515  // nested types ----------------------------------------------------
1516 
1517  typedef IMUData_EulerAngles EulerAngles;
1518  typedef IMUData_Acceleration Acceleration;
1519  typedef IMUData_Accuracies Accuracies;
1520  typedef IMUData_AngularVelocity AngularVelocity;
1521  typedef IMUData_Quaternion Quaternion;
1522 
1523  // accessors -------------------------------------------------------
1524 
1525  enum : int {
1526  kImuTypeFieldNumber = 11,
1527  kEulerAnglesFieldNumber = 1,
1528  kLinearAccelerationFieldNumber = 2,
1529  kGravityFieldNumber = 3,
1530  kAccuraciesFieldNumber = 4,
1531  kAngularVelocityFieldNumber = 9,
1532  kQuaternionFieldNumber = 10,
1533  kSignificantWaveHeightFieldNumber = 7,
1534  kMaxAccelerationFieldNumber = 8,
1535  kBotRolledOverFieldNumber = 6,
1536  kCalibrationStateFieldNumber = 5,
1537  };
1538  // optional string imu_type = 11;
1539  bool has_imu_type() const;
1540  private:
1541  bool _internal_has_imu_type() const;
1542  public:
1544  const std::string& imu_type() const;
1545  void set_imu_type(const std::string& value);
1546  void set_imu_type(std::string&& value);
1547  void set_imu_type(const char* value);
1548  void set_imu_type(const char* value, size_t size);
1549  std::string* mutable_imu_type();
1550  std::string* release_imu_type();
1551  void set_allocated_imu_type(std::string* imu_type);
1552  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
1553  " string fields are deprecated and will be removed in a"
1554  " future release.")
1555  std::string* unsafe_arena_release_imu_type();
1556  GOOGLE_PROTOBUF_RUNTIME_DEPRECATED("The unsafe_arena_ accessors for"
1557  " string fields are deprecated and will be removed in a"
1558  " future release.")
1559  void unsafe_arena_set_allocated_imu_type(
1560  std::string* imu_type);
1561  private:
1562  const std::string& _internal_imu_type() const;
1563  void _internal_set_imu_type(const std::string& value);
1564  std::string* _internal_mutable_imu_type();
1565  public:
1566 
1567  // optional .jaiabot.protobuf.IMUData.EulerAngles euler_angles = 1;
1568  bool has_euler_angles() const;
1569  private:
1570  bool _internal_has_euler_angles() const;
1571  public:
1572  void clear_euler_angles();
1573  const ::jaiabot::protobuf::IMUData_EulerAngles& euler_angles() const;
1574  ::jaiabot::protobuf::IMUData_EulerAngles* release_euler_angles();
1575  ::jaiabot::protobuf::IMUData_EulerAngles* mutable_euler_angles();
1576  void set_allocated_euler_angles(::jaiabot::protobuf::IMUData_EulerAngles* euler_angles);
1577  private:
1578  const ::jaiabot::protobuf::IMUData_EulerAngles& _internal_euler_angles() const;
1579  ::jaiabot::protobuf::IMUData_EulerAngles* _internal_mutable_euler_angles();
1580  public:
1581  void unsafe_arena_set_allocated_euler_angles(
1582  ::jaiabot::protobuf::IMUData_EulerAngles* euler_angles);
1583  ::jaiabot::protobuf::IMUData_EulerAngles* unsafe_arena_release_euler_angles();
1584 
1585  // optional .jaiabot.protobuf.IMUData.Acceleration linear_acceleration = 2;
1586  bool has_linear_acceleration() const;
1587  private:
1588  bool _internal_has_linear_acceleration() const;
1589  public:
1590  void clear_linear_acceleration();
1591  const ::jaiabot::protobuf::IMUData_Acceleration& linear_acceleration() const;
1592  ::jaiabot::protobuf::IMUData_Acceleration* release_linear_acceleration();
1593  ::jaiabot::protobuf::IMUData_Acceleration* mutable_linear_acceleration();
1594  void set_allocated_linear_acceleration(::jaiabot::protobuf::IMUData_Acceleration* linear_acceleration);
1595  private:
1596  const ::jaiabot::protobuf::IMUData_Acceleration& _internal_linear_acceleration() const;
1597  ::jaiabot::protobuf::IMUData_Acceleration* _internal_mutable_linear_acceleration();
1598  public:
1599  void unsafe_arena_set_allocated_linear_acceleration(
1600  ::jaiabot::protobuf::IMUData_Acceleration* linear_acceleration);
1601  ::jaiabot::protobuf::IMUData_Acceleration* unsafe_arena_release_linear_acceleration();
1602 
1603  // optional .jaiabot.protobuf.IMUData.Acceleration gravity = 3;
1604  bool has_gravity() const;
1605  private:
1606  bool _internal_has_gravity() const;
1607  public:
1608  void clear_gravity();
1609  const ::jaiabot::protobuf::IMUData_Acceleration& gravity() const;
1610  ::jaiabot::protobuf::IMUData_Acceleration* release_gravity();
1611  ::jaiabot::protobuf::IMUData_Acceleration* mutable_gravity();
1612  void set_allocated_gravity(::jaiabot::protobuf::IMUData_Acceleration* gravity);
1613  private:
1614  const ::jaiabot::protobuf::IMUData_Acceleration& _internal_gravity() const;
1615  ::jaiabot::protobuf::IMUData_Acceleration* _internal_mutable_gravity();
1616  public:
1617  void unsafe_arena_set_allocated_gravity(
1618  ::jaiabot::protobuf::IMUData_Acceleration* gravity);
1619  ::jaiabot::protobuf::IMUData_Acceleration* unsafe_arena_release_gravity();
1620 
1621  // optional .jaiabot.protobuf.IMUData.Accuracies accuracies = 4;
1622  bool has_accuracies() const;
1623  private:
1624  bool _internal_has_accuracies() const;
1625  public:
1626  void clear_accuracies();
1627  const ::jaiabot::protobuf::IMUData_Accuracies& accuracies() const;
1628  ::jaiabot::protobuf::IMUData_Accuracies* release_accuracies();
1629  ::jaiabot::protobuf::IMUData_Accuracies* mutable_accuracies();
1630  void set_allocated_accuracies(::jaiabot::protobuf::IMUData_Accuracies* accuracies);
1631  private:
1632  const ::jaiabot::protobuf::IMUData_Accuracies& _internal_accuracies() const;
1633  ::jaiabot::protobuf::IMUData_Accuracies* _internal_mutable_accuracies();
1634  public:
1635  void unsafe_arena_set_allocated_accuracies(
1636  ::jaiabot::protobuf::IMUData_Accuracies* accuracies);
1637  ::jaiabot::protobuf::IMUData_Accuracies* unsafe_arena_release_accuracies();
1638 
1639  // optional .jaiabot.protobuf.IMUData.AngularVelocity angular_velocity = 9;
1640  bool has_angular_velocity() const;
1641  private:
1642  bool _internal_has_angular_velocity() const;
1643  public:
1644  void clear_angular_velocity();
1645  const ::jaiabot::protobuf::IMUData_AngularVelocity& angular_velocity() const;
1646  ::jaiabot::protobuf::IMUData_AngularVelocity* release_angular_velocity();
1647  ::jaiabot::protobuf::IMUData_AngularVelocity* mutable_angular_velocity();
1648  void set_allocated_angular_velocity(::jaiabot::protobuf::IMUData_AngularVelocity* angular_velocity);
1649  private:
1650  const ::jaiabot::protobuf::IMUData_AngularVelocity& _internal_angular_velocity() const;
1651  ::jaiabot::protobuf::IMUData_AngularVelocity* _internal_mutable_angular_velocity();
1652  public:
1653  void unsafe_arena_set_allocated_angular_velocity(
1654  ::jaiabot::protobuf::IMUData_AngularVelocity* angular_velocity);
1655  ::jaiabot::protobuf::IMUData_AngularVelocity* unsafe_arena_release_angular_velocity();
1656 
1657  // optional .jaiabot.protobuf.IMUData.Quaternion quaternion = 10;
1658  bool has_quaternion() const;
1659  private:
1660  bool _internal_has_quaternion() const;
1661  public:
1662  void clear_quaternion();
1663  const ::jaiabot::protobuf::IMUData_Quaternion& quaternion() const;
1664  ::jaiabot::protobuf::IMUData_Quaternion* release_quaternion();
1665  ::jaiabot::protobuf::IMUData_Quaternion* mutable_quaternion();
1666  void set_allocated_quaternion(::jaiabot::protobuf::IMUData_Quaternion* quaternion);
1667  private:
1668  const ::jaiabot::protobuf::IMUData_Quaternion& _internal_quaternion() const;
1669  ::jaiabot::protobuf::IMUData_Quaternion* _internal_mutable_quaternion();
1670  public:
1671  void unsafe_arena_set_allocated_quaternion(
1672  ::jaiabot::protobuf::IMUData_Quaternion* quaternion);
1673  ::jaiabot::protobuf::IMUData_Quaternion* unsafe_arena_release_quaternion();
1674 
1675  // optional double significant_wave_height = 7 [(.dccl.field) = {
1676  bool has_significant_wave_height() const;
1677  private:
1678  bool _internal_has_significant_wave_height() const;
1679  public:
1680  void clear_significant_wave_height();
1681  double significant_wave_height() const;
1682  void set_significant_wave_height(double value);
1683  private:
1684  double _internal_significant_wave_height() const;
1685  void _internal_set_significant_wave_height(double value);
1686  public:
1687 
1688  // optional double max_acceleration = 8 [(.dccl.field) = {
1689  bool has_max_acceleration() const;
1690  private:
1691  bool _internal_has_max_acceleration() const;
1692  public:
1693  void clear_max_acceleration();
1694  double max_acceleration() const;
1695  void set_max_acceleration(double value);
1696  private:
1697  double _internal_max_acceleration() const;
1698  void _internal_set_max_acceleration(double value);
1699  public:
1700 
1701  // optional bool bot_rolled_over = 6 [default = false];
1702  bool has_bot_rolled_over() const;
1703  private:
1704  bool _internal_has_bot_rolled_over() const;
1705  public:
1706  void clear_bot_rolled_over();
1707  bool bot_rolled_over() const;
1708  void set_bot_rolled_over(bool value);
1709  private:
1710  bool _internal_bot_rolled_over() const;
1711  void _internal_set_bot_rolled_over(bool value);
1712  public:
1713 
1714  // optional .jaiabot.protobuf.IMUCalibrationState calibration_state = 5;
1715  bool has_calibration_state() const;
1716  private:
1717  bool _internal_has_calibration_state() const;
1718  public:
1719  void clear_calibration_state();
1720  ::jaiabot::protobuf::IMUCalibrationState calibration_state() const;
1721  void set_calibration_state(::jaiabot::protobuf::IMUCalibrationState value);
1722  private:
1723  ::jaiabot::protobuf::IMUCalibrationState _internal_calibration_state() const;
1724  void _internal_set_calibration_state(::jaiabot::protobuf::IMUCalibrationState value);
1725  public:
1726 
1727  typedef boost::units::length_dimension significant_wave_height_dimension;
1728 
1730 
1731  template<typename Quantity >
1732  void set_significant_wave_height_with_units(Quantity value_w_units)
1733  { set_significant_wave_height(boost::units::quantity<significant_wave_height_unit,double >(value_w_units).value() ); };
1734 
1735  template<typename Quantity >
1737  { return Quantity(significant_wave_height() * significant_wave_height_unit()); };
1738 
1739  boost::units::quantity< significant_wave_height_unit,double > significant_wave_height_with_units() const
1740  { return significant_wave_height_with_units<boost::units::quantity< significant_wave_height_unit,double > >(); };
1741 
1742  typedef boost::units::acceleration_dimension max_acceleration_dimension;
1743 
1744  typedef boost::units::unit<max_acceleration_dimension,boost::units::si::system> max_acceleration_unit;
1745 
1746  template<typename Quantity >
1747  void set_max_acceleration_with_units(Quantity value_w_units)
1748  { set_max_acceleration(boost::units::quantity<max_acceleration_unit,double >(value_w_units).value() ); };
1749 
1750  template<typename Quantity >
1752  { return Quantity(max_acceleration() * max_acceleration_unit()); };
1753 
1754  boost::units::quantity< max_acceleration_unit,double > max_acceleration_with_units() const
1755  { return max_acceleration_with_units<boost::units::quantity< max_acceleration_unit,double > >(); };
1756 
1757  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUData)
1758  private:
1759  class _Internal;
1760 
1761  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
1762  typedef void InternalArenaConstructable_;
1763  typedef void DestructorSkippable_;
1764  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
1765  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
1766  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr imu_type_;
1767  ::jaiabot::protobuf::IMUData_EulerAngles* euler_angles_;
1768  ::jaiabot::protobuf::IMUData_Acceleration* linear_acceleration_;
1769  ::jaiabot::protobuf::IMUData_Acceleration* gravity_;
1770  ::jaiabot::protobuf::IMUData_Accuracies* accuracies_;
1771  ::jaiabot::protobuf::IMUData_AngularVelocity* angular_velocity_;
1772  ::jaiabot::protobuf::IMUData_Quaternion* quaternion_;
1773  double significant_wave_height_;
1774  double max_acceleration_;
1775  bool bot_rolled_over_;
1776  int calibration_state_;
1777  friend struct ::TableStruct_jaiabot_2fmessages_2fimu_2eproto;
1778 };
1779 // -------------------------------------------------------------------
1780 
1781 class IMUIssue PROTOBUF_FINAL :
1782  public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:jaiabot.protobuf.IMUIssue) */ {
1783  public:
1784  inline IMUIssue() : IMUIssue(nullptr) {};
1785  virtual ~IMUIssue();
1786 
1787  IMUIssue(const IMUIssue& from);
1788  IMUIssue(IMUIssue&& from) noexcept
1789  : IMUIssue() {
1790  *this = ::std::move(from);
1791  }
1792 
1793  inline IMUIssue& operator=(const IMUIssue& from) {
1794  CopyFrom(from);
1795  return *this;
1796  }
1797  inline IMUIssue& operator=(IMUIssue&& from) noexcept {
1798  if (GetArena() == from.GetArena()) {
1799  if (this != &from) InternalSwap(&from);
1800  } else {
1801  CopyFrom(from);
1802  }
1803  return *this;
1804  }
1805 
1806  inline const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet& unknown_fields() const {
1807  return _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance);
1808  }
1809  inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet* mutable_unknown_fields() {
1810  return _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1811  }
1812 
1813  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() {
1814  return GetDescriptor();
1815  }
1816  static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() {
1817  return GetMetadataStatic().descriptor;
1818  }
1819  static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() {
1820  return GetMetadataStatic().reflection;
1821  }
1822  static const IMUIssue& default_instance();
1823 
1824  static void InitAsDefaultInstance(); // FOR INTERNAL USE ONLY
1825  static inline const IMUIssue* internal_default_instance() {
1826  return reinterpret_cast<const IMUIssue*>(
1828  }
1829  static constexpr int kIndexInFileMessages =
1830  7;
1831 
1832  friend void swap(IMUIssue& a, IMUIssue& b) {
1833  a.Swap(&b);
1834  }
1835  inline void Swap(IMUIssue* other) {
1836  if (other == this) return;
1837  if (GetArena() == other->GetArena()) {
1838  InternalSwap(other);
1839  } else {
1840  ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
1841  }
1842  }
1843  void UnsafeArenaSwap(IMUIssue* other) {
1844  if (other == this) return;
1845  GOOGLE_DCHECK(GetArena() == other->GetArena());
1846  InternalSwap(other);
1847  }
1848 
1849  // implements Message ----------------------------------------------
1850 
1851  inline IMUIssue* New() const final {
1852  return CreateMaybeMessage<IMUIssue>(nullptr);
1853  }
1854 
1855  IMUIssue* New(::PROTOBUF_NAMESPACE_ID::Arena* arena) const final {
1856  return CreateMaybeMessage<IMUIssue>(arena);
1857  }
1858  void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1859  void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message& from) final;
1860  void CopyFrom(const IMUIssue& from);
1861  void MergeFrom(const IMUIssue& from);
1862  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
1863  bool IsInitialized() const final;
1864 
1865  size_t ByteSizeLong() const final;
1866  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
1867  ::PROTOBUF_NAMESPACE_ID::uint8* _InternalSerialize(
1868  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
1869  int GetCachedSize() const final { return _cached_size_.Get(); }
1870 
1871  private:
1872  inline void SharedCtor();
1873  inline void SharedDtor();
1874  void SetCachedSize(int size) const final;
1875  void InternalSwap(IMUIssue* other);
1876  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
1877  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
1878  return "jaiabot.protobuf.IMUIssue";
1879  }
1880  protected:
1881  explicit IMUIssue(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1882  private:
1883  static void ArenaDtor(void* object);
1884  inline void RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena* arena);
1885  public:
1886 
1887  ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final;
1888  private:
1889  static ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadataStatic() {
1890  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&::descriptor_table_jaiabot_2fmessages_2fimu_2eproto);
1891  return ::descriptor_table_jaiabot_2fmessages_2fimu_2eproto.file_level_metadata[kIndexInFileMessages];
1892  }
1893 
1894  public:
1895 
1896  // nested types ----------------------------------------------------
1897 
1899  static constexpr SolutionType STOP_BOT =
1901  static constexpr SolutionType USE_COG =
1903  static constexpr SolutionType USE_CORRECTION =
1905  static constexpr SolutionType RESTART_BOT =
1907  static constexpr SolutionType REBOOT_BOT =
1909  static constexpr SolutionType REPORT_IMU =
1911  static constexpr SolutionType RESTART_IMU_PY =
1913  static constexpr SolutionType REBOOT_BNO085_IMU =
1915  static constexpr SolutionType REBOOT_BNO085_IMU_AND_RESTART_IMU_PY =
1917  static inline bool SolutionType_IsValid(int value) {
1918  return IMUIssue_SolutionType_IsValid(value);
1919  }
1920  static constexpr SolutionType SolutionType_MIN =
1922  static constexpr SolutionType SolutionType_MAX =
1924  static constexpr int SolutionType_ARRAYSIZE =
1926  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
1929  }
1930  template<typename T>
1931  static inline const std::string& SolutionType_Name(T enum_t_value) {
1932  static_assert(::std::is_same<T, SolutionType>::value ||
1933  ::std::is_integral<T>::value,
1934  "Incorrect type passed to function SolutionType_Name.");
1935  return IMUIssue_SolutionType_Name(enum_t_value);
1936  }
1937  static inline bool SolutionType_Parse(const std::string& name,
1938  SolutionType* value) {
1939  return IMUIssue_SolutionType_Parse(name, value);
1940  }
1941 
1943  static constexpr IssueType HEADING_COURSE_DIFFERENCE_TOO_LARGE =
1945  static inline bool IssueType_IsValid(int value) {
1946  return IMUIssue_IssueType_IsValid(value);
1947  }
1948  static constexpr IssueType IssueType_MIN =
1950  static constexpr IssueType IssueType_MAX =
1952  static constexpr int IssueType_ARRAYSIZE =
1954  static inline const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor*
1957  }
1958  template<typename T>
1959  static inline const std::string& IssueType_Name(T enum_t_value) {
1960  static_assert(::std::is_same<T, IssueType>::value ||
1961  ::std::is_integral<T>::value,
1962  "Incorrect type passed to function IssueType_Name.");
1963  return IMUIssue_IssueType_Name(enum_t_value);
1964  }
1965  static inline bool IssueType_Parse(const std::string& name,
1966  IssueType* value) {
1967  return IMUIssue_IssueType_Parse(name, value);
1968  }
1969 
1970  // accessors -------------------------------------------------------
1971 
1972  enum : int {
1973  kSolutionFieldNumber = 1,
1974  kTypeFieldNumber = 2,
1975  kMissionStateFieldNumber = 3,
1976  kHeadingFieldNumber = 31,
1977  kDesiredHeadingFieldNumber = 32,
1978  kCourseOverGroundFieldNumber = 33,
1979  kHeadingCourseDifferenceFieldNumber = 34,
1980  kPitchFieldNumber = 35,
1981  kSpeedOverGroundFieldNumber = 36,
1982  kDesiredSpeedFieldNumber = 37,
1983  kImuHeadingCourseMaxDiffFieldNumber = 30,
1984  };
1985  // required .jaiabot.protobuf.IMUIssue.SolutionType solution = 1;
1986  bool has_solution() const;
1987  private:
1988  bool _internal_has_solution() const;
1989  public:
1993  private:
1994  ::jaiabot::protobuf::IMUIssue_SolutionType _internal_solution() const;
1995  void _internal_set_solution(::jaiabot::protobuf::IMUIssue_SolutionType value);
1996  public:
1997 
1998  // optional .jaiabot.protobuf.IMUIssue.IssueType type = 2;
1999  bool has_type() const;
2000  private:
2001  bool _internal_has_type() const;
2002  public:
2003  void clear_type();
2006  private:
2007  ::jaiabot::protobuf::IMUIssue_IssueType _internal_type() const;
2008  void _internal_set_type(::jaiabot::protobuf::IMUIssue_IssueType value);
2009  public:
2010 
2011  // optional .jaiabot.protobuf.MissionState mission_state = 3;
2012  bool has_mission_state() const;
2013  private:
2014  bool _internal_has_mission_state() const;
2015  public:
2019  private:
2020  ::jaiabot::protobuf::MissionState _internal_mission_state() const;
2021  void _internal_set_mission_state(::jaiabot::protobuf::MissionState value);
2022  public:
2023 
2024  // optional double heading = 31 [(.dccl.field) = {
2025  bool has_heading() const;
2026  private:
2027  bool _internal_has_heading() const;
2028  public:
2030  double heading() const;
2031  void set_heading(double value);
2032  private:
2033  double _internal_heading() const;
2034  void _internal_set_heading(double value);
2035  public:
2036 
2037  // optional double desired_heading = 32 [(.dccl.field) = {
2038  bool has_desired_heading() const;
2039  private:
2040  bool _internal_has_desired_heading() const;
2041  public:
2043  double desired_heading() const;
2044  void set_desired_heading(double value);
2045  private:
2046  double _internal_desired_heading() const;
2047  void _internal_set_desired_heading(double value);
2048  public:
2049 
2050  // optional double course_over_ground = 33 [(.dccl.field) = {
2052  private:
2053  bool _internal_has_course_over_ground() const;
2054  public:
2056  double course_over_ground() const;
2057  void set_course_over_ground(double value);
2058  private:
2059  double _internal_course_over_ground() const;
2060  void _internal_set_course_over_ground(double value);
2061  public:
2062 
2063  // optional double heading_course_difference = 34 [(.dccl.field) = {
2065  private:
2066  bool _internal_has_heading_course_difference() const;
2067  public:
2070  void set_heading_course_difference(double value);
2071  private:
2072  double _internal_heading_course_difference() const;
2073  void _internal_set_heading_course_difference(double value);
2074  public:
2075 
2076  // optional double pitch = 35 [(.dccl.field) = {
2077  bool has_pitch() const;
2078  private:
2079  bool _internal_has_pitch() const;
2080  public:
2081  void clear_pitch();
2082  double pitch() const;
2083  void set_pitch(double value);
2084  private:
2085  double _internal_pitch() const;
2086  void _internal_set_pitch(double value);
2087  public:
2088 
2089  // optional double speed_over_ground = 36 [(.dccl.field) = {
2091  private:
2092  bool _internal_has_speed_over_ground() const;
2093  public:
2095  double speed_over_ground() const;
2096  void set_speed_over_ground(double value);
2097  private:
2098  double _internal_speed_over_ground() const;
2099  void _internal_set_speed_over_ground(double value);
2100  public:
2101 
2102  // optional double desired_speed = 37 [(.dccl.field) = {
2103  bool has_desired_speed() const;
2104  private:
2105  bool _internal_has_desired_speed() const;
2106  public:
2108  double desired_speed() const;
2109  void set_desired_speed(double value);
2110  private:
2111  double _internal_desired_speed() const;
2112  void _internal_set_desired_speed(double value);
2113  public:
2114 
2115  // optional double imu_heading_course_max_diff = 30 [default = 45];
2117  private:
2118  bool _internal_has_imu_heading_course_max_diff() const;
2119  public:
2123  private:
2124  double _internal_imu_heading_course_max_diff() const;
2125  void _internal_set_imu_heading_course_max_diff(double value);
2126  public:
2127 
2128  typedef boost::units::plane_angle_dimension heading_dimension;
2129 
2130  typedef boost::units::unit<heading_dimension,boost::units::degree::system> heading_unit;
2131 
2132  template<typename Quantity >
2133  void set_heading_with_units(Quantity value_w_units)
2134  { set_heading(boost::units::quantity<heading_unit,double >(value_w_units).value() ); };
2135 
2136  template<typename Quantity >
2137  Quantity heading_with_units() const
2138  { return Quantity(heading() * heading_unit()); };
2139 
2140  boost::units::quantity< heading_unit,double > heading_with_units() const
2141  { return heading_with_units<boost::units::quantity< heading_unit,double > >(); };
2142 
2143  typedef boost::units::plane_angle_dimension desired_heading_dimension;
2144 
2145  typedef boost::units::unit<desired_heading_dimension,boost::units::degree::system> desired_heading_unit;
2146 
2147  template<typename Quantity >
2148  void set_desired_heading_with_units(Quantity value_w_units)
2149  { set_desired_heading(boost::units::quantity<desired_heading_unit,double >(value_w_units).value() ); };
2150 
2151  template<typename Quantity >
2153  { return Quantity(desired_heading() * desired_heading_unit()); };
2154 
2155  boost::units::quantity< desired_heading_unit,double > desired_heading_with_units() const
2156  { return desired_heading_with_units<boost::units::quantity< desired_heading_unit,double > >(); };
2157 
2158  typedef boost::units::plane_angle_dimension course_over_ground_dimension;
2159 
2160  typedef boost::units::unit<course_over_ground_dimension,boost::units::degree::system> course_over_ground_unit;
2161 
2162  template<typename Quantity >
2163  void set_course_over_ground_with_units(Quantity value_w_units)
2164  { set_course_over_ground(boost::units::quantity<course_over_ground_unit,double >(value_w_units).value() ); };
2165 
2166  template<typename Quantity >
2168  { return Quantity(course_over_ground() * course_over_ground_unit()); };
2169 
2170  boost::units::quantity< course_over_ground_unit,double > course_over_ground_with_units() const
2171  { return course_over_ground_with_units<boost::units::quantity< course_over_ground_unit,double > >(); };
2172 
2173  typedef boost::units::plane_angle_dimension heading_course_difference_dimension;
2174 
2175  typedef boost::units::unit<heading_course_difference_dimension,boost::units::degree::system> heading_course_difference_unit;
2176 
2177  template<typename Quantity >
2178  void set_heading_course_difference_with_units(Quantity value_w_units)
2179  { set_heading_course_difference(boost::units::quantity<heading_course_difference_unit,double >(value_w_units).value() ); };
2180 
2181  template<typename Quantity >
2183  { return Quantity(heading_course_difference() * heading_course_difference_unit()); };
2184 
2185  boost::units::quantity< heading_course_difference_unit,double > heading_course_difference_with_units() const
2186  { return heading_course_difference_with_units<boost::units::quantity< heading_course_difference_unit,double > >(); };
2187 
2188  typedef boost::units::plane_angle_dimension pitch_dimension;
2189 
2190  typedef boost::units::unit<pitch_dimension,boost::units::degree::system> pitch_unit;
2191 
2192  template<typename Quantity >
2193  void set_pitch_with_units(Quantity value_w_units)
2194  { set_pitch(boost::units::quantity<pitch_unit,double >(value_w_units).value() ); };
2195 
2196  template<typename Quantity >
2197  Quantity pitch_with_units() const
2198  { return Quantity(pitch() * pitch_unit()); };
2199 
2200  boost::units::quantity< pitch_unit,double > pitch_with_units() const
2201  { return pitch_with_units<boost::units::quantity< pitch_unit,double > >(); };
2202 
2203  typedef boost::units::velocity_dimension speed_over_ground_dimension;
2204 
2205  typedef boost::units::unit<speed_over_ground_dimension,boost::units::si::system> speed_over_ground_unit;
2206 
2207  template<typename Quantity >
2208  void set_speed_over_ground_with_units(Quantity value_w_units)
2209  { set_speed_over_ground(boost::units::quantity<speed_over_ground_unit,double >(value_w_units).value() ); };
2210 
2211  template<typename Quantity >
2213  { return Quantity(speed_over_ground() * speed_over_ground_unit()); };
2214 
2215  boost::units::quantity< speed_over_ground_unit,double > speed_over_ground_with_units() const
2216  { return speed_over_ground_with_units<boost::units::quantity< speed_over_ground_unit,double > >(); };
2217 
2218  typedef boost::units::velocity_dimension desired_speed_dimension;
2219 
2220  typedef boost::units::unit<desired_speed_dimension,boost::units::si::system> desired_speed_unit;
2221 
2222  template<typename Quantity >
2223  void set_desired_speed_with_units(Quantity value_w_units)
2224  { set_desired_speed(boost::units::quantity<desired_speed_unit,double >(value_w_units).value() ); };
2225 
2226  template<typename Quantity >
2227  Quantity desired_speed_with_units() const
2228  { return Quantity(desired_speed() * desired_speed_unit()); };
2229 
2230  boost::units::quantity< desired_speed_unit,double > desired_speed_with_units() const
2231  { return desired_speed_with_units<boost::units::quantity< desired_speed_unit,double > >(); };
2232 
2233  // @@protoc_insertion_point(class_scope:jaiabot.protobuf.IMUIssue)
2234  private:
2235  class _Internal;
2236 
2237  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
2238  typedef void InternalArenaConstructable_;
2239  typedef void DestructorSkippable_;
2240  ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
2241  mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
2242  int solution_;
2243  int type_;
2244  int mission_state_;
2245  double heading_;
2246  double desired_heading_;
2247  double course_over_ground_;
2248  double heading_course_difference_;
2249  double pitch_;
2250  double speed_over_ground_;
2251  double desired_speed_;
2252  double imu_heading_course_max_diff_;
2253  friend struct ::TableStruct_jaiabot_2fmessages_2fimu_2eproto;
2254 };
2255 // ===================================================================
2256 
2257 
2258 // ===================================================================
2259 
2260 #ifdef __GNUC__
2261  #pragma GCC diagnostic push
2262  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
2263 #endif // __GNUC__
2264 // IMUCommand
2265 
2266 // required .jaiabot.protobuf.IMUCommand.IMUCommandType type = 1;
2267 inline bool IMUCommand::_internal_has_type() const {
2268  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2269  return value;
2270 }
2271 inline bool IMUCommand::has_type() const {
2272  return _internal_has_type();
2273 }
2274 inline void IMUCommand::clear_type() {
2275  type_ = 0;
2276  _has_bits_[0] &= ~0x00000001u;
2277 }
2278 inline ::jaiabot::protobuf::IMUCommand_IMUCommandType IMUCommand::_internal_type() const {
2279  return static_cast< ::jaiabot::protobuf::IMUCommand_IMUCommandType >(type_);
2280 }
2282  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUCommand.type)
2283  return _internal_type();
2284 }
2285 inline void IMUCommand::_internal_set_type(::jaiabot::protobuf::IMUCommand_IMUCommandType value) {
2287  _has_bits_[0] |= 0x00000001u;
2288  type_ = value;
2289 }
2290 inline void IMUCommand::set_type(::jaiabot::protobuf::IMUCommand_IMUCommandType value) {
2291  _internal_set_type(value);
2292  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUCommand.type)
2293 }
2294 
2295 // -------------------------------------------------------------------
2296 
2297 // IMUData_EulerAngles
2298 
2299 // optional double heading = 1 [(.dccl.field) = {
2300 inline bool IMUData_EulerAngles::_internal_has_heading() const {
2301  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2302  return value;
2303 }
2304 inline bool IMUData_EulerAngles::has_heading() const {
2305  return _internal_has_heading();
2306 }
2307 inline void IMUData_EulerAngles::clear_heading() {
2308  heading_ = 0;
2309  _has_bits_[0] &= ~0x00000001u;
2310 }
2311 inline double IMUData_EulerAngles::_internal_heading() const {
2312  return heading_;
2313 }
2314 inline double IMUData_EulerAngles::heading() const {
2315  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.EulerAngles.heading)
2316  return _internal_heading();
2317 }
2318 inline void IMUData_EulerAngles::_internal_set_heading(double value) {
2319  _has_bits_[0] |= 0x00000001u;
2320  heading_ = value;
2321 }
2322 inline void IMUData_EulerAngles::set_heading(double value) {
2323  _internal_set_heading(value);
2324  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.EulerAngles.heading)
2325 }
2326 
2327 // optional double pitch = 2 [(.dccl.field) = {
2328 inline bool IMUData_EulerAngles::_internal_has_pitch() const {
2329  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2330  return value;
2331 }
2332 inline bool IMUData_EulerAngles::has_pitch() const {
2333  return _internal_has_pitch();
2334 }
2335 inline void IMUData_EulerAngles::clear_pitch() {
2336  pitch_ = 0;
2337  _has_bits_[0] &= ~0x00000002u;
2338 }
2339 inline double IMUData_EulerAngles::_internal_pitch() const {
2340  return pitch_;
2341 }
2342 inline double IMUData_EulerAngles::pitch() const {
2343  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.EulerAngles.pitch)
2344  return _internal_pitch();
2345 }
2346 inline void IMUData_EulerAngles::_internal_set_pitch(double value) {
2347  _has_bits_[0] |= 0x00000002u;
2348  pitch_ = value;
2349 }
2350 inline void IMUData_EulerAngles::set_pitch(double value) {
2351  _internal_set_pitch(value);
2352  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.EulerAngles.pitch)
2353 }
2354 
2355 // optional double roll = 3 [(.dccl.field) = {
2356 inline bool IMUData_EulerAngles::_internal_has_roll() const {
2357  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2358  return value;
2359 }
2360 inline bool IMUData_EulerAngles::has_roll() const {
2361  return _internal_has_roll();
2362 }
2363 inline void IMUData_EulerAngles::clear_roll() {
2364  roll_ = 0;
2365  _has_bits_[0] &= ~0x00000004u;
2366 }
2367 inline double IMUData_EulerAngles::_internal_roll() const {
2368  return roll_;
2369 }
2370 inline double IMUData_EulerAngles::roll() const {
2371  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.EulerAngles.roll)
2372  return _internal_roll();
2373 }
2374 inline void IMUData_EulerAngles::_internal_set_roll(double value) {
2375  _has_bits_[0] |= 0x00000004u;
2376  roll_ = value;
2377 }
2378 inline void IMUData_EulerAngles::set_roll(double value) {
2379  _internal_set_roll(value);
2380  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.EulerAngles.roll)
2381 }
2382 
2383 // -------------------------------------------------------------------
2384 
2385 // IMUData_Acceleration
2386 
2387 // optional double x = 1;
2388 inline bool IMUData_Acceleration::_internal_has_x() const {
2389  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2390  return value;
2391 }
2392 inline bool IMUData_Acceleration::has_x() const {
2393  return _internal_has_x();
2394 }
2395 inline void IMUData_Acceleration::clear_x() {
2396  x_ = 0;
2397  _has_bits_[0] &= ~0x00000001u;
2398 }
2399 inline double IMUData_Acceleration::_internal_x() const {
2400  return x_;
2401 }
2402 inline double IMUData_Acceleration::x() const {
2403  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Acceleration.x)
2404  return _internal_x();
2405 }
2406 inline void IMUData_Acceleration::_internal_set_x(double value) {
2407  _has_bits_[0] |= 0x00000001u;
2408  x_ = value;
2409 }
2410 inline void IMUData_Acceleration::set_x(double value) {
2411  _internal_set_x(value);
2412  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Acceleration.x)
2413 }
2414 
2415 // optional double y = 2;
2416 inline bool IMUData_Acceleration::_internal_has_y() const {
2417  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2418  return value;
2419 }
2420 inline bool IMUData_Acceleration::has_y() const {
2421  return _internal_has_y();
2422 }
2423 inline void IMUData_Acceleration::clear_y() {
2424  y_ = 0;
2425  _has_bits_[0] &= ~0x00000002u;
2426 }
2427 inline double IMUData_Acceleration::_internal_y() const {
2428  return y_;
2429 }
2430 inline double IMUData_Acceleration::y() const {
2431  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Acceleration.y)
2432  return _internal_y();
2433 }
2434 inline void IMUData_Acceleration::_internal_set_y(double value) {
2435  _has_bits_[0] |= 0x00000002u;
2436  y_ = value;
2437 }
2438 inline void IMUData_Acceleration::set_y(double value) {
2439  _internal_set_y(value);
2440  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Acceleration.y)
2441 }
2442 
2443 // optional double z = 3;
2444 inline bool IMUData_Acceleration::_internal_has_z() const {
2445  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2446  return value;
2447 }
2448 inline bool IMUData_Acceleration::has_z() const {
2449  return _internal_has_z();
2450 }
2451 inline void IMUData_Acceleration::clear_z() {
2452  z_ = 0;
2453  _has_bits_[0] &= ~0x00000004u;
2454 }
2455 inline double IMUData_Acceleration::_internal_z() const {
2456  return z_;
2457 }
2458 inline double IMUData_Acceleration::z() const {
2459  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Acceleration.z)
2460  return _internal_z();
2461 }
2462 inline void IMUData_Acceleration::_internal_set_z(double value) {
2463  _has_bits_[0] |= 0x00000004u;
2464  z_ = value;
2465 }
2466 inline void IMUData_Acceleration::set_z(double value) {
2467  _internal_set_z(value);
2468  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Acceleration.z)
2469 }
2470 
2471 // -------------------------------------------------------------------
2472 
2473 // IMUData_Accuracies
2474 
2475 // optional int32 accelerometer = 1 [(.dccl.field) = {
2476 inline bool IMUData_Accuracies::_internal_has_accelerometer() const {
2477  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2478  return value;
2479 }
2480 inline bool IMUData_Accuracies::has_accelerometer() const {
2481  return _internal_has_accelerometer();
2482 }
2483 inline void IMUData_Accuracies::clear_accelerometer() {
2484  accelerometer_ = 0;
2485  _has_bits_[0] &= ~0x00000001u;
2486 }
2487 inline ::PROTOBUF_NAMESPACE_ID::int32 IMUData_Accuracies::_internal_accelerometer() const {
2488  return accelerometer_;
2489 }
2490 inline ::PROTOBUF_NAMESPACE_ID::int32 IMUData_Accuracies::accelerometer() const {
2491  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Accuracies.accelerometer)
2492  return _internal_accelerometer();
2493 }
2494 inline void IMUData_Accuracies::_internal_set_accelerometer(::PROTOBUF_NAMESPACE_ID::int32 value) {
2495  _has_bits_[0] |= 0x00000001u;
2496  accelerometer_ = value;
2497 }
2498 inline void IMUData_Accuracies::set_accelerometer(::PROTOBUF_NAMESPACE_ID::int32 value) {
2499  _internal_set_accelerometer(value);
2500  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Accuracies.accelerometer)
2501 }
2502 
2503 // optional int32 gyroscope = 2 [(.dccl.field) = {
2504 inline bool IMUData_Accuracies::_internal_has_gyroscope() const {
2505  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2506  return value;
2507 }
2508 inline bool IMUData_Accuracies::has_gyroscope() const {
2509  return _internal_has_gyroscope();
2510 }
2511 inline void IMUData_Accuracies::clear_gyroscope() {
2512  gyroscope_ = 0;
2513  _has_bits_[0] &= ~0x00000002u;
2514 }
2515 inline ::PROTOBUF_NAMESPACE_ID::int32 IMUData_Accuracies::_internal_gyroscope() const {
2516  return gyroscope_;
2517 }
2518 inline ::PROTOBUF_NAMESPACE_ID::int32 IMUData_Accuracies::gyroscope() const {
2519  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Accuracies.gyroscope)
2520  return _internal_gyroscope();
2521 }
2522 inline void IMUData_Accuracies::_internal_set_gyroscope(::PROTOBUF_NAMESPACE_ID::int32 value) {
2523  _has_bits_[0] |= 0x00000002u;
2524  gyroscope_ = value;
2525 }
2526 inline void IMUData_Accuracies::set_gyroscope(::PROTOBUF_NAMESPACE_ID::int32 value) {
2527  _internal_set_gyroscope(value);
2528  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Accuracies.gyroscope)
2529 }
2530 
2531 // optional int32 magnetometer = 3 [(.dccl.field) = {
2532 inline bool IMUData_Accuracies::_internal_has_magnetometer() const {
2533  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2534  return value;
2535 }
2536 inline bool IMUData_Accuracies::has_magnetometer() const {
2537  return _internal_has_magnetometer();
2538 }
2539 inline void IMUData_Accuracies::clear_magnetometer() {
2540  magnetometer_ = 0;
2541  _has_bits_[0] &= ~0x00000004u;
2542 }
2543 inline ::PROTOBUF_NAMESPACE_ID::int32 IMUData_Accuracies::_internal_magnetometer() const {
2544  return magnetometer_;
2545 }
2546 inline ::PROTOBUF_NAMESPACE_ID::int32 IMUData_Accuracies::magnetometer() const {
2547  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Accuracies.magnetometer)
2548  return _internal_magnetometer();
2549 }
2550 inline void IMUData_Accuracies::_internal_set_magnetometer(::PROTOBUF_NAMESPACE_ID::int32 value) {
2551  _has_bits_[0] |= 0x00000004u;
2552  magnetometer_ = value;
2553 }
2554 inline void IMUData_Accuracies::set_magnetometer(::PROTOBUF_NAMESPACE_ID::int32 value) {
2555  _internal_set_magnetometer(value);
2556  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Accuracies.magnetometer)
2557 }
2558 
2559 // -------------------------------------------------------------------
2560 
2561 // IMUData_AngularVelocity
2562 
2563 // optional double x = 1 [(.dccl.field) = {
2564 inline bool IMUData_AngularVelocity::_internal_has_x() const {
2565  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2566  return value;
2567 }
2568 inline bool IMUData_AngularVelocity::has_x() const {
2569  return _internal_has_x();
2570 }
2571 inline void IMUData_AngularVelocity::clear_x() {
2572  x_ = 0;
2573  _has_bits_[0] &= ~0x00000001u;
2574 }
2575 inline double IMUData_AngularVelocity::_internal_x() const {
2576  return x_;
2577 }
2578 inline double IMUData_AngularVelocity::x() const {
2579  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.AngularVelocity.x)
2580  return _internal_x();
2581 }
2582 inline void IMUData_AngularVelocity::_internal_set_x(double value) {
2583  _has_bits_[0] |= 0x00000001u;
2584  x_ = value;
2585 }
2586 inline void IMUData_AngularVelocity::set_x(double value) {
2587  _internal_set_x(value);
2588  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.AngularVelocity.x)
2589 }
2590 
2591 // optional double y = 2 [(.dccl.field) = {
2592 inline bool IMUData_AngularVelocity::_internal_has_y() const {
2593  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2594  return value;
2595 }
2596 inline bool IMUData_AngularVelocity::has_y() const {
2597  return _internal_has_y();
2598 }
2599 inline void IMUData_AngularVelocity::clear_y() {
2600  y_ = 0;
2601  _has_bits_[0] &= ~0x00000002u;
2602 }
2603 inline double IMUData_AngularVelocity::_internal_y() const {
2604  return y_;
2605 }
2606 inline double IMUData_AngularVelocity::y() const {
2607  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.AngularVelocity.y)
2608  return _internal_y();
2609 }
2610 inline void IMUData_AngularVelocity::_internal_set_y(double value) {
2611  _has_bits_[0] |= 0x00000002u;
2612  y_ = value;
2613 }
2614 inline void IMUData_AngularVelocity::set_y(double value) {
2615  _internal_set_y(value);
2616  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.AngularVelocity.y)
2617 }
2618 
2619 // optional double z = 3 [(.dccl.field) = {
2620 inline bool IMUData_AngularVelocity::_internal_has_z() const {
2621  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2622  return value;
2623 }
2624 inline bool IMUData_AngularVelocity::has_z() const {
2625  return _internal_has_z();
2626 }
2627 inline void IMUData_AngularVelocity::clear_z() {
2628  z_ = 0;
2629  _has_bits_[0] &= ~0x00000004u;
2630 }
2631 inline double IMUData_AngularVelocity::_internal_z() const {
2632  return z_;
2633 }
2634 inline double IMUData_AngularVelocity::z() const {
2635  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.AngularVelocity.z)
2636  return _internal_z();
2637 }
2638 inline void IMUData_AngularVelocity::_internal_set_z(double value) {
2639  _has_bits_[0] |= 0x00000004u;
2640  z_ = value;
2641 }
2642 inline void IMUData_AngularVelocity::set_z(double value) {
2643  _internal_set_z(value);
2644  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.AngularVelocity.z)
2645 }
2646 
2647 // -------------------------------------------------------------------
2648 
2649 // IMUData_Quaternion
2650 
2651 // optional double w = 1;
2652 inline bool IMUData_Quaternion::_internal_has_w() const {
2653  bool value = (_has_bits_[0] & 0x00000001u) != 0;
2654  return value;
2655 }
2656 inline bool IMUData_Quaternion::has_w() const {
2657  return _internal_has_w();
2658 }
2659 inline void IMUData_Quaternion::clear_w() {
2660  w_ = 0;
2661  _has_bits_[0] &= ~0x00000001u;
2662 }
2663 inline double IMUData_Quaternion::_internal_w() const {
2664  return w_;
2665 }
2666 inline double IMUData_Quaternion::w() const {
2667  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Quaternion.w)
2668  return _internal_w();
2669 }
2670 inline void IMUData_Quaternion::_internal_set_w(double value) {
2671  _has_bits_[0] |= 0x00000001u;
2672  w_ = value;
2673 }
2674 inline void IMUData_Quaternion::set_w(double value) {
2675  _internal_set_w(value);
2676  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Quaternion.w)
2677 }
2678 
2679 // optional double x = 2;
2680 inline bool IMUData_Quaternion::_internal_has_x() const {
2681  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2682  return value;
2683 }
2684 inline bool IMUData_Quaternion::has_x() const {
2685  return _internal_has_x();
2686 }
2687 inline void IMUData_Quaternion::clear_x() {
2688  x_ = 0;
2689  _has_bits_[0] &= ~0x00000002u;
2690 }
2691 inline double IMUData_Quaternion::_internal_x() const {
2692  return x_;
2693 }
2694 inline double IMUData_Quaternion::x() const {
2695  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Quaternion.x)
2696  return _internal_x();
2697 }
2698 inline void IMUData_Quaternion::_internal_set_x(double value) {
2699  _has_bits_[0] |= 0x00000002u;
2700  x_ = value;
2701 }
2702 inline void IMUData_Quaternion::set_x(double value) {
2703  _internal_set_x(value);
2704  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Quaternion.x)
2705 }
2706 
2707 // optional double y = 3;
2708 inline bool IMUData_Quaternion::_internal_has_y() const {
2709  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2710  return value;
2711 }
2712 inline bool IMUData_Quaternion::has_y() const {
2713  return _internal_has_y();
2714 }
2715 inline void IMUData_Quaternion::clear_y() {
2716  y_ = 0;
2717  _has_bits_[0] &= ~0x00000004u;
2718 }
2719 inline double IMUData_Quaternion::_internal_y() const {
2720  return y_;
2721 }
2722 inline double IMUData_Quaternion::y() const {
2723  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Quaternion.y)
2724  return _internal_y();
2725 }
2726 inline void IMUData_Quaternion::_internal_set_y(double value) {
2727  _has_bits_[0] |= 0x00000004u;
2728  y_ = value;
2729 }
2730 inline void IMUData_Quaternion::set_y(double value) {
2731  _internal_set_y(value);
2732  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Quaternion.y)
2733 }
2734 
2735 // optional double z = 4;
2736 inline bool IMUData_Quaternion::_internal_has_z() const {
2737  bool value = (_has_bits_[0] & 0x00000008u) != 0;
2738  return value;
2739 }
2740 inline bool IMUData_Quaternion::has_z() const {
2741  return _internal_has_z();
2742 }
2743 inline void IMUData_Quaternion::clear_z() {
2744  z_ = 0;
2745  _has_bits_[0] &= ~0x00000008u;
2746 }
2747 inline double IMUData_Quaternion::_internal_z() const {
2748  return z_;
2749 }
2750 inline double IMUData_Quaternion::z() const {
2751  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.Quaternion.z)
2752  return _internal_z();
2753 }
2754 inline void IMUData_Quaternion::_internal_set_z(double value) {
2755  _has_bits_[0] |= 0x00000008u;
2756  z_ = value;
2757 }
2758 inline void IMUData_Quaternion::set_z(double value) {
2759  _internal_set_z(value);
2760  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.Quaternion.z)
2761 }
2762 
2763 // -------------------------------------------------------------------
2764 
2765 // IMUData
2766 
2767 // optional .jaiabot.protobuf.IMUData.EulerAngles euler_angles = 1;
2768 inline bool IMUData::_internal_has_euler_angles() const {
2769  bool value = (_has_bits_[0] & 0x00000002u) != 0;
2770  PROTOBUF_ASSUME(!value || euler_angles_ != nullptr);
2771  return value;
2772 }
2773 inline bool IMUData::has_euler_angles() const {
2774  return _internal_has_euler_angles();
2775 }
2776 inline void IMUData::clear_euler_angles() {
2777  if (euler_angles_ != nullptr) euler_angles_->Clear();
2778  _has_bits_[0] &= ~0x00000002u;
2779 }
2780 inline const ::jaiabot::protobuf::IMUData_EulerAngles& IMUData::_internal_euler_angles() const {
2781  const ::jaiabot::protobuf::IMUData_EulerAngles* p = euler_angles_;
2782  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::IMUData_EulerAngles*>(
2784 }
2785 inline const ::jaiabot::protobuf::IMUData_EulerAngles& IMUData::euler_angles() const {
2786  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.euler_angles)
2787  return _internal_euler_angles();
2788 }
2789 inline void IMUData::unsafe_arena_set_allocated_euler_angles(
2790  ::jaiabot::protobuf::IMUData_EulerAngles* euler_angles) {
2791  if (GetArena() == nullptr) {
2792  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(euler_angles_);
2793  }
2794  euler_angles_ = euler_angles;
2795  if (euler_angles) {
2796  _has_bits_[0] |= 0x00000002u;
2797  } else {
2798  _has_bits_[0] &= ~0x00000002u;
2799  }
2800  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.IMUData.euler_angles)
2801 }
2802 inline ::jaiabot::protobuf::IMUData_EulerAngles* IMUData::release_euler_angles() {
2803  auto temp = unsafe_arena_release_euler_angles();
2804  if (GetArena() != nullptr) {
2805  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2806  }
2807  return temp;
2808 }
2809 inline ::jaiabot::protobuf::IMUData_EulerAngles* IMUData::unsafe_arena_release_euler_angles() {
2810  // @@protoc_insertion_point(field_release:jaiabot.protobuf.IMUData.euler_angles)
2811  _has_bits_[0] &= ~0x00000002u;
2812  ::jaiabot::protobuf::IMUData_EulerAngles* temp = euler_angles_;
2813  euler_angles_ = nullptr;
2814  return temp;
2815 }
2816 inline ::jaiabot::protobuf::IMUData_EulerAngles* IMUData::_internal_mutable_euler_angles() {
2817  _has_bits_[0] |= 0x00000002u;
2818  if (euler_angles_ == nullptr) {
2819  auto* p = CreateMaybeMessage<::jaiabot::protobuf::IMUData_EulerAngles>(GetArena());
2820  euler_angles_ = p;
2821  }
2822  return euler_angles_;
2823 }
2824 inline ::jaiabot::protobuf::IMUData_EulerAngles* IMUData::mutable_euler_angles() {
2825  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.IMUData.euler_angles)
2826  return _internal_mutable_euler_angles();
2827 }
2828 inline void IMUData::set_allocated_euler_angles(::jaiabot::protobuf::IMUData_EulerAngles* euler_angles) {
2829  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2830  if (message_arena == nullptr) {
2831  delete euler_angles_;
2832  }
2833  if (euler_angles) {
2834  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2835  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(euler_angles);
2836  if (message_arena != submessage_arena) {
2837  euler_angles = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2838  message_arena, euler_angles, submessage_arena);
2839  }
2840  _has_bits_[0] |= 0x00000002u;
2841  } else {
2842  _has_bits_[0] &= ~0x00000002u;
2843  }
2844  euler_angles_ = euler_angles;
2845  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.IMUData.euler_angles)
2846 }
2847 
2848 // optional .jaiabot.protobuf.IMUData.Acceleration linear_acceleration = 2;
2849 inline bool IMUData::_internal_has_linear_acceleration() const {
2850  bool value = (_has_bits_[0] & 0x00000004u) != 0;
2851  PROTOBUF_ASSUME(!value || linear_acceleration_ != nullptr);
2852  return value;
2853 }
2854 inline bool IMUData::has_linear_acceleration() const {
2855  return _internal_has_linear_acceleration();
2856 }
2857 inline void IMUData::clear_linear_acceleration() {
2858  if (linear_acceleration_ != nullptr) linear_acceleration_->Clear();
2859  _has_bits_[0] &= ~0x00000004u;
2860 }
2861 inline const ::jaiabot::protobuf::IMUData_Acceleration& IMUData::_internal_linear_acceleration() const {
2862  const ::jaiabot::protobuf::IMUData_Acceleration* p = linear_acceleration_;
2863  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::IMUData_Acceleration*>(
2865 }
2866 inline const ::jaiabot::protobuf::IMUData_Acceleration& IMUData::linear_acceleration() const {
2867  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.linear_acceleration)
2868  return _internal_linear_acceleration();
2869 }
2870 inline void IMUData::unsafe_arena_set_allocated_linear_acceleration(
2871  ::jaiabot::protobuf::IMUData_Acceleration* linear_acceleration) {
2872  if (GetArena() == nullptr) {
2873  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(linear_acceleration_);
2874  }
2875  linear_acceleration_ = linear_acceleration;
2876  if (linear_acceleration) {
2877  _has_bits_[0] |= 0x00000004u;
2878  } else {
2879  _has_bits_[0] &= ~0x00000004u;
2880  }
2881  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.IMUData.linear_acceleration)
2882 }
2883 inline ::jaiabot::protobuf::IMUData_Acceleration* IMUData::release_linear_acceleration() {
2884  auto temp = unsafe_arena_release_linear_acceleration();
2885  if (GetArena() != nullptr) {
2886  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2887  }
2888  return temp;
2889 }
2890 inline ::jaiabot::protobuf::IMUData_Acceleration* IMUData::unsafe_arena_release_linear_acceleration() {
2891  // @@protoc_insertion_point(field_release:jaiabot.protobuf.IMUData.linear_acceleration)
2892  _has_bits_[0] &= ~0x00000004u;
2893  ::jaiabot::protobuf::IMUData_Acceleration* temp = linear_acceleration_;
2894  linear_acceleration_ = nullptr;
2895  return temp;
2896 }
2897 inline ::jaiabot::protobuf::IMUData_Acceleration* IMUData::_internal_mutable_linear_acceleration() {
2898  _has_bits_[0] |= 0x00000004u;
2899  if (linear_acceleration_ == nullptr) {
2900  auto* p = CreateMaybeMessage<::jaiabot::protobuf::IMUData_Acceleration>(GetArena());
2901  linear_acceleration_ = p;
2902  }
2903  return linear_acceleration_;
2904 }
2905 inline ::jaiabot::protobuf::IMUData_Acceleration* IMUData::mutable_linear_acceleration() {
2906  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.IMUData.linear_acceleration)
2907  return _internal_mutable_linear_acceleration();
2908 }
2909 inline void IMUData::set_allocated_linear_acceleration(::jaiabot::protobuf::IMUData_Acceleration* linear_acceleration) {
2910  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2911  if (message_arena == nullptr) {
2912  delete linear_acceleration_;
2913  }
2914  if (linear_acceleration) {
2915  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2916  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(linear_acceleration);
2917  if (message_arena != submessage_arena) {
2918  linear_acceleration = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
2919  message_arena, linear_acceleration, submessage_arena);
2920  }
2921  _has_bits_[0] |= 0x00000004u;
2922  } else {
2923  _has_bits_[0] &= ~0x00000004u;
2924  }
2925  linear_acceleration_ = linear_acceleration;
2926  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.IMUData.linear_acceleration)
2927 }
2928 
2929 // optional .jaiabot.protobuf.IMUData.Acceleration gravity = 3;
2930 inline bool IMUData::_internal_has_gravity() const {
2931  bool value = (_has_bits_[0] & 0x00000008u) != 0;
2932  PROTOBUF_ASSUME(!value || gravity_ != nullptr);
2933  return value;
2934 }
2935 inline bool IMUData::has_gravity() const {
2936  return _internal_has_gravity();
2937 }
2938 inline void IMUData::clear_gravity() {
2939  if (gravity_ != nullptr) gravity_->Clear();
2940  _has_bits_[0] &= ~0x00000008u;
2941 }
2942 inline const ::jaiabot::protobuf::IMUData_Acceleration& IMUData::_internal_gravity() const {
2943  const ::jaiabot::protobuf::IMUData_Acceleration* p = gravity_;
2944  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::IMUData_Acceleration*>(
2946 }
2947 inline const ::jaiabot::protobuf::IMUData_Acceleration& IMUData::gravity() const {
2948  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.gravity)
2949  return _internal_gravity();
2950 }
2951 inline void IMUData::unsafe_arena_set_allocated_gravity(
2952  ::jaiabot::protobuf::IMUData_Acceleration* gravity) {
2953  if (GetArena() == nullptr) {
2954  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(gravity_);
2955  }
2956  gravity_ = gravity;
2957  if (gravity) {
2958  _has_bits_[0] |= 0x00000008u;
2959  } else {
2960  _has_bits_[0] &= ~0x00000008u;
2961  }
2962  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.IMUData.gravity)
2963 }
2964 inline ::jaiabot::protobuf::IMUData_Acceleration* IMUData::release_gravity() {
2965  auto temp = unsafe_arena_release_gravity();
2966  if (GetArena() != nullptr) {
2967  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
2968  }
2969  return temp;
2970 }
2971 inline ::jaiabot::protobuf::IMUData_Acceleration* IMUData::unsafe_arena_release_gravity() {
2972  // @@protoc_insertion_point(field_release:jaiabot.protobuf.IMUData.gravity)
2973  _has_bits_[0] &= ~0x00000008u;
2974  ::jaiabot::protobuf::IMUData_Acceleration* temp = gravity_;
2975  gravity_ = nullptr;
2976  return temp;
2977 }
2978 inline ::jaiabot::protobuf::IMUData_Acceleration* IMUData::_internal_mutable_gravity() {
2979  _has_bits_[0] |= 0x00000008u;
2980  if (gravity_ == nullptr) {
2981  auto* p = CreateMaybeMessage<::jaiabot::protobuf::IMUData_Acceleration>(GetArena());
2982  gravity_ = p;
2983  }
2984  return gravity_;
2985 }
2986 inline ::jaiabot::protobuf::IMUData_Acceleration* IMUData::mutable_gravity() {
2987  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.IMUData.gravity)
2988  return _internal_mutable_gravity();
2989 }
2990 inline void IMUData::set_allocated_gravity(::jaiabot::protobuf::IMUData_Acceleration* gravity) {
2991  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
2992  if (message_arena == nullptr) {
2993  delete gravity_;
2994  }
2995  if (gravity) {
2996  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
2997  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(gravity);
2998  if (message_arena != submessage_arena) {
2999  gravity = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3000  message_arena, gravity, submessage_arena);
3001  }
3002  _has_bits_[0] |= 0x00000008u;
3003  } else {
3004  _has_bits_[0] &= ~0x00000008u;
3005  }
3006  gravity_ = gravity;
3007  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.IMUData.gravity)
3008 }
3009 
3010 // optional .jaiabot.protobuf.IMUData.Accuracies accuracies = 4;
3011 inline bool IMUData::_internal_has_accuracies() const {
3012  bool value = (_has_bits_[0] & 0x00000010u) != 0;
3013  PROTOBUF_ASSUME(!value || accuracies_ != nullptr);
3014  return value;
3015 }
3016 inline bool IMUData::has_accuracies() const {
3017  return _internal_has_accuracies();
3018 }
3019 inline void IMUData::clear_accuracies() {
3020  if (accuracies_ != nullptr) accuracies_->Clear();
3021  _has_bits_[0] &= ~0x00000010u;
3022 }
3023 inline const ::jaiabot::protobuf::IMUData_Accuracies& IMUData::_internal_accuracies() const {
3024  const ::jaiabot::protobuf::IMUData_Accuracies* p = accuracies_;
3025  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::IMUData_Accuracies*>(
3027 }
3028 inline const ::jaiabot::protobuf::IMUData_Accuracies& IMUData::accuracies() const {
3029  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.accuracies)
3030  return _internal_accuracies();
3031 }
3032 inline void IMUData::unsafe_arena_set_allocated_accuracies(
3033  ::jaiabot::protobuf::IMUData_Accuracies* accuracies) {
3034  if (GetArena() == nullptr) {
3035  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(accuracies_);
3036  }
3037  accuracies_ = accuracies;
3038  if (accuracies) {
3039  _has_bits_[0] |= 0x00000010u;
3040  } else {
3041  _has_bits_[0] &= ~0x00000010u;
3042  }
3043  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.IMUData.accuracies)
3044 }
3045 inline ::jaiabot::protobuf::IMUData_Accuracies* IMUData::release_accuracies() {
3046  auto temp = unsafe_arena_release_accuracies();
3047  if (GetArena() != nullptr) {
3048  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3049  }
3050  return temp;
3051 }
3052 inline ::jaiabot::protobuf::IMUData_Accuracies* IMUData::unsafe_arena_release_accuracies() {
3053  // @@protoc_insertion_point(field_release:jaiabot.protobuf.IMUData.accuracies)
3054  _has_bits_[0] &= ~0x00000010u;
3055  ::jaiabot::protobuf::IMUData_Accuracies* temp = accuracies_;
3056  accuracies_ = nullptr;
3057  return temp;
3058 }
3059 inline ::jaiabot::protobuf::IMUData_Accuracies* IMUData::_internal_mutable_accuracies() {
3060  _has_bits_[0] |= 0x00000010u;
3061  if (accuracies_ == nullptr) {
3062  auto* p = CreateMaybeMessage<::jaiabot::protobuf::IMUData_Accuracies>(GetArena());
3063  accuracies_ = p;
3064  }
3065  return accuracies_;
3066 }
3067 inline ::jaiabot::protobuf::IMUData_Accuracies* IMUData::mutable_accuracies() {
3068  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.IMUData.accuracies)
3069  return _internal_mutable_accuracies();
3070 }
3071 inline void IMUData::set_allocated_accuracies(::jaiabot::protobuf::IMUData_Accuracies* accuracies) {
3072  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3073  if (message_arena == nullptr) {
3074  delete accuracies_;
3075  }
3076  if (accuracies) {
3077  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3078  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(accuracies);
3079  if (message_arena != submessage_arena) {
3080  accuracies = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3081  message_arena, accuracies, submessage_arena);
3082  }
3083  _has_bits_[0] |= 0x00000010u;
3084  } else {
3085  _has_bits_[0] &= ~0x00000010u;
3086  }
3087  accuracies_ = accuracies;
3088  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.IMUData.accuracies)
3089 }
3090 
3091 // optional .jaiabot.protobuf.IMUCalibrationState calibration_state = 5;
3092 inline bool IMUData::_internal_has_calibration_state() const {
3093  bool value = (_has_bits_[0] & 0x00000400u) != 0;
3094  return value;
3095 }
3096 inline bool IMUData::has_calibration_state() const {
3097  return _internal_has_calibration_state();
3098 }
3099 inline void IMUData::clear_calibration_state() {
3100  calibration_state_ = 1;
3101  _has_bits_[0] &= ~0x00000400u;
3102 }
3103 inline ::jaiabot::protobuf::IMUCalibrationState IMUData::_internal_calibration_state() const {
3104  return static_cast< ::jaiabot::protobuf::IMUCalibrationState >(calibration_state_);
3105 }
3106 inline ::jaiabot::protobuf::IMUCalibrationState IMUData::calibration_state() const {
3107  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.calibration_state)
3108  return _internal_calibration_state();
3109 }
3110 inline void IMUData::_internal_set_calibration_state(::jaiabot::protobuf::IMUCalibrationState value) {
3112  _has_bits_[0] |= 0x00000400u;
3113  calibration_state_ = value;
3114 }
3115 inline void IMUData::set_calibration_state(::jaiabot::protobuf::IMUCalibrationState value) {
3116  _internal_set_calibration_state(value);
3117  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.calibration_state)
3118 }
3119 
3120 // optional bool bot_rolled_over = 6 [default = false];
3121 inline bool IMUData::_internal_has_bot_rolled_over() const {
3122  bool value = (_has_bits_[0] & 0x00000200u) != 0;
3123  return value;
3124 }
3125 inline bool IMUData::has_bot_rolled_over() const {
3126  return _internal_has_bot_rolled_over();
3127 }
3128 inline void IMUData::clear_bot_rolled_over() {
3129  bot_rolled_over_ = false;
3130  _has_bits_[0] &= ~0x00000200u;
3131 }
3132 inline bool IMUData::_internal_bot_rolled_over() const {
3133  return bot_rolled_over_;
3134 }
3135 inline bool IMUData::bot_rolled_over() const {
3136  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.bot_rolled_over)
3137  return _internal_bot_rolled_over();
3138 }
3139 inline void IMUData::_internal_set_bot_rolled_over(bool value) {
3140  _has_bits_[0] |= 0x00000200u;
3141  bot_rolled_over_ = value;
3142 }
3143 inline void IMUData::set_bot_rolled_over(bool value) {
3144  _internal_set_bot_rolled_over(value);
3145  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.bot_rolled_over)
3146 }
3147 
3148 // optional double significant_wave_height = 7 [(.dccl.field) = {
3149 inline bool IMUData::_internal_has_significant_wave_height() const {
3150  bool value = (_has_bits_[0] & 0x00000080u) != 0;
3151  return value;
3152 }
3153 inline bool IMUData::has_significant_wave_height() const {
3154  return _internal_has_significant_wave_height();
3155 }
3156 inline void IMUData::clear_significant_wave_height() {
3157  significant_wave_height_ = 0;
3158  _has_bits_[0] &= ~0x00000080u;
3159 }
3160 inline double IMUData::_internal_significant_wave_height() const {
3161  return significant_wave_height_;
3162 }
3163 inline double IMUData::significant_wave_height() const {
3164  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.significant_wave_height)
3165  return _internal_significant_wave_height();
3166 }
3167 inline void IMUData::_internal_set_significant_wave_height(double value) {
3168  _has_bits_[0] |= 0x00000080u;
3169  significant_wave_height_ = value;
3170 }
3171 inline void IMUData::set_significant_wave_height(double value) {
3172  _internal_set_significant_wave_height(value);
3173  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.significant_wave_height)
3174 }
3175 
3176 // optional double max_acceleration = 8 [(.dccl.field) = {
3177 inline bool IMUData::_internal_has_max_acceleration() const {
3178  bool value = (_has_bits_[0] & 0x00000100u) != 0;
3179  return value;
3180 }
3181 inline bool IMUData::has_max_acceleration() const {
3182  return _internal_has_max_acceleration();
3183 }
3184 inline void IMUData::clear_max_acceleration() {
3185  max_acceleration_ = 0;
3186  _has_bits_[0] &= ~0x00000100u;
3187 }
3188 inline double IMUData::_internal_max_acceleration() const {
3189  return max_acceleration_;
3190 }
3191 inline double IMUData::max_acceleration() const {
3192  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.max_acceleration)
3193  return _internal_max_acceleration();
3194 }
3195 inline void IMUData::_internal_set_max_acceleration(double value) {
3196  _has_bits_[0] |= 0x00000100u;
3197  max_acceleration_ = value;
3198 }
3199 inline void IMUData::set_max_acceleration(double value) {
3200  _internal_set_max_acceleration(value);
3201  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.max_acceleration)
3202 }
3203 
3204 // optional .jaiabot.protobuf.IMUData.AngularVelocity angular_velocity = 9;
3205 inline bool IMUData::_internal_has_angular_velocity() const {
3206  bool value = (_has_bits_[0] & 0x00000020u) != 0;
3207  PROTOBUF_ASSUME(!value || angular_velocity_ != nullptr);
3208  return value;
3209 }
3210 inline bool IMUData::has_angular_velocity() const {
3211  return _internal_has_angular_velocity();
3212 }
3213 inline void IMUData::clear_angular_velocity() {
3214  if (angular_velocity_ != nullptr) angular_velocity_->Clear();
3215  _has_bits_[0] &= ~0x00000020u;
3216 }
3217 inline const ::jaiabot::protobuf::IMUData_AngularVelocity& IMUData::_internal_angular_velocity() const {
3218  const ::jaiabot::protobuf::IMUData_AngularVelocity* p = angular_velocity_;
3219  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::IMUData_AngularVelocity*>(
3221 }
3222 inline const ::jaiabot::protobuf::IMUData_AngularVelocity& IMUData::angular_velocity() const {
3223  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.angular_velocity)
3224  return _internal_angular_velocity();
3225 }
3226 inline void IMUData::unsafe_arena_set_allocated_angular_velocity(
3227  ::jaiabot::protobuf::IMUData_AngularVelocity* angular_velocity) {
3228  if (GetArena() == nullptr) {
3229  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(angular_velocity_);
3230  }
3231  angular_velocity_ = angular_velocity;
3232  if (angular_velocity) {
3233  _has_bits_[0] |= 0x00000020u;
3234  } else {
3235  _has_bits_[0] &= ~0x00000020u;
3236  }
3237  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.IMUData.angular_velocity)
3238 }
3239 inline ::jaiabot::protobuf::IMUData_AngularVelocity* IMUData::release_angular_velocity() {
3240  auto temp = unsafe_arena_release_angular_velocity();
3241  if (GetArena() != nullptr) {
3242  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3243  }
3244  return temp;
3245 }
3246 inline ::jaiabot::protobuf::IMUData_AngularVelocity* IMUData::unsafe_arena_release_angular_velocity() {
3247  // @@protoc_insertion_point(field_release:jaiabot.protobuf.IMUData.angular_velocity)
3248  _has_bits_[0] &= ~0x00000020u;
3249  ::jaiabot::protobuf::IMUData_AngularVelocity* temp = angular_velocity_;
3250  angular_velocity_ = nullptr;
3251  return temp;
3252 }
3253 inline ::jaiabot::protobuf::IMUData_AngularVelocity* IMUData::_internal_mutable_angular_velocity() {
3254  _has_bits_[0] |= 0x00000020u;
3255  if (angular_velocity_ == nullptr) {
3256  auto* p = CreateMaybeMessage<::jaiabot::protobuf::IMUData_AngularVelocity>(GetArena());
3257  angular_velocity_ = p;
3258  }
3259  return angular_velocity_;
3260 }
3261 inline ::jaiabot::protobuf::IMUData_AngularVelocity* IMUData::mutable_angular_velocity() {
3262  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.IMUData.angular_velocity)
3263  return _internal_mutable_angular_velocity();
3264 }
3265 inline void IMUData::set_allocated_angular_velocity(::jaiabot::protobuf::IMUData_AngularVelocity* angular_velocity) {
3266  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3267  if (message_arena == nullptr) {
3268  delete angular_velocity_;
3269  }
3270  if (angular_velocity) {
3271  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3272  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(angular_velocity);
3273  if (message_arena != submessage_arena) {
3274  angular_velocity = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3275  message_arena, angular_velocity, submessage_arena);
3276  }
3277  _has_bits_[0] |= 0x00000020u;
3278  } else {
3279  _has_bits_[0] &= ~0x00000020u;
3280  }
3281  angular_velocity_ = angular_velocity;
3282  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.IMUData.angular_velocity)
3283 }
3284 
3285 // optional .jaiabot.protobuf.IMUData.Quaternion quaternion = 10;
3286 inline bool IMUData::_internal_has_quaternion() const {
3287  bool value = (_has_bits_[0] & 0x00000040u) != 0;
3288  PROTOBUF_ASSUME(!value || quaternion_ != nullptr);
3289  return value;
3290 }
3291 inline bool IMUData::has_quaternion() const {
3292  return _internal_has_quaternion();
3293 }
3294 inline void IMUData::clear_quaternion() {
3295  if (quaternion_ != nullptr) quaternion_->Clear();
3296  _has_bits_[0] &= ~0x00000040u;
3297 }
3298 inline const ::jaiabot::protobuf::IMUData_Quaternion& IMUData::_internal_quaternion() const {
3299  const ::jaiabot::protobuf::IMUData_Quaternion* p = quaternion_;
3300  return p != nullptr ? *p : *reinterpret_cast<const ::jaiabot::protobuf::IMUData_Quaternion*>(
3302 }
3303 inline const ::jaiabot::protobuf::IMUData_Quaternion& IMUData::quaternion() const {
3304  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.quaternion)
3305  return _internal_quaternion();
3306 }
3307 inline void IMUData::unsafe_arena_set_allocated_quaternion(
3308  ::jaiabot::protobuf::IMUData_Quaternion* quaternion) {
3309  if (GetArena() == nullptr) {
3310  delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(quaternion_);
3311  }
3312  quaternion_ = quaternion;
3313  if (quaternion) {
3314  _has_bits_[0] |= 0x00000040u;
3315  } else {
3316  _has_bits_[0] &= ~0x00000040u;
3317  }
3318  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.IMUData.quaternion)
3319 }
3320 inline ::jaiabot::protobuf::IMUData_Quaternion* IMUData::release_quaternion() {
3321  auto temp = unsafe_arena_release_quaternion();
3322  if (GetArena() != nullptr) {
3323  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
3324  }
3325  return temp;
3326 }
3327 inline ::jaiabot::protobuf::IMUData_Quaternion* IMUData::unsafe_arena_release_quaternion() {
3328  // @@protoc_insertion_point(field_release:jaiabot.protobuf.IMUData.quaternion)
3329  _has_bits_[0] &= ~0x00000040u;
3330  ::jaiabot::protobuf::IMUData_Quaternion* temp = quaternion_;
3331  quaternion_ = nullptr;
3332  return temp;
3333 }
3334 inline ::jaiabot::protobuf::IMUData_Quaternion* IMUData::_internal_mutable_quaternion() {
3335  _has_bits_[0] |= 0x00000040u;
3336  if (quaternion_ == nullptr) {
3337  auto* p = CreateMaybeMessage<::jaiabot::protobuf::IMUData_Quaternion>(GetArena());
3338  quaternion_ = p;
3339  }
3340  return quaternion_;
3341 }
3342 inline ::jaiabot::protobuf::IMUData_Quaternion* IMUData::mutable_quaternion() {
3343  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.IMUData.quaternion)
3344  return _internal_mutable_quaternion();
3345 }
3346 inline void IMUData::set_allocated_quaternion(::jaiabot::protobuf::IMUData_Quaternion* quaternion) {
3347  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArena();
3348  if (message_arena == nullptr) {
3349  delete quaternion_;
3350  }
3351  if (quaternion) {
3352  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
3353  ::PROTOBUF_NAMESPACE_ID::Arena::GetArena(quaternion);
3354  if (message_arena != submessage_arena) {
3355  quaternion = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
3356  message_arena, quaternion, submessage_arena);
3357  }
3358  _has_bits_[0] |= 0x00000040u;
3359  } else {
3360  _has_bits_[0] &= ~0x00000040u;
3361  }
3362  quaternion_ = quaternion;
3363  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.IMUData.quaternion)
3364 }
3365 
3366 // optional string imu_type = 11;
3367 inline bool IMUData::_internal_has_imu_type() const {
3368  bool value = (_has_bits_[0] & 0x00000001u) != 0;
3369  return value;
3370 }
3371 inline bool IMUData::has_imu_type() const {
3372  return _internal_has_imu_type();
3373 }
3374 inline void IMUData::clear_imu_type() {
3375  imu_type_.ClearToEmpty(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
3376  _has_bits_[0] &= ~0x00000001u;
3377 }
3378 inline const std::string& IMUData::imu_type() const {
3379  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUData.imu_type)
3380  return _internal_imu_type();
3381 }
3382 inline void IMUData::set_imu_type(const std::string& value) {
3383  _internal_set_imu_type(value);
3384  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUData.imu_type)
3385 }
3386 inline std::string* IMUData::mutable_imu_type() {
3387  // @@protoc_insertion_point(field_mutable:jaiabot.protobuf.IMUData.imu_type)
3388  return _internal_mutable_imu_type();
3389 }
3390 inline const std::string& IMUData::_internal_imu_type() const {
3391  return imu_type_.Get();
3392 }
3393 inline void IMUData::_internal_set_imu_type(const std::string& value) {
3394  _has_bits_[0] |= 0x00000001u;
3395  imu_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), value, GetArena());
3396 }
3397 inline void IMUData::set_imu_type(std::string&& value) {
3398  _has_bits_[0] |= 0x00000001u;
3399  imu_type_.Set(
3400  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::move(value), GetArena());
3401  // @@protoc_insertion_point(field_set_rvalue:jaiabot.protobuf.IMUData.imu_type)
3402 }
3403 inline void IMUData::set_imu_type(const char* value) {
3404  GOOGLE_DCHECK(value != nullptr);
3405  _has_bits_[0] |= 0x00000001u;
3406  imu_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(value),
3407  GetArena());
3408  // @@protoc_insertion_point(field_set_char:jaiabot.protobuf.IMUData.imu_type)
3409 }
3410 inline void IMUData::set_imu_type(const char* value,
3411  size_t size) {
3412  _has_bits_[0] |= 0x00000001u;
3413  imu_type_.Set(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), ::std::string(
3414  reinterpret_cast<const char*>(value), size), GetArena());
3415  // @@protoc_insertion_point(field_set_pointer:jaiabot.protobuf.IMUData.imu_type)
3416 }
3417 inline std::string* IMUData::_internal_mutable_imu_type() {
3418  _has_bits_[0] |= 0x00000001u;
3419  return imu_type_.Mutable(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
3420 }
3421 inline std::string* IMUData::release_imu_type() {
3422  // @@protoc_insertion_point(field_release:jaiabot.protobuf.IMUData.imu_type)
3423  if (!_internal_has_imu_type()) {
3424  return nullptr;
3425  }
3426  _has_bits_[0] &= ~0x00000001u;
3427  return imu_type_.ReleaseNonDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), GetArena());
3428 }
3429 inline void IMUData::set_allocated_imu_type(std::string* imu_type) {
3430  if (imu_type != nullptr) {
3431  _has_bits_[0] |= 0x00000001u;
3432  } else {
3433  _has_bits_[0] &= ~0x00000001u;
3434  }
3435  imu_type_.SetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), imu_type,
3436  GetArena());
3437  // @@protoc_insertion_point(field_set_allocated:jaiabot.protobuf.IMUData.imu_type)
3438 }
3439 inline std::string* IMUData::unsafe_arena_release_imu_type() {
3440  // @@protoc_insertion_point(field_unsafe_arena_release:jaiabot.protobuf.IMUData.imu_type)
3441  GOOGLE_DCHECK(GetArena() != nullptr);
3442  _has_bits_[0] &= ~0x00000001u;
3443  return imu_type_.UnsafeArenaRelease(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
3444  GetArena());
3445 }
3446 inline void IMUData::unsafe_arena_set_allocated_imu_type(
3447  std::string* imu_type) {
3448  GOOGLE_DCHECK(GetArena() != nullptr);
3449  if (imu_type != nullptr) {
3450  _has_bits_[0] |= 0x00000001u;
3451  } else {
3452  _has_bits_[0] &= ~0x00000001u;
3453  }
3454  imu_type_.UnsafeArenaSetAllocated(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
3455  imu_type, GetArena());
3456  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:jaiabot.protobuf.IMUData.imu_type)
3457 }
3458 
3459 // -------------------------------------------------------------------
3460 
3461 // IMUIssue
3462 
3463 // required .jaiabot.protobuf.IMUIssue.SolutionType solution = 1;
3464 inline bool IMUIssue::_internal_has_solution() const {
3465  bool value = (_has_bits_[0] & 0x00000001u) != 0;
3466  return value;
3467 }
3468 inline bool IMUIssue::has_solution() const {
3469  return _internal_has_solution();
3470 }
3471 inline void IMUIssue::clear_solution() {
3472  solution_ = 0;
3473  _has_bits_[0] &= ~0x00000001u;
3474 }
3475 inline ::jaiabot::protobuf::IMUIssue_SolutionType IMUIssue::_internal_solution() const {
3476  return static_cast< ::jaiabot::protobuf::IMUIssue_SolutionType >(solution_);
3477 }
3478 inline ::jaiabot::protobuf::IMUIssue_SolutionType IMUIssue::solution() const {
3479  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.solution)
3480  return _internal_solution();
3481 }
3482 inline void IMUIssue::_internal_set_solution(::jaiabot::protobuf::IMUIssue_SolutionType value) {
3484  _has_bits_[0] |= 0x00000001u;
3485  solution_ = value;
3486 }
3487 inline void IMUIssue::set_solution(::jaiabot::protobuf::IMUIssue_SolutionType value) {
3488  _internal_set_solution(value);
3489  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.solution)
3490 }
3491 
3492 // optional .jaiabot.protobuf.IMUIssue.IssueType type = 2;
3493 inline bool IMUIssue::_internal_has_type() const {
3494  bool value = (_has_bits_[0] & 0x00000002u) != 0;
3495  return value;
3496 }
3497 inline bool IMUIssue::has_type() const {
3498  return _internal_has_type();
3499 }
3500 inline void IMUIssue::clear_type() {
3501  type_ = 0;
3502  _has_bits_[0] &= ~0x00000002u;
3503 }
3504 inline ::jaiabot::protobuf::IMUIssue_IssueType IMUIssue::_internal_type() const {
3505  return static_cast< ::jaiabot::protobuf::IMUIssue_IssueType >(type_);
3506 }
3507 inline ::jaiabot::protobuf::IMUIssue_IssueType IMUIssue::type() const {
3508  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.type)
3509  return _internal_type();
3510 }
3511 inline void IMUIssue::_internal_set_type(::jaiabot::protobuf::IMUIssue_IssueType value) {
3513  _has_bits_[0] |= 0x00000002u;
3514  type_ = value;
3515 }
3516 inline void IMUIssue::set_type(::jaiabot::protobuf::IMUIssue_IssueType value) {
3517  _internal_set_type(value);
3518  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.type)
3519 }
3520 
3521 // optional .jaiabot.protobuf.MissionState mission_state = 3;
3522 inline bool IMUIssue::_internal_has_mission_state() const {
3523  bool value = (_has_bits_[0] & 0x00000004u) != 0;
3524  return value;
3525 }
3526 inline bool IMUIssue::has_mission_state() const {
3527  return _internal_has_mission_state();
3528 }
3529 inline void IMUIssue::clear_mission_state() {
3530  mission_state_ = 0;
3531  _has_bits_[0] &= ~0x00000004u;
3532 }
3533 inline ::jaiabot::protobuf::MissionState IMUIssue::_internal_mission_state() const {
3534  return static_cast< ::jaiabot::protobuf::MissionState >(mission_state_);
3535 }
3536 inline ::jaiabot::protobuf::MissionState IMUIssue::mission_state() const {
3537  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.mission_state)
3538  return _internal_mission_state();
3539 }
3540 inline void IMUIssue::_internal_set_mission_state(::jaiabot::protobuf::MissionState value) {
3541  assert(::jaiabot::protobuf::MissionState_IsValid(value));
3542  _has_bits_[0] |= 0x00000004u;
3543  mission_state_ = value;
3544 }
3545 inline void IMUIssue::set_mission_state(::jaiabot::protobuf::MissionState value) {
3546  _internal_set_mission_state(value);
3547  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.mission_state)
3548 }
3549 
3550 // optional double imu_heading_course_max_diff = 30 [default = 45];
3551 inline bool IMUIssue::_internal_has_imu_heading_course_max_diff() const {
3552  bool value = (_has_bits_[0] & 0x00000400u) != 0;
3553  return value;
3554 }
3555 inline bool IMUIssue::has_imu_heading_course_max_diff() const {
3556  return _internal_has_imu_heading_course_max_diff();
3557 }
3558 inline void IMUIssue::clear_imu_heading_course_max_diff() {
3559  imu_heading_course_max_diff_ = 45;
3560  _has_bits_[0] &= ~0x00000400u;
3561 }
3562 inline double IMUIssue::_internal_imu_heading_course_max_diff() const {
3563  return imu_heading_course_max_diff_;
3564 }
3565 inline double IMUIssue::imu_heading_course_max_diff() const {
3566  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.imu_heading_course_max_diff)
3567  return _internal_imu_heading_course_max_diff();
3568 }
3569 inline void IMUIssue::_internal_set_imu_heading_course_max_diff(double value) {
3570  _has_bits_[0] |= 0x00000400u;
3571  imu_heading_course_max_diff_ = value;
3572 }
3573 inline void IMUIssue::set_imu_heading_course_max_diff(double value) {
3574  _internal_set_imu_heading_course_max_diff(value);
3575  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.imu_heading_course_max_diff)
3576 }
3577 
3578 // optional double heading = 31 [(.dccl.field) = {
3579 inline bool IMUIssue::_internal_has_heading() const {
3580  bool value = (_has_bits_[0] & 0x00000008u) != 0;
3581  return value;
3582 }
3583 inline bool IMUIssue::has_heading() const {
3584  return _internal_has_heading();
3585 }
3586 inline void IMUIssue::clear_heading() {
3587  heading_ = 0;
3588  _has_bits_[0] &= ~0x00000008u;
3589 }
3590 inline double IMUIssue::_internal_heading() const {
3591  return heading_;
3592 }
3593 inline double IMUIssue::heading() const {
3594  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.heading)
3595  return _internal_heading();
3596 }
3597 inline void IMUIssue::_internal_set_heading(double value) {
3598  _has_bits_[0] |= 0x00000008u;
3599  heading_ = value;
3600 }
3601 inline void IMUIssue::set_heading(double value) {
3602  _internal_set_heading(value);
3603  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.heading)
3604 }
3605 
3606 // optional double desired_heading = 32 [(.dccl.field) = {
3607 inline bool IMUIssue::_internal_has_desired_heading() const {
3608  bool value = (_has_bits_[0] & 0x00000010u) != 0;
3609  return value;
3610 }
3611 inline bool IMUIssue::has_desired_heading() const {
3612  return _internal_has_desired_heading();
3613 }
3614 inline void IMUIssue::clear_desired_heading() {
3615  desired_heading_ = 0;
3616  _has_bits_[0] &= ~0x00000010u;
3617 }
3618 inline double IMUIssue::_internal_desired_heading() const {
3619  return desired_heading_;
3620 }
3621 inline double IMUIssue::desired_heading() const {
3622  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.desired_heading)
3623  return _internal_desired_heading();
3624 }
3625 inline void IMUIssue::_internal_set_desired_heading(double value) {
3626  _has_bits_[0] |= 0x00000010u;
3627  desired_heading_ = value;
3628 }
3629 inline void IMUIssue::set_desired_heading(double value) {
3630  _internal_set_desired_heading(value);
3631  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.desired_heading)
3632 }
3633 
3634 // optional double course_over_ground = 33 [(.dccl.field) = {
3635 inline bool IMUIssue::_internal_has_course_over_ground() const {
3636  bool value = (_has_bits_[0] & 0x00000020u) != 0;
3637  return value;
3638 }
3639 inline bool IMUIssue::has_course_over_ground() const {
3640  return _internal_has_course_over_ground();
3641 }
3642 inline void IMUIssue::clear_course_over_ground() {
3643  course_over_ground_ = 0;
3644  _has_bits_[0] &= ~0x00000020u;
3645 }
3646 inline double IMUIssue::_internal_course_over_ground() const {
3647  return course_over_ground_;
3648 }
3649 inline double IMUIssue::course_over_ground() const {
3650  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.course_over_ground)
3651  return _internal_course_over_ground();
3652 }
3653 inline void IMUIssue::_internal_set_course_over_ground(double value) {
3654  _has_bits_[0] |= 0x00000020u;
3655  course_over_ground_ = value;
3656 }
3657 inline void IMUIssue::set_course_over_ground(double value) {
3658  _internal_set_course_over_ground(value);
3659  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.course_over_ground)
3660 }
3661 
3662 // optional double heading_course_difference = 34 [(.dccl.field) = {
3663 inline bool IMUIssue::_internal_has_heading_course_difference() const {
3664  bool value = (_has_bits_[0] & 0x00000040u) != 0;
3665  return value;
3666 }
3667 inline bool IMUIssue::has_heading_course_difference() const {
3668  return _internal_has_heading_course_difference();
3669 }
3670 inline void IMUIssue::clear_heading_course_difference() {
3671  heading_course_difference_ = 0;
3672  _has_bits_[0] &= ~0x00000040u;
3673 }
3674 inline double IMUIssue::_internal_heading_course_difference() const {
3675  return heading_course_difference_;
3676 }
3677 inline double IMUIssue::heading_course_difference() const {
3678  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.heading_course_difference)
3679  return _internal_heading_course_difference();
3680 }
3681 inline void IMUIssue::_internal_set_heading_course_difference(double value) {
3682  _has_bits_[0] |= 0x00000040u;
3683  heading_course_difference_ = value;
3684 }
3685 inline void IMUIssue::set_heading_course_difference(double value) {
3686  _internal_set_heading_course_difference(value);
3687  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.heading_course_difference)
3688 }
3689 
3690 // optional double pitch = 35 [(.dccl.field) = {
3691 inline bool IMUIssue::_internal_has_pitch() const {
3692  bool value = (_has_bits_[0] & 0x00000080u) != 0;
3693  return value;
3694 }
3695 inline bool IMUIssue::has_pitch() const {
3696  return _internal_has_pitch();
3697 }
3698 inline void IMUIssue::clear_pitch() {
3699  pitch_ = 0;
3700  _has_bits_[0] &= ~0x00000080u;
3701 }
3702 inline double IMUIssue::_internal_pitch() const {
3703  return pitch_;
3704 }
3705 inline double IMUIssue::pitch() const {
3706  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.pitch)
3707  return _internal_pitch();
3708 }
3709 inline void IMUIssue::_internal_set_pitch(double value) {
3710  _has_bits_[0] |= 0x00000080u;
3711  pitch_ = value;
3712 }
3713 inline void IMUIssue::set_pitch(double value) {
3714  _internal_set_pitch(value);
3715  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.pitch)
3716 }
3717 
3718 // optional double speed_over_ground = 36 [(.dccl.field) = {
3719 inline bool IMUIssue::_internal_has_speed_over_ground() const {
3720  bool value = (_has_bits_[0] & 0x00000100u) != 0;
3721  return value;
3722 }
3723 inline bool IMUIssue::has_speed_over_ground() const {
3724  return _internal_has_speed_over_ground();
3725 }
3726 inline void IMUIssue::clear_speed_over_ground() {
3727  speed_over_ground_ = 0;
3728  _has_bits_[0] &= ~0x00000100u;
3729 }
3730 inline double IMUIssue::_internal_speed_over_ground() const {
3731  return speed_over_ground_;
3732 }
3733 inline double IMUIssue::speed_over_ground() const {
3734  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.speed_over_ground)
3735  return _internal_speed_over_ground();
3736 }
3737 inline void IMUIssue::_internal_set_speed_over_ground(double value) {
3738  _has_bits_[0] |= 0x00000100u;
3739  speed_over_ground_ = value;
3740 }
3741 inline void IMUIssue::set_speed_over_ground(double value) {
3742  _internal_set_speed_over_ground(value);
3743  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.speed_over_ground)
3744 }
3745 
3746 // optional double desired_speed = 37 [(.dccl.field) = {
3747 inline bool IMUIssue::_internal_has_desired_speed() const {
3748  bool value = (_has_bits_[0] & 0x00000200u) != 0;
3749  return value;
3750 }
3751 inline bool IMUIssue::has_desired_speed() const {
3752  return _internal_has_desired_speed();
3753 }
3754 inline void IMUIssue::clear_desired_speed() {
3755  desired_speed_ = 0;
3756  _has_bits_[0] &= ~0x00000200u;
3757 }
3758 inline double IMUIssue::_internal_desired_speed() const {
3759  return desired_speed_;
3760 }
3761 inline double IMUIssue::desired_speed() const {
3762  // @@protoc_insertion_point(field_get:jaiabot.protobuf.IMUIssue.desired_speed)
3763  return _internal_desired_speed();
3764 }
3765 inline void IMUIssue::_internal_set_desired_speed(double value) {
3766  _has_bits_[0] |= 0x00000200u;
3767  desired_speed_ = value;
3768 }
3769 inline void IMUIssue::set_desired_speed(double value) {
3770  _internal_set_desired_speed(value);
3771  // @@protoc_insertion_point(field_set:jaiabot.protobuf.IMUIssue.desired_speed)
3772 }
3773 
3774 #ifdef __GNUC__
3775  #pragma GCC diagnostic pop
3776 #endif // __GNUC__
3777 // -------------------------------------------------------------------
3778 
3779 // -------------------------------------------------------------------
3780 
3781 // -------------------------------------------------------------------
3782 
3783 // -------------------------------------------------------------------
3784 
3785 // -------------------------------------------------------------------
3786 
3787 // -------------------------------------------------------------------
3788 
3789 // -------------------------------------------------------------------
3790 
3791 
3792 // @@protoc_insertion_point(namespace_scope)
3793 
3794 } // namespace protobuf
3795 } // namespace jaiabot
3796 
3797 PROTOBUF_NAMESPACE_OPEN
3798 
3799 template <> struct is_proto_enum< ::jaiabot::protobuf::IMUCommand_IMUCommandType> : ::std::true_type {};
3800 template <>
3801 inline const EnumDescriptor* GetEnumDescriptor< ::jaiabot::protobuf::IMUCommand_IMUCommandType>() {
3803 }
3804 template <> struct is_proto_enum< ::jaiabot::protobuf::IMUIssue_SolutionType> : ::std::true_type {};
3805 template <>
3806 inline const EnumDescriptor* GetEnumDescriptor< ::jaiabot::protobuf::IMUIssue_SolutionType>() {
3808 }
3809 template <> struct is_proto_enum< ::jaiabot::protobuf::IMUIssue_IssueType> : ::std::true_type {};
3810 template <>
3811 inline const EnumDescriptor* GetEnumDescriptor< ::jaiabot::protobuf::IMUIssue_IssueType>() {
3813 }
3814 template <> struct is_proto_enum< ::jaiabot::protobuf::IMUCalibrationState> : ::std::true_type {};
3815 template <>
3816 inline const EnumDescriptor* GetEnumDescriptor< ::jaiabot::protobuf::IMUCalibrationState>() {
3818 }
3819 
3820 PROTOBUF_NAMESPACE_CLOSE
3821 
3822 // @@protoc_insertion_point(global_scope)
3823 
3824 #include <google/protobuf/port_undef.inc>
3825 #endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_jaiabot_2fmessages_2fimu_2eproto
void CopyFrom(const IMUData_Quaternion &from)
bool has_imu_heading_course_max_diff() const
void set_y_with_units(Quantity value_w_units)
Definition: imu.pb.h:1165
boost::units::quantity< pitch_unit, double > pitch_with_units() const
Definition: imu.pb.h:590
IMUData_Acceleration(IMUData_Acceleration &&from) noexcept
Definition: imu.pb.h:631
IMUData_AngularVelocity * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: imu.pb.h:1056
boost::units::quantity< significant_wave_height_unit, double > significant_wave_height_with_units() const
Definition: imu.pb.h:1739
IMUCommand & operator=(const IMUCommand &from)
Definition: imu.pb.h:225
IMUIssue & operator=(const IMUIssue &from)
Definition: imu.pb.h:1793
IMUData_AngularVelocity(::PROTOBUF_NAMESPACE_ID::Arena *arena)
IMUData_Acceleration & operator=(IMUData_Acceleration &&from) noexcept
Definition: imu.pb.h:640
void set_desired_speed_with_units(Quantity value_w_units)
Definition: imu.pb.h:2223
friend void swap(IMUData_AngularVelocity &a, IMUData_AngularVelocity &b)
Definition: imu.pb.h:1033
double imu_heading_course_max_diff() const
IMUData_Quaternion * New() const final
Definition: imu.pb.h:1276
IMUData_EulerAngles(::PROTOBUF_NAMESPACE_ID::Arena *arena)
Quantity significant_wave_height_with_units() const
Definition: imu.pb.h:1736
::PROTOBUF_NAMESPACE_ID::int32 magnetometer() const
IMUData_Accuracies & operator=(const IMUData_Accuracies &from)
Definition: imu.pb.h:815
static const IMUData_AngularVelocity & default_instance()
void set_heading_course_difference_with_units(Quantity value_w_units)
Definition: imu.pb.h:2178
const ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet & unknown_fields() const
Definition: imu.pb.h:238
void set_accelerometer(::PROTOBUF_NAMESPACE_ID::int32 value)
void UnsafeArenaSwap(IMUData_AngularVelocity *other)
Definition: imu.pb.h:1044
boost::units::quantity< x_unit, double > x_with_units() const
Definition: imu.pb.h:1157
IMUData * New() const final
Definition: imu.pb.h:1470
boost::units::unit< desired_speed_dimension, boost::units::si::system > desired_speed_unit
Definition: imu.pb.h:2220
::PROTOBUF_NAMESPACE_ID::int32 accelerometer() const
void set_imu_type(const std::string &value)
IMUData_Accuracies & operator=(IMUData_Accuracies &&from) noexcept
Definition: imu.pb.h:819
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * IssueType_descriptor()
Definition: imu.pb.h:1955
IMUIssue & operator=(IMUIssue &&from) noexcept
Definition: imu.pb.h:1797
IMUData_Accuracies(IMUData_Accuracies &&from) noexcept
Definition: imu.pb.h:810
Quantity desired_speed_with_units() const
Definition: imu.pb.h:2227
void Swap(IMUData_AngularVelocity *other)
Definition: imu.pb.h:1036
void set_max_acceleration_with_units(Quantity value_w_units)
Definition: imu.pb.h:1747
IMUData(IMUData &&from) noexcept
Definition: imu.pb.h:1407
boost::units::quantity< heading_unit, double > heading_with_units() const
Definition: imu.pb.h:575
void set_gyroscope(::PROTOBUF_NAMESPACE_ID::int32 value)
void MergeFrom(const IMUData_Acceleration &from)
IMUCommand(IMUCommand &&from) noexcept
Definition: imu.pb.h:220
IMUData_AngularVelocity(IMUData_AngularVelocity &&from) noexcept
Definition: imu.pb.h:989
static const IMUCommand * internal_default_instance()
Definition: imu.pb.h:257
void UnsafeArenaSwap(IMUData_EulerAngles *other)
Definition: imu.pb.h:462
::jaiabot::protobuf::IMUIssue_IssueType type() const
IMUData_Quaternion & operator=(IMUData_Quaternion &&from) noexcept
Definition: imu.pb.h:1222
IMUData(const IMUData &from)
void MergeFrom(const IMUData_AngularVelocity &from)
void MergeFrom(const IMUIssue &from)
IMUData_EulerAngles & operator=(IMUData_EulerAngles &&from) noexcept
Definition: imu.pb.h:416
Quantity heading_course_difference_with_units() const
Definition: imu.pb.h:2182
boost::units::quantity< z_unit, double > z_with_units() const
Definition: imu.pb.h:1187
IMUData_EulerAngles & operator=(const IMUData_EulerAngles &from)
Definition: imu.pb.h:412
boost::units::unit< max_acceleration_dimension, boost::units::si::system > max_acceleration_unit
Definition: imu.pb.h:1744
void UnsafeArenaSwap(IMUCommand *other)
Definition: imu.pb.h:275
Quantity y_with_units() const
Definition: imu.pb.h:1169
Quantity x_with_units() const
Definition: imu.pb.h:1154
Quantity roll_with_units() const
Definition: imu.pb.h:602
static const IMUIssue * internal_default_instance()
Definition: imu.pb.h:1825
IMUData_Quaternion(IMUData_Quaternion &&from) noexcept
Definition: imu.pb.h:1213
IMUCommand * New() const final
Definition: imu.pb.h:283
void set_desired_heading(double value)
IMUData_AngularVelocity AngularVelocity
Definition: imu.pb.h:1520
IMUData_AngularVelocity & operator=(const IMUData_AngularVelocity &from)
Definition: imu.pb.h:994
boost::units::quantity< y_unit, double > y_with_units() const
Definition: imu.pb.h:1172
static const IMUData_Quaternion & default_instance()
IMUData_Acceleration * New() const final
Definition: imu.pb.h:694
void UnsafeArenaSwap(IMUData *other)
Definition: imu.pb.h:1462
void set_solution(::jaiabot::protobuf::IMUIssue_SolutionType value)
void Swap(IMUData_Acceleration *other)
Definition: imu.pb.h:678
void set_desired_heading_with_units(Quantity value_w_units)
Definition: imu.pb.h:2148
boost::units::quantity< desired_speed_unit, double > desired_speed_with_units() const
Definition: imu.pb.h:2230
void Swap(IMUData_Accuracies *other)
Definition: imu.pb.h:857
static bool IMUCommandType_IsValid(int value)
Definition: imu.pb.h:343
boost::units::unit< desired_heading_dimension, boost::units::degree::system > desired_heading_unit
Definition: imu.pb.h:2145
::jaiabot::protobuf::MissionState mission_state() const
void MergeFrom(const IMUData_Accuracies &from)
void Swap(IMUData *other)
Definition: imu.pb.h:1454
boost::units::velocity_dimension desired_speed_dimension
Definition: imu.pb.h:2216
void MergeFrom(const IMUData_Quaternion &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void set_heading_with_units(Quantity value_w_units)
Definition: imu.pb.h:568
static bool IssueType_IsValid(int value)
Definition: imu.pb.h:1945
IMUData_Accuracies(::PROTOBUF_NAMESPACE_ID::Arena *arena)
static bool IssueType_Parse(const std::string &name, IssueType *value)
Definition: imu.pb.h:1965
boost::units::unit< y_dimension, boost::units::si::system > y_unit
Definition: imu.pb.h:1162
boost::units::unit< heading_course_difference_dimension, boost::units::degree::system > heading_course_difference_unit
Definition: imu.pb.h:2175
void CopyFrom(const IMUCommand &from)
IMUData_Acceleration & operator=(const IMUData_Acceleration &from)
Definition: imu.pb.h:636
void set_imu_type(const char *value, size_t size)
void Swap(IMUCommand *other)
Definition: imu.pb.h:267
void set_desired_speed(double value)
boost::units::length_dimension significant_wave_height_dimension
Definition: imu.pb.h:1727
boost::units::quantity< course_over_ground_unit, double > course_over_ground_with_units() const
Definition: imu.pb.h:2170
IMUData_Quaternion & operator=(const IMUData_Quaternion &from)
Definition: imu.pb.h:1218
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
IMUData & operator=(const IMUData &from)
Definition: imu.pb.h:1412
IMUCommand_IMUCommandType IMUCommandType
Definition: imu.pb.h:330
void set_course_over_ground_with_units(Quantity value_w_units)
Definition: imu.pb.h:2163
boost::units::plane_angle_dimension pitch_dimension
Definition: imu.pb.h:576
IMUData_AngularVelocity * New() const final
Definition: imu.pb.h:1052
void MergeFrom(const IMUCommand &from)
IMUData_EulerAngles(IMUData_EulerAngles &&from) noexcept
Definition: imu.pb.h:407
boost::units::plane_angle_dimension heading_course_difference_dimension
Definition: imu.pb.h:2171
boost::units::unit< x_dimension, boost::units::si::system > x_unit
Definition: imu.pb.h:1147
boost::units::plane_angle_dimension heading_dimension
Definition: imu.pb.h:563
static const std::string & IssueType_Name(T enum_t_value)
Definition: imu.pb.h:1959
void Swap(IMUData_Quaternion *other)
Definition: imu.pb.h:1260
boost::units::velocity_dimension speed_over_ground_dimension
Definition: imu.pb.h:2201
IMUData_AngularVelocity(const IMUData_AngularVelocity &from)
IMUData_Accuracies * New() const final
Definition: imu.pb.h:873
IMUIssue(const IMUIssue &from)
void CopyFrom(const IMUData_Accuracies &from)
friend void swap(IMUData_Quaternion &a, IMUData_Quaternion &b)
Definition: imu.pb.h:1257
IMUData_Acceleration Acceleration
Definition: imu.pb.h:1518
static const IMUData_Accuracies & default_instance()
inline ::PROTOBUF_NAMESPACE_ID::UnknownFieldSet * mutable_unknown_fields()
Definition: imu.pb.h:241
void set_heading_course_difference(double value)
IMUData * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: imu.pb.h:1474
boost::units::angular_velocity_dimension z_dimension
Definition: imu.pb.h:1173
IMUData_Quaternion(const IMUData_Quaternion &from)
void set_speed_over_ground_with_units(Quantity value_w_units)
Definition: imu.pb.h:2208
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * IMUCommandType_descriptor()
Definition: imu.pb.h:353
IMUData_EulerAngles EulerAngles
Definition: imu.pb.h:1517
IMUData_Acceleration(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::quantity< roll_unit, double > roll_with_units() const
Definition: imu.pb.h:605
static const IMUData_EulerAngles * internal_default_instance()
Definition: imu.pb.h:444
boost::units::plane_angle_dimension course_over_ground_dimension
Definition: imu.pb.h:2156
void CopyFrom(const IMUData_EulerAngles &from)
void set_magnetometer(::PROTOBUF_NAMESPACE_ID::int32 value)
friend void swap(IMUCommand &a, IMUCommand &b)
Definition: imu.pb.h:264
boost::units::angular_velocity_dimension x_dimension
Definition: imu.pb.h:1145
boost::units::angular_velocity_dimension y_dimension
Definition: imu.pb.h:1158
static const IMUData_AngularVelocity * internal_default_instance()
Definition: imu.pb.h:1026
boost::units::unit< significant_wave_height_dimension, boost::units::si::system > significant_wave_height_unit
Definition: imu.pb.h:1729
static const IMUIssue & default_instance()
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * SolutionType_descriptor()
Definition: imu.pb.h:1927
double heading_course_difference() const
IMUData_Quaternion * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: imu.pb.h:1280
void set_z_with_units(Quantity value_w_units)
Definition: imu.pb.h:1180
boost::units::unit< speed_over_ground_dimension, boost::units::si::system > speed_over_ground_unit
Definition: imu.pb.h:2205
void set_pitch_with_units(Quantity value_w_units)
Definition: imu.pb.h:583
IMUIssue * New() const final
Definition: imu.pb.h:1851
Quantity heading_with_units() const
Definition: imu.pb.h:572
boost::units::unit< z_dimension, boost::units::si::system > z_unit
Definition: imu.pb.h:1177
static const IMUData_Accuracies * internal_default_instance()
Definition: imu.pb.h:847
static const IMUData * internal_default_instance()
Definition: imu.pb.h:1444
boost::units::plane_angle_dimension roll_dimension
Definition: imu.pb.h:591
IMUData_AngularVelocity & operator=(IMUData_AngularVelocity &&from) noexcept
Definition: imu.pb.h:998
friend void swap(IMUData_Acceleration &a, IMUData_Acceleration &b)
Definition: imu.pb.h:675
void MergeFrom(const IMUData &from)
void UnsafeArenaSwap(IMUData_Accuracies *other)
Definition: imu.pb.h:865
IMUData_Acceleration * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: imu.pb.h:698
static const IMUData & default_instance()
boost::units::quantity< speed_over_ground_unit, double > speed_over_ground_with_units() const
Definition: imu.pb.h:2215
void Swap(IMUData_EulerAngles *other)
Definition: imu.pb.h:454
void CopyFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
void set_roll_with_units(Quantity value_w_units)
Definition: imu.pb.h:598
void set_imu_heading_course_max_diff(double value)
static bool IMUCommandType_Parse(const std::string &name, IMUCommandType *value)
Definition: imu.pb.h:363
void set_x_with_units(Quantity value_w_units)
Definition: imu.pb.h:1150
Quantity z_with_units() const
Definition: imu.pb.h:1184
IMUData_EulerAngles * New() const final
Definition: imu.pb.h:470
boost::units::unit< roll_dimension, boost::units::degree::system > roll_unit
Definition: imu.pb.h:595
void set_course_over_ground(double value)
void CopyFrom(const IMUData_Acceleration &from)
boost::units::quantity< heading_course_difference_unit, double > heading_course_difference_with_units() const
Definition: imu.pb.h:2185
void CopyFrom(const IMUIssue &from)
::jaiabot::protobuf::IMUIssue_SolutionType solution() const
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * GetDescriptor()
Definition: imu.pb.h:248
static const std::string & SolutionType_Name(T enum_t_value)
Definition: imu.pb.h:1931
IMUData_EulerAngles(const IMUData_EulerAngles &from)
IMUData_Accuracies * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: imu.pb.h:877
::jaiabot::protobuf::IMUCommand_IMUCommandType type() const
static const IMUData_EulerAngles & default_instance()
static const IMUCommand & default_instance()
IMUData_Accuracies Accuracies
Definition: imu.pb.h:1519
void UnsafeArenaSwap(IMUIssue *other)
Definition: imu.pb.h:1843
void MergeFrom(const ::PROTOBUF_NAMESPACE_ID::Message &from) final
friend void swap(IMUIssue &a, IMUIssue &b)
Definition: imu.pb.h:1832
::PROTOBUF_NAMESPACE_ID::int32 gyroscope() const
IMUIssue(IMUIssue &&from) noexcept
Definition: imu.pb.h:1788
IMUCommand(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::unit< heading_dimension, boost::units::degree::system > heading_unit
Definition: imu.pb.h:565
boost::units::acceleration_dimension max_acceleration_dimension
Definition: imu.pb.h:1740
static bool SolutionType_IsValid(int value)
Definition: imu.pb.h:1917
void UnsafeArenaSwap(IMUData_Acceleration *other)
Definition: imu.pb.h:686
friend void swap(IMUData &a, IMUData &b)
Definition: imu.pb.h:1451
IMUIssue_IssueType IssueType
Definition: imu.pb.h:1942
IMUData_EulerAngles * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: imu.pb.h:474
boost::units::quantity< desired_heading_unit, double > desired_heading_with_units() const
Definition: imu.pb.h:2155
void CopyFrom(const IMUData_AngularVelocity &from)
IMUData_Acceleration(const IMUData_Acceleration &from)
IMUData_Accuracies(const IMUData_Accuracies &from)
Quantity desired_heading_with_units() const
Definition: imu.pb.h:2152
IMUIssue(::PROTOBUF_NAMESPACE_ID::Arena *arena)
static const ::PROTOBUF_NAMESPACE_ID::Reflection * GetReflection()
Definition: imu.pb.h:251
static const std::string & IMUCommandType_Name(T enum_t_value)
Definition: imu.pb.h:357
boost::units::quantity< max_acceleration_unit, double > max_acceleration_with_units() const
Definition: imu.pb.h:1754
boost::units::unit< course_over_ground_dimension, boost::units::degree::system > course_over_ground_unit
Definition: imu.pb.h:2160
IMUData & operator=(IMUData &&from) noexcept
Definition: imu.pb.h:1416
friend void swap(IMUData_EulerAngles &a, IMUData_EulerAngles &b)
Definition: imu.pb.h:451
Quantity course_over_ground_with_units() const
Definition: imu.pb.h:2167
IMUCommand & operator=(IMUCommand &&from) noexcept
Definition: imu.pb.h:229
void CopyFrom(const IMUData &from)
Quantity speed_over_ground_with_units() const
Definition: imu.pb.h:2212
void Swap(IMUIssue *other)
Definition: imu.pb.h:1835
static const IMUData_Acceleration & default_instance()
void set_imu_type(std::string &&value)
void set_type(::jaiabot::protobuf::IMUCommand_IMUCommandType value)
IMUData_Quaternion Quaternion
Definition: imu.pb.h:1521
void set_mission_state(::jaiabot::protobuf::MissionState value)
void set_speed_over_ground(double value)
Quantity max_acceleration_with_units() const
Definition: imu.pb.h:1751
void set_type(::jaiabot::protobuf::IMUIssue_IssueType value)
void set_imu_type(const char *value)
boost::units::unit< pitch_dimension, boost::units::degree::system > pitch_unit
Definition: imu.pb.h:580
static bool SolutionType_Parse(const std::string &name, SolutionType *value)
Definition: imu.pb.h:1937
Quantity pitch_with_units() const
Definition: imu.pb.h:587
IMUCommand(const IMUCommand &from)
void set_allocated_imu_type(std::string *imu_type)
static const IMUData_Acceleration * internal_default_instance()
Definition: imu.pb.h:668
IMUIssue_SolutionType SolutionType
Definition: imu.pb.h:1898
void UnsafeArenaSwap(IMUData_Quaternion *other)
Definition: imu.pb.h:1268
IMUData(::PROTOBUF_NAMESPACE_ID::Arena *arena)
boost::units::plane_angle_dimension desired_heading_dimension
Definition: imu.pb.h:2141
IMUIssue * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: imu.pb.h:1855
IMUCommand * New(::PROTOBUF_NAMESPACE_ID::Arena *arena) const final
Definition: imu.pb.h:287
static const IMUData_Quaternion * internal_default_instance()
Definition: imu.pb.h:1250
const std::string & imu_type() const
void MergeFrom(const IMUData_EulerAngles &from)
friend void swap(IMUData_Accuracies &a, IMUData_Accuracies &b)
Definition: imu.pb.h:854
IMUData_Quaternion(::PROTOBUF_NAMESPACE_ID::Arena *arena)
static const ::PROTOBUF_NAMESPACE_ID::Descriptor * descriptor()
Definition: imu.pb.h:245
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_jaiabot_2fmessages_2fimu_2eproto
const std::string & IMUCommand_IMUCommandType_Name(T enum_t_value)
Definition: imu.pb.h:124
constexpr IMUIssue_IssueType IMUIssue_IssueType_IssueType_MAX
Definition: imu.pb.h:171
const std::string & IMUIssue_IssueType_Name(T enum_t_value)
Definition: imu.pb.h:176
bool IMUIssue_IssueType_IsValid(int value)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * IMUCommand_IMUCommandType_descriptor()
IMUDataDefaultTypeInternal _IMUData_default_instance_
constexpr IMUCalibrationState IMUCalibrationState_MAX
Definition: imu.pb.h:194
const std::string & IMUIssue_SolutionType_Name(T enum_t_value)
Definition: imu.pb.h:154
constexpr IMUCommand_IMUCommandType IMUCommand_IMUCommandType_IMUCommandType_MAX
Definition: imu.pb.h:119
@ IMUCommand_IMUCommandType_START_WAVE_HEIGHT_SAMPLING
Definition: imu.pb.h:111
@ IMUCommand_IMUCommandType_START_CALIBRATION
Definition: imu.pb.h:115
@ IMUCommand_IMUCommandType_TAKE_READING
Definition: imu.pb.h:110
@ IMUCommand_IMUCommandType_STOP_WAVE_HEIGHT_SAMPLING
Definition: imu.pb.h:112
@ IMUCommand_IMUCommandType_STOP_BOTTOM_TYPE_SAMPLING
Definition: imu.pb.h:114
@ IMUCommand_IMUCommandType_START_BOTTOM_TYPE_SAMPLING
Definition: imu.pb.h:113
constexpr IMUCalibrationState IMUCalibrationState_MIN
Definition: imu.pb.h:193
IMUData_AngularVelocityDefaultTypeInternal _IMUData_AngularVelocity_default_instance_
bool IMUIssue_IssueType_Parse(const std::string &name, IMUIssue_IssueType *value)
Definition: imu.pb.h:183
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * IMUCalibrationState_descriptor()
constexpr int IMUCalibrationState_ARRAYSIZE
Definition: imu.pb.h:195
constexpr IMUIssue_SolutionType IMUIssue_SolutionType_SolutionType_MAX
Definition: imu.pb.h:149
IMUData_AccelerationDefaultTypeInternal _IMUData_Acceleration_default_instance_
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * IMUIssue_IssueType_descriptor()
IMUIssueDefaultTypeInternal _IMUIssue_default_instance_
bool IMUCommand_IMUCommandType_Parse(const std::string &name, IMUCommand_IMUCommandType *value)
Definition: imu.pb.h:131
bool IMUCommand_IMUCommandType_IsValid(int value)
IMUData_EulerAnglesDefaultTypeInternal _IMUData_EulerAngles_default_instance_
constexpr int IMUCommand_IMUCommandType_IMUCommandType_ARRAYSIZE
Definition: imu.pb.h:120
constexpr IMUCommand_IMUCommandType IMUCommand_IMUCommandType_IMUCommandType_MIN
Definition: imu.pb.h:118
constexpr IMUIssue_IssueType IMUIssue_IssueType_IssueType_MIN
Definition: imu.pb.h:170
IMUData_QuaternionDefaultTypeInternal _IMUData_Quaternion_default_instance_
bool IMUCalibrationState_Parse(const std::string &name, IMUCalibrationState *value)
Definition: imu.pb.h:206
const std::string & IMUCalibrationState_Name(T enum_t_value)
Definition: imu.pb.h:199
@ IMUIssue_IssueType_HEADING_COURSE_DIFFERENCE_TOO_LARGE
Definition: imu.pb.h:167
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * IMUIssue_SolutionType_descriptor()
bool IMUIssue_SolutionType_Parse(const std::string &name, IMUIssue_SolutionType *value)
Definition: imu.pb.h:161
bool IMUIssue_SolutionType_IsValid(int value)
constexpr IMUIssue_SolutionType IMUIssue_SolutionType_SolutionType_MIN
Definition: imu.pb.h:148
constexpr int IMUIssue_SolutionType_SolutionType_ARRAYSIZE
Definition: imu.pb.h:150
bool IMUCalibrationState_IsValid(int value)
constexpr int IMUIssue_IssueType_IssueType_ARRAYSIZE
Definition: imu.pb.h:172
@ IMUIssue_SolutionType_RESTART_IMU_PY
Definition: imu.pb.h:143
@ IMUIssue_SolutionType_USE_CORRECTION
Definition: imu.pb.h:139
@ IMUIssue_SolutionType_USE_COG
Definition: imu.pb.h:138
@ IMUIssue_SolutionType_REBOOT_BNO085_IMU
Definition: imu.pb.h:144
@ IMUIssue_SolutionType_REBOOT_BNO085_IMU_AND_RESTART_IMU_PY
Definition: imu.pb.h:145
@ IMUIssue_SolutionType_REPORT_IMU
Definition: imu.pb.h:142
@ IMUIssue_SolutionType_REBOOT_BOT
Definition: imu.pb.h:141
@ IMUIssue_SolutionType_STOP_BOT
Definition: imu.pb.h:137
@ IMUIssue_SolutionType_RESTART_BOT
Definition: imu.pb.h:140
bool MissionState_IsValid(int value)
IMUData_AccuraciesDefaultTypeInternal _IMUData_Accuracies_default_instance_
IMUCommandDefaultTypeInternal _IMUCommand_default_instance_
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTable schema[8] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::AuxillaryParseTableField aux[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::ParseTableField entries[] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
static const ::PROTOBUF_NAMESPACE_ID::internal::SerializationTable serialization_table[]
Definition: imu.pb.h:64
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: imu.pb.h:65
static const ::PROTOBUF_NAMESPACE_ID::internal::FieldMetadata field_metadata[]
Definition: imu.pb.h:63