14 #ifndef MYNTEYE_TYPES_DATA_H_ 15 #define MYNTEYE_TYPES_DATA_H_ 25 #include "mynteyed/device/image.h" 26 #include "mynteyed/stubs/types_calib.h" 28 MYNTEYE_BEGIN_NAMESPACE
53 ImgInfo(
const ImgInfo &other) {
54 frame_id = other.frame_id;
55 timestamp = other.timestamp;
56 exposure_time = other.exposure_time;
58 ImgInfo &operator=(
const ImgInfo &other) {
59 frame_id = other.frame_id;
60 timestamp = other.timestamp;
61 exposure_time = other.exposure_time;
66 #define MYNTEYE_IMU_ACCEL 1 67 #define MYNTEYE_IMU_GYRO 2 97 std::fill(accel, accel + 3, 0);
98 std::fill(gyro, gyro + 3, 0);
112 std::shared_ptr<Image>
img;
116 bool operator==(
const StreamData& other)
const {
118 return img_info->frame_id == other.
img_info->frame_id &&
119 img_info->timestamp == other.
img_info->timestamp;
131 std::shared_ptr<ImuData>
imu;
133 bool operator==(
const MotionData &other)
const {
134 if (imu && other.
imu) {
135 return imu->flag == other.
imu->flag &&
136 imu->timestamp == other.
imu->timestamp;
143 #define MYNTEYE_PROPERTY(TYPE, NAME) \ 145 void set_##NAME(TYPE NAME) { NAME##_ = NAME; } \ 146 TYPE NAME() const { return NAME##_; } \ 155 using size_t = std::size_t;
156 using value_t = std::uint8_t;
159 Version(value_t major, value_t minor) : major_(major), minor_(minor) {}
160 explicit Version(
const std::string &name)
161 : major_(parse_part(name, 0)), minor_(parse_part(name, 1)) {}
164 bool operator==(
const Version &other)
const {
165 return major_ == other.major_ && minor_ == other.minor_;
167 bool operator<=(
const Version &other)
const {
168 if (major_ < other.major_)
170 if (major_ > other.major_)
172 return minor_ <= other.minor_;
174 bool operator!=(
const Version &other)
const {
175 return !(*
this == other);
177 bool operator<(
const Version &other)
const {
178 return !(*
this == other) && (*
this <= other);
180 bool operator>(
const Version &other)
const {
181 return !(*
this <= other);
183 bool operator>=(
const Version &other)
const {
184 return (*
this == other) || (*
this > other);
187 return (from <= *
this) && (*
this <= until);
190 std::string to_string()
const;
192 static std::vector<std::string> split(
const std::string &s);
193 static value_t parse_part(
const std::string &name,
size_t part);
195 MYNTEYE_PROPERTY(value_t, major)
196 MYNTEYE_PROPERTY(value_t, minor)
204 using flag_t = std::bitset<8>;
208 :
Version(major, minor), flag_(flag) {}
210 :
Version(parse_part(name, 0), parse_part(name, 1)), flag_(flag) {}
212 MYNTEYE_PROPERTY(flag_t, flag)
220 using size_t = std::size_t;
221 using value_t = std::uint16_t;
224 Type(value_t vendor, value_t product) : vendor_(vendor), product_(product) {}
225 explicit Type(
const std::string &name)
226 : vendor_(parse_part(name, 0, 2)), product_(parse_part(name, 2, 2)) {}
229 std::string to_string()
const;
230 static value_t parse_part(
const std::string &name,
size_t pos,
size_t count);
232 MYNTEYE_PROPERTY(value_t, vendor)
233 MYNTEYE_PROPERTY(value_t, product)
245 std::string serial_number;
251 std::uint16_t nominal_baseline;
267 MYNTEYE_END_NAMESPACE
269 #endif // MYNTEYE_TYPES_DATA_H_ Version.
Definition: types_data.h:153
Extrinsics, represent how the different datas are connected.
Definition: types_calib.h:119
std::uint32_t timestamp
Image timestamp.
Definition: types_data.h:39
std::shared_ptr< ImgInfo > img_info
Image information.
Definition: types_data.h:114
Device descriptors.
Definition: types_data.h:242
std::uint16_t frame_id
Image frame id.
Definition: types_data.h:36
double temperature
temperature
Definition: types_data.h:85
Stream data.
Definition: types_data.h:110
Device imu paramters.
Definition: types_data.h:258
std::shared_ptr< ImuData > imu
ImuData.
Definition: types_data.h:131
Type.
Definition: types_data.h:218
Imu data.
Definition: types_data.h:73
std::uint16_t exposure_time
Image exposure time.
Definition: types_data.h:42
Hardware version.
Definition: types_data.h:202
Image information.
Definition: types_data.h:34
std::shared_ptr< Image > img
Image data.
Definition: types_data.h:112
std::uint64_t timestamp
Imu gyroscope or accelerometer or frame timestamp.
Definition: types_data.h:82
std::uint8_t flag
Data type MYNTEYE_IMU_ACCEL: accelerometer MYNTEYE_IMU_GYRO: gyroscope.
Definition: types_data.h:79
Motion data.
Definition: types_data.h:129
IMU intrinsics: scale, drift and variances.
Definition: types_calib.h:66