From c4d610a3a04c971a71c52e1365de773792a86980 Mon Sep 17 00:00:00 2001 From: "r.koeppe" Date: Thu, 6 Jun 2024 11:36:09 +0200 Subject: [PATCH] interface library --- .../include/vn-interface/math/vector.h | 20 ++++++++++--------- vn-interface/include/vn-interface/registers.h | 10 ++++++++-- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/vn-interface/include/vn-interface/math/vector.h b/vn-interface/include/vn-interface/math/vector.h index d22f25b..6a62433 100644 --- a/vn-interface/include/vn-interface/math/vector.h +++ b/vn-interface/include/vn-interface/math/vector.h @@ -1,5 +1,7 @@ #ifndef VN_VECTOR_H_INCLUDED #define VN_VECTOR_H_INCLUDED +#include +#include /** \brief Various vector types and operations. */ @@ -9,7 +11,7 @@ extern "C" { /** \brief Represents a 3 component vector with an underlying data type of * float. */ -typedef union { +typedef union vec3f { float c[3]; /**< Indexable. */ struct { @@ -23,12 +25,12 @@ typedef union { float c1; /**< Component 1. */ float c2; /**< Component 2. */ }; - -} vec3f; + vec3f() { std::memset(this, 0, sizeof(vec3f)); } +}; /** \brief Represents a 3 component vector with an underlying data type of * double. */ -typedef union { +typedef union vec3d { double c[3]; /**< Indexable. */ struct { @@ -42,12 +44,12 @@ typedef union { double c1; /**< Component 1. */ double c2; /**< Component 2. */ }; - -} vec3d; + vec3d() { std::memset(this, 0, sizeof(vec3d)); } +}; /** \brief Represents a 4 component vector with an underlying data type of * float. */ -typedef union { +typedef union vec4f { float c[4]; /**< Indexable. */ struct { @@ -63,8 +65,8 @@ typedef union { float c2; /**< Component 2. */ float c3; /**< Component 2. */ }; - -} vec4f; + vec4f() { std::memset(this, 0, sizeof(vec4f)); } +}; /** \brief Initializes a 3-dimensional float vector from an float array. * diff --git a/vn-interface/include/vn-interface/registers.h b/vn-interface/include/vn-interface/registers.h index bebd403..0604dde 100644 --- a/vn-interface/include/vn-interface/registers.h +++ b/vn-interface/include/vn-interface/registers.h @@ -402,7 +402,7 @@ typedef struct { } VelocityCompensationStatusRegister; /** \brief Structure representing the IMU Measurements register. */ -typedef struct { +typedef struct ImuMeasurementsRegister { /** \brief The Mag field. */ vec3f mag; @@ -418,7 +418,11 @@ typedef struct { /** \brief The Pressure field. */ float pressure; -} ImuMeasurementsRegister; + ImuMeasurementsRegister() { + temp = 0.0; + pressure = 0.0; + }; +}; /** \brief Structure representing the GPS Configuration register. */ typedef struct { @@ -821,6 +825,8 @@ typedef struct { } YawPitchRollTrueBodyAccelerationAndAngularRatesRegister; +const uint16_t YawPitchRollTrueBodyAccelerationAndAngularRatesRegisterID = 239; + /** \brief Structure representing the Yaw, Pitch, Roll, True Inertial Acceleration and Angular Rates register. */ typedef struct { /** \brief The YawPitchRoll field. */