From 5017d5c901f348af0d14a9fb8a4cb12b3f8dc90d Mon Sep 17 00:00:00 2001 From: kalman Date: Fri, 29 Mar 2019 17:06:28 +0800 Subject: [PATCH] feat(*): add external time source flag in img data --- include/mynteye/types.h | 5 +++++ src/mynteye/device/standard2/streams_adapter_s2.cc | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/mynteye/types.h b/include/mynteye/types.h index 28cf85e..db9f197 100644 --- a/include/mynteye/types.h +++ b/include/mynteye/types.h @@ -660,11 +660,14 @@ struct MYNTEYE_API ImgData { std::uint64_t timestamp; /** Image exposure time, virtual value in [1, 480] */ std::uint16_t exposure_time; + /** Is external time source */ + bool is_etc = false; void Reset() { frame_id = 0; timestamp = 0; exposure_time = 0; + is_etc = false; } ImgData() { @@ -674,11 +677,13 @@ struct MYNTEYE_API ImgData { frame_id = other.frame_id; timestamp = other.timestamp; exposure_time = other.exposure_time; + is_etc = other.is_etc; } ImgData &operator=(const ImgData &other) { frame_id = other.frame_id; timestamp = other.timestamp; exposure_time = other.exposure_time; + is_etc = other.is_etc; return *this; } }; diff --git a/src/mynteye/device/standard2/streams_adapter_s2.cc b/src/mynteye/device/standard2/streams_adapter_s2.cc index ea497c4..ee02dac 100644 --- a/src/mynteye/device/standard2/streams_adapter_s2.cc +++ b/src/mynteye/device/standard2/streams_adapter_s2.cc @@ -32,7 +32,8 @@ struct ImagePacket { std::uint64_t timestamp; std::uint16_t exposure_time; std::uint8_t checksum; - + // Is external time source + bool is_etc; ImagePacket() = default; explicit ImagePacket(std::uint8_t *data) { from_data(data); @@ -41,8 +42,8 @@ struct ImagePacket { void from_data(std::uint8_t *data) { std::uint32_t timestamp_l; std::uint32_t timestamp_h; - - header = *data; + header = *data & 0b0111; + is_ets = (*data & 0b1000 == 0b1000); size = *(data + 1); frame_id = (*(data + 2) << 8) | *(data + 3); timestamp_h = (*(data + 4) << 24) | (*(data + 5) << 16) | @@ -138,6 +139,7 @@ bool unpack_stereo_img_data( img->frame_id = img_packet.frame_id; img->timestamp = img_packet.timestamp; img->exposure_time = img_packet.exposure_time; + img->is_etc = img_packet.is_etc; return true; }