8#ifndef META_OCEAN_DEVICES_SERIALIZATION_DEVICE_SERIALIZER_H
9#define META_OCEAN_DEVICES_SERIALIZATION_DEVICE_SERIALIZER_H
31namespace Serialization
44 static constexpr size_t maximalMeasurements_ = 1000 * 1000;
97 int8_t referenceSystem_ = -1;
144 inline const std::string& type()
const override;
156 inline const Indices32& objectIds()
const;
162 inline int8_t referenceSystem()
const;
168 static inline const std::string& sampleType();
218 inline const std::string& type()
const override;
224 inline const VectorsF3& measurements()
const;
230 inline const Indices32& objectIds()
const;
236 static inline const std::string& sampleType();
286 inline const std::string& type()
const override;
292 inline const VectorsF3& measurements()
const;
298 inline const Indices32& objectIds()
const;
304 static inline const std::string& sampleType();
354 inline const std::string& type()
const override;
360 inline const VectorsF3& gravities()
const;
366 inline const Indices32& objectIds()
const;
372 inline int8_t referenceSystem()
const;
378 static inline const std::string& sampleType();
428 inline const std::string& type()
const override;
434 inline const VectorsF3& positions()
const;
440 inline const Indices32& objectIds()
const;
446 inline int8_t referenceSystem()
const;
452 static inline const std::string& sampleType();
502 inline const std::string& type()
const override;
514 inline const VectorsF3& positions()
const;
520 inline const Indices32& objectIds()
const;
526 inline int8_t referenceSystem()
const;
532 static inline const std::string& sampleType();
587 double latitude_ = NumericD::minValue();
590 double longitude_ = NumericD::minValue();
593 float altitude_ = NumericF::minValue();
596 float direction_ = -1.0f;
599 float speed_ = -1.0f;
602 float accuracy_ = -1.0f;
605 float altitudeAccuracy_ = -1.0f;
608 float directionAccuracy_ = -1.0f;
611 float speedAccuracy_ = -1.0f;
654 inline const std::string& type()
const override;
660 inline const Locations& locations()
const;
666 inline const Indices32& objectIds()
const;
672 inline int8_t referenceSystem()
const;
678 static inline const std::string& sampleType();
694 return orientations_;
704 return referenceSystem_;
709 static const std::string typeName =
"ocean/devices/datasampleorientationtracker3dof";
720 return measurements_;
730 static const std::string typeName =
"ocean/devices/datasampleaccelerationsensor3dof";
741 return measurements_;
751 static const std::string typeName =
"ocean/devices/datasamplegyrosensor3dof";
772 return referenceSystem_;
777 static const std::string typeName =
"ocean/devices/datasamplegravitytracker3dof";
798 return referenceSystem_;
803 static const std::string typeName =
"ocean/devices/datasamplepositiontracker3dof";
814 return orientations_;
829 return referenceSystem_;
834 static const std::string typeName =
"ocean/devices/datasampletracker6dof";
855 return referenceSystem_;
860 static const std::string typeName =
"ocean/devices/datasamplegpstracker";
Definition of a sample holding acceleration sensor 3DOF measurements.
Definition AccelerationSensor3DOF.h:49
Definition of a sample holding GPS measurements.
Definition GPSTracker.h:167
This class implements a container for a GPS location.
Definition GPSTracker.h:46
Definition of a sample holding 3DOF gravity measurements.
Definition GravityTracker3DOF.h:48
Definition of a sample holding gyro sensor 3DOF measurements.
Definition GyroSensor3DOF.h:49
Definition of a sample holding 3DOF orientation measurements.
Definition OrientationTracker3DOF.h:46
Definition of a sample holding 3DOF position measurements.
Definition PositionTracker3DOF.h:46
This class implements a data sample for 3DOF acceleration sensor measurements.
Definition DeviceSerializer.h:182
VectorsF3 measurements_
The acceleration measurements, each in [m / s^2].
Definition DeviceSerializer.h:241
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:723
DataSampleAccelerationSensor3DOF(const AccelerationSensor3DOF::Acceleration3DOFSample &sample, const Timestamp sampleCreationTimestamp=Timestamp(true))
Creates a new 3DOF acceleration sensor data sample from a sensor sample.
DataSampleAccelerationSensor3DOF()=default
Creates a new 3DOF acceleration sensor data sample.
bool readSample(IO::InputBitstream &inputBitstream) override
Reads the sample from an input bitstream.
bool writeSample(IO::OutputBitstream &outputBitstream) const override
Writes the sample to an output bitstream.
const VectorsF3 & measurements() const
Returns the acceleration measurements.
Definition DeviceSerializer.h:718
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:713
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:728
This class implements a GPS location.
Definition DeviceSerializer.h:556
bool write(IO::OutputBitstream &outputBitstream) const
Writes a GPS location to an output bitstream.
Location(const GPSTracker::Location &location)
Creates a new GPS location from a GPS tracker location.
Location()=default
Creates a new GPS location with default values.
bool read(IO::InputBitstream &inputBitstream)
Reads a GPS location from an input bitstream.
This class implements a data sample for GPS tracker measurements.
Definition DeviceSerializer.h:549
bool readSample(IO::InputBitstream &inputBitstream) override
Reads the sample from an input bitstream.
bool writeSample(IO::OutputBitstream &outputBitstream) const override
Writes the sample to an output bitstream.
std::vector< Location > Locations
Definition of a vector holding GPS locations.
Definition DeviceSerializer.h:617
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:858
Locations locations_
The GPS locations.
Definition DeviceSerializer.h:683
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:838
const Locations & locations() const
Returns the GPS locations.
Definition DeviceSerializer.h:843
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:853
DataSampleGPSTracker()=default
Creates a new GPS tracker data sample.
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:848
DataSampleGPSTracker(const GPSTracker::GPSTrackerSample &sample, const Timestamp sampleCreationTimestamp=Timestamp(true))
Creates a new GPS tracker data sample from a tracker sample.
This class implements a data sample for 3DOF gravity tracker measurements.
Definition DeviceSerializer.h:318
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:755
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:775
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:770
VectorsF3 gravities_
The gravity measurements.
Definition DeviceSerializer.h:383
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:765
bool writeSample(IO::OutputBitstream &outputBitstream) const override
Writes the sample to an output bitstream.
bool readSample(IO::InputBitstream &inputBitstream) override
Reads the sample from an input bitstream.
const VectorsF3 & gravities() const
Returns the gravity measurements.
Definition DeviceSerializer.h:760
DataSampleGravityTracker3DOF()=default
Creates a new 3DOF gravity tracker data sample.
DataSampleGravityTracker3DOF(const GravityTracker3DOF::GravityTracker3DOFSample &sample, const Timestamp sampleCreationTimestamp=Timestamp(true))
Creates a new 3DOF gravity tracker data sample from a tracker sample.
This class implements a data sample for 3DOF gyro sensor measurements.
Definition DeviceSerializer.h:250
DataSampleGyroSensor3DOF(const GyroSensor3DOF::Gyro3DOFSample &sample, const Timestamp sampleCreationTimestamp=Timestamp(true))
Creates a new 3DOF gyro sensor data sample from a sensor sample.
const VectorsF3 & measurements() const
Returns the gyro measurements.
Definition DeviceSerializer.h:739
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:744
bool writeSample(IO::OutputBitstream &outputBitstream) const override
Writes the sample to an output bitstream.
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:734
VectorsF3 measurements_
The gyro measurements.
Definition DeviceSerializer.h:309
DataSampleGyroSensor3DOF()=default
Creates a new 3DOF gyro sensor data sample.
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:749
bool readSample(IO::InputBitstream &inputBitstream) override
Reads the sample from an input bitstream.
This class implements a data sample for 3DOF orientation tracker measurements.
Definition DeviceSerializer.h:108
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:707
DataSampleOrientationTracker3DOF(const OrientationTracker3DOF::OrientationTracker3DOFSample &sample, const Timestamp sampleCreationTimestamp=Timestamp(true))
Creates a new 3DOF orientation tracker data sample from a tracker sample.
bool writeSample(IO::OutputBitstream &outputBitstream) const override
Writes the sample to an output bitstream.
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:697
QuaternionsF orientations_
The orientation measurements as quaternions.
Definition DeviceSerializer.h:173
bool readSample(IO::InputBitstream &inputBitstream) override
Reads the sample from an input bitstream.
DataSampleOrientationTracker3DOF()=default
Creates a new 3DOF orientation tracker data sample.
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:687
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:702
const QuaternionsF & orientations() const
Returns the orientation measurements.
Definition DeviceSerializer.h:692
This class implements a data sample for 3DOF position tracker measurements.
Definition DeviceSerializer.h:392
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:796
bool readSample(IO::InputBitstream &inputBitstream) override
Reads the sample from an input bitstream.
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:801
DataSamplePositionTracker3DOF()=default
Creates a new 3DOF position tracker data sample.
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:791
VectorsF3 positions_
The position measurements in meter.
Definition DeviceSerializer.h:457
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:781
bool writeSample(IO::OutputBitstream &outputBitstream) const override
Writes the sample to an output bitstream.
DataSamplePositionTracker3DOF(const PositionTracker3DOF::PositionTracker3DOFSample &sample, const Timestamp sampleCreationTimestamp=Timestamp(true))
Creates a new 3DOF position tracker data sample from a tracker sample.
const VectorsF3 & positions() const
Returns the position measurements.
Definition DeviceSerializer.h:786
This class implements a data sample for 6DOF tracker measurements.
Definition DeviceSerializer.h:466
bool readSample(IO::InputBitstream &inputBitstream) override
Reads the sample from an input bitstream.
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:827
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:807
VectorsF3 positions_
The position measurements in meter.
Definition DeviceSerializer.h:540
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:822
DataSampleTracker6DOF()=default
Creates a new 6DOF tracker data sample.
const QuaternionsF & orientations() const
Returns the orientation measurements.
Definition DeviceSerializer.h:812
DataSampleTracker6DOF(const Tracker6DOF::Tracker6DOFSample &sample, const Timestamp sampleCreationTimestamp=Timestamp(true))
Creates a new 6DOF tracker data sample from a tracker sample.
const VectorsF3 & positions() const
Returns the position measurements.
Definition DeviceSerializer.h:817
bool writeSample(IO::OutputBitstream &outputBitstream) const override
Writes the sample to an output bitstream.
QuaternionsF orientations_
The orientation measurements as quaternions.
Definition DeviceSerializer.h:537
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:832
This class is the base class for all sample measurements.
Definition DeviceSerializer.h:50
bool writeMeasurement(IO::OutputBitstream &outputBitstream) const
Writes measurement data to an output bitstream.
bool readMeasurement(IO::InputBitstream &inputBitstream)
Reads measurement data from an input bitstream.
Indices32 objectIds_
The object ids of the measurement units, each id corresponds to a different measurement.
Definition DeviceSerializer.h:70
This class is the base class for all sample tracker measurements.
Definition DeviceSerializer.h:77
bool writeTracker(IO::OutputBitstream &outputBitstream) const
Writes tracker data to an output bitstream.
bool readTracker(IO::InputBitstream &inputBitstream)
Reads tracker data from an input bitstream.
This class provides serialization capabilities for devices.
Definition DeviceSerializer.h:40
Definition of a sample holding one single 6DOF tracker measurement.
Definition Tracker6DOF.h:48
This class implements an output bitstream.
Definition Bitstream.h:215
This class implements a base class for data samples.
Definition DataSample.h:46
This class implements a timestamp.
Definition Timestamp.h:63
std::vector< Index32 > Indices32
Definition of a vector holding 32 bit index values.
Definition Base.h:96
std::vector< VectorF3 > VectorsF3
Definition of a vector holding VectorF3 objects.
Definition Vector3.h:79
std::vector< QuaternionF > QuaternionsF
Definition of a vector holding quaternion objects with single precision float data type.
Definition Quaternion.h:76
The namespace covering the entire Ocean framework.
Definition Accessor.h:15