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();
226 inline const std::string& type()
const override;
232 inline const VectorsF3& measurements()
const;
238 inline const Indices32& objectIds()
const;
244 static inline const std::string& sampleType();
302 inline const std::string& type()
const override;
308 inline const VectorsF3& measurements()
const;
314 inline const Indices32& objectIds()
const;
320 static inline const std::string& sampleType();
378 inline const std::string& type()
const override;
384 inline const VectorsF3& gravities()
const;
390 inline const Indices32& objectIds()
const;
396 inline int8_t referenceSystem()
const;
402 static inline const std::string& sampleType();
460 inline const std::string& type()
const override;
466 inline const VectorsF3& positions()
const;
472 inline const Indices32& objectIds()
const;
478 inline int8_t referenceSystem()
const;
484 static inline const std::string& sampleType();
542 inline const std::string& type()
const override;
554 inline const VectorsF3& positions()
const;
560 inline const Indices32& objectIds()
const;
566 inline int8_t referenceSystem()
const;
572 static inline const std::string& sampleType();
635 double latitude_ = NumericD::minValue();
638 double longitude_ = NumericD::minValue();
641 float altitude_ = NumericF::minValue();
644 float direction_ = -1.0f;
647 float speed_ = -1.0f;
650 float accuracy_ = -1.0f;
653 float altitudeAccuracy_ = -1.0f;
656 float directionAccuracy_ = -1.0f;
659 float speedAccuracy_ = -1.0f;
702 inline const std::string& type()
const override;
708 inline const Locations& locations()
const;
714 inline const Indices32& objectIds()
const;
720 inline int8_t referenceSystem()
const;
726 static inline const std::string& sampleType();
750 return orientations_;
760 return referenceSystem_;
765 static const std::string typeName =
"ocean/devices/datasampleorientationtracker3dof";
776 return measurements_;
786 static const std::string typeName =
"ocean/devices/datasampleaccelerationsensor3dof";
797 return measurements_;
807 static const std::string typeName =
"ocean/devices/datasamplegyrosensor3dof";
828 return referenceSystem_;
833 static const std::string typeName =
"ocean/devices/datasamplegravitytracker3dof";
854 return referenceSystem_;
859 static const std::string typeName =
"ocean/devices/datasamplepositiontracker3dof";
870 return orientations_;
885 return referenceSystem_;
890 static const std::string typeName =
"ocean/devices/datasampletracker6dof";
911 return referenceSystem_;
916 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:190
VectorsF3 measurements_
The acceleration measurements, each in [m / s^2].
Definition DeviceSerializer.h:257
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:779
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:774
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:769
static IO::Serialization::UniqueDataSample createSample(const std::string &sampleType)
Factory function for creating a DataSampleAccelerationSensor3DOF.
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:784
This class implements a GPS location.
Definition DeviceSerializer.h:604
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:597
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:665
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:914
Locations locations_
The GPS locations.
Definition DeviceSerializer.h:739
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:894
const Locations & locations() const
Returns the GPS locations.
Definition DeviceSerializer.h:899
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:909
DataSampleGPSTracker()=default
Creates a new GPS tracker data sample.
static IO::Serialization::UniqueDataSample createSample(const std::string &sampleType)
Factory function for creating a DataSampleGPSTracker.
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:904
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:342
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:811
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:831
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:826
VectorsF3 gravities_
The gravity measurements.
Definition DeviceSerializer.h:415
static IO::Serialization::UniqueDataSample createSample(const std::string &sampleType)
Factory function for creating a DataSampleGravityTracker3DOF.
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:821
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:816
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:266
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:795
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:800
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:790
VectorsF3 measurements_
The gyro measurements.
Definition DeviceSerializer.h:333
static IO::Serialization::UniqueDataSample createSample(const std::string &sampleType)
Factory function for creating a DataSampleGyroSensor3DOF.
DataSampleGyroSensor3DOF()=default
Creates a new 3DOF gyro sensor data sample.
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:805
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 IO::Serialization::UniqueDataSample createSample(const std::string &sampleType)
Factory function for creating a DataSampleOrientationTracker3DOF.
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:763
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:753
QuaternionsF orientations_
The orientation measurements as quaternions.
Definition DeviceSerializer.h:181
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:743
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:758
const QuaternionsF & orientations() const
Returns the orientation measurements.
Definition DeviceSerializer.h:748
This class implements a data sample for 3DOF position tracker measurements.
Definition DeviceSerializer.h:424
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:852
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:857
DataSamplePositionTracker3DOF()=default
Creates a new 3DOF position tracker data sample.
static IO::Serialization::UniqueDataSample createSample(const std::string &sampleType)
Factory function for creating a DataSamplePositionTracker3DOF.
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:847
VectorsF3 positions_
The position measurements in meter.
Definition DeviceSerializer.h:497
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:837
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:842
This class implements a data sample for 6DOF tracker measurements.
Definition DeviceSerializer.h:506
static IO::Serialization::UniqueDataSample createSample(const std::string &sampleType)
Factory function for creating a DataSampleTracker6DOF.
bool readSample(IO::InputBitstream &inputBitstream) override
Reads the sample from an input bitstream.
int8_t referenceSystem() const
Returns the reference system.
Definition DeviceSerializer.h:883
const std::string & type() const override
Returns the type of the sample.
Definition DeviceSerializer.h:863
VectorsF3 positions_
The position measurements in meter.
Definition DeviceSerializer.h:588
const Indices32 & objectIds() const
Returns the object ids.
Definition DeviceSerializer.h:878
DataSampleTracker6DOF()=default
Creates a new 6DOF tracker data sample.
const QuaternionsF & orientations() const
Returns the orientation measurements.
Definition DeviceSerializer.h:868
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:873
bool writeSample(IO::OutputBitstream &outputBitstream) const override
Writes the sample to an output bitstream.
QuaternionsF orientations_
The orientation measurements as quaternions.
Definition DeviceSerializer.h:585
static const std::string & sampleType()
Returns the static sample type.
Definition DeviceSerializer.h:888
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:64
std::vector< Index32 > Indices32
Definition of a vector holding 32 bit index values.
Definition Base.h:96
std::unique_ptr< DataSample > UniqueDataSample
Definition of a unique pointer holding a DataSample.
Definition DataSample.h:39
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