From 9eea427d5990c038fd2a390688e679ffeeb84686 Mon Sep 17 00:00:00 2001 From: Osenberg Date: Thu, 20 Dec 2018 10:58:59 +0800 Subject: [PATCH 1/9] Fixed ros timestamp overflow. --- .../mynt_eye_ros_wrapper/src/wrapper_nodelet.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc b/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc index 8dd656d..0dd8456 100644 --- a/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc +++ b/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc @@ -81,9 +81,13 @@ class ROSWrapperNodelet : public nodelet::Nodelet { } } - ros::Time hardTimeToSoftTime(double _hard_time) { + ros::Time hardTimeToSoftTime(std::uint32_t _hard_time) { static bool isInited = false; - static double soft_time_begin(0), hard_time_begin(0); + static uint32_t soft_time_begin(0), hard_time_begin(0); + static uint32_t hard_time_now(0); + static std::uint64_t unit_hard_time = + std::numeric_limits::max(); + static std::uint32_t acc(0); if (false == isInited) { soft_time_begin = ros::Time::now().toSec(); @@ -91,8 +95,13 @@ class ROSWrapperNodelet : public nodelet::Nodelet { isInited = true; } + if (_hard_time < hard_time_now) { acc++; } + hard_time_now = _hard_time; + return ros::Time( - soft_time_begin + (_hard_time - hard_time_begin) * 0.00001f); + soft_time_begin + + static_cast(acc * unit_hard_time + + _hard_time - hard_time_begin) * 0.00001f); } void onInit() override { From 2e97266516e1695e0edd7433fb295817f17c86eb Mon Sep 17 00:00:00 2001 From: Osenberg Date: Fri, 21 Dec 2018 20:45:19 +0800 Subject: [PATCH 2/9] fix(ros): ros time stamp overflow --- .../src/wrapper_nodelet.cc | 104 +++++++++++++++--- 1 file changed, 88 insertions(+), 16 deletions(-) diff --git a/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc b/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc index 0dd8456..a6bc055 100644 --- a/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc +++ b/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc @@ -81,13 +81,10 @@ class ROSWrapperNodelet : public nodelet::Nodelet { } } - ros::Time hardTimeToSoftTime(std::uint32_t _hard_time) { + ros::Time hardTimeToSoftTime(std::uint64_t _hard_time) { static bool isInited = false; - static uint32_t soft_time_begin(0), hard_time_begin(0); - static uint32_t hard_time_now(0); - static std::uint64_t unit_hard_time = - std::numeric_limits::max(); - static std::uint32_t acc(0); + static double soft_time_begin(0); + static std::uint64_t hard_time_begin(0); if (false == isInited) { soft_time_begin = ros::Time::now().toSec(); @@ -95,13 +92,79 @@ class ROSWrapperNodelet : public nodelet::Nodelet { isInited = true; } - if (_hard_time < hard_time_now) { acc++; } + return ros::Time( + static_cast(soft_time_begin + + static_cast(_hard_time - hard_time_begin) * 0.00001f)); + } + + inline bool is_overflow(std::uint32_t now, + std::uint32_t last) { + static std::uint64_t unit = + std::numeric_limits::max(); + return static_cast(last - now) + > static_cast(unit / 2); + } + + inline bool is_repeated(std::uint32_t now, + std::uint32_t last) { + return now == last; + } + + inline bool is_error(std::uint32_t now, + std::uint32_t last) { + return last > now && !is_overflow(now, last); + } + + ros::Time checkUpTimeStamp(std::uint32_t _hard_time, + const Stream &stream) { + static std::map hard_time_now; + static std::map acc; + static std::uint64_t unit_hard_time = + std::numeric_limits::max(); + + if (is_overflow(_hard_time, hard_time_now[stream])) { + std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; + std::cout << "_hard_time:: " << _hard_time << std::endl; + std::cout << "img_acc:: " << acc[stream] << std::endl; + acc[stream]++; + } else if (is_repeated(_hard_time, hard_time_now[stream])) { + std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; + std::cout << "_hard_time:: " << _hard_time << std::endl; + NODELET_INFO_STREAM("WARNING:: Image time stamp is repeated."); + } else if (is_error(_hard_time, hard_time_now[stream])) { + std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; + std::cout << "_hard_time:: " << _hard_time << std::endl; + NODELET_INFO_STREAM("WARNING:: Image time stamp is error."); + } + hard_time_now[stream] = _hard_time; + + return hardTimeToSoftTime( + acc[stream] * unit_hard_time + _hard_time); + } + + ros::Time checkUpImuTimeStamp(std::uint32_t _hard_time) { + static std::uint32_t hard_time_now(0), acc(0); + static std::uint64_t unit_hard_time = + std::numeric_limits::max(); + + if (is_overflow(_hard_time, hard_time_now)) { + std::cout << "imu_hard_time_now:: " << hard_time_now << std::endl; + std::cout << "_hard_time:: " << _hard_time << std::endl; + std::cout << "imu_acc:: " << acc << std::endl; + acc++; + } else if (is_repeated(_hard_time, hard_time_now)) { + std::cout << "imu_hard_time_now:: " << hard_time_now << std::endl; + std::cout << "_hard_time:: " << _hard_time << std::endl; + NODELET_INFO_STREAM("WARNING:: Imu time stamp is repeated."); + } else if (is_error(_hard_time, hard_time_now)) { + std::cout << "imu_hard_time_now:: " << hard_time_now << std::endl; + std::cout << "_hard_time:: " << _hard_time << std::endl; + NODELET_INFO_STREAM("WARNING:: Imu time stamp is error."); + } hard_time_now = _hard_time; - return ros::Time( - soft_time_begin + - static_cast(acc * unit_hard_time + - _hard_time - hard_time_begin) * 0.00001f); + return hardTimeToSoftTime( + acc * unit_hard_time + _hard_time); } void onInit() override { @@ -331,7 +394,9 @@ class ROSWrapperNodelet : public nodelet::Nodelet { api_->EnableStreamData(Stream::POINTS); api_->SetStreamCallback( Stream::POINTS, [this](const api::StreamData &data) { - ros::Time stamp = hardTimeToSoftTime(data.img->timestamp); + // ros::Time stamp = hardTimeToSoftTime(data.img->timestamp); + ros::Time stamp = checkUpTimeStamp( + data.img->timestamp, Stream::POINTS); static std::size_t count = 0; ++count; publishPoints(data, count, stamp); @@ -351,7 +416,9 @@ class ROSWrapperNodelet : public nodelet::Nodelet { api_->EnableStreamData(stream); api_->SetStreamCallback( stream, [this, stream](const api::StreamData &data) { - ros::Time stamp = hardTimeToSoftTime(data.img->timestamp); + // ros::Time stamp = hardTimeToSoftTime(data.img->timestamp); + ros::Time stamp = checkUpTimeStamp( + data.img->timestamp, stream); static std::size_t count = 0; ++count; publishCamera(stream, data, count, stamp); @@ -365,7 +432,9 @@ class ROSWrapperNodelet : public nodelet::Nodelet { !is_published_[Stream::LEFT]) { api_->SetStreamCallback( Stream::LEFT, [this](const api::StreamData &data) { - ros::Time stamp = hardTimeToSoftTime(data.img->timestamp); + // ros::Time stamp = hardTimeToSoftTime(data.img->timestamp); + ros::Time stamp = checkUpTimeStamp( + data.img->timestamp, Stream::LEFT); // static double img_time_prev = -1; // NODELET_INFO_STREAM("ros_time_beg: " << FULL_PRECISION << @@ -394,7 +463,9 @@ class ROSWrapperNodelet : public nodelet::Nodelet { !is_published_[Stream::RIGHT]) { api_->SetStreamCallback( Stream::RIGHT, [this](const api::StreamData &data) { - ros::Time stamp = hardTimeToSoftTime(data.img->timestamp); + // ros::Time stamp = hardTimeToSoftTime(data.img->timestamp); + ros::Time stamp = checkUpTimeStamp( + data.img->timestamp, Stream::RIGHT); ++right_count_; publishCamera(Stream::RIGHT, data, right_count_, stamp); @@ -423,7 +494,8 @@ class ROSWrapperNodelet : public nodelet::Nodelet { if (!is_motion_published_) { api_->SetMotionCallback([this](const api::MotionData &data) { - ros::Time stamp = hardTimeToSoftTime(data.imu->timestamp); + // ros::Time stamp = hardTimeToSoftTime(data.imu->timestamp); + ros::Time stamp = checkUpImuTimeStamp(data.imu->timestamp); // static double imu_time_prev = -1; // NODELET_INFO_STREAM("ros_time_beg: " << FULL_PRECISION << From 28e539e277f3d4f70d0b12c444d280db326cc2fb Mon Sep 17 00:00:00 2001 From: Osenberg Date: Sun, 23 Dec 2018 17:20:03 +0800 Subject: [PATCH 3/9] fix(ros):: test ros timestamp overflow. --- .../src/wrapper_nodelet.cc | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc b/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc index a6bc055..79bc805 100644 --- a/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc +++ b/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc @@ -98,21 +98,33 @@ class ROSWrapperNodelet : public nodelet::Nodelet { } inline bool is_overflow(std::uint32_t now, - std::uint32_t last) { + std::uint32_t pre) { static std::uint64_t unit = std::numeric_limits::max(); - return static_cast(last - now) - > static_cast(unit / 2); + /* + std::cout << "pre:: " << pre << " now:: " << now << std::endl; + std::cout << "pre - now:: " << (long)(pre - now) << std::endl; + std::cout << "unit / 2:: " << unit / 2 << std::endl; + // std::cout << "abs:: " << labs(529 - 4280606083) << std::endl; + return static_cast(pre - now) + > static_cast(unit / 2); + // return labs(pre - now) > (unit / 2); + */ + + return (now < pre) && ((pre - now) > (unit / 2)); } inline bool is_repeated(std::uint32_t now, - std::uint32_t last) { - return now == last; + std::uint32_t pre) { + return now == pre; } - inline bool is_error(std::uint32_t now, - std::uint32_t last) { - return last > now && !is_overflow(now, last); + inline bool is_annormal(std::uint32_t now, + std::uint32_t pre) { + static std::uint64_t unit = + std::numeric_limits::max(); + + return (now < pre) && ((pre - now) < (unit / 4)); } ros::Time checkUpTimeStamp(std::uint32_t _hard_time, @@ -126,15 +138,18 @@ class ROSWrapperNodelet : public nodelet::Nodelet { std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; std::cout << "_hard_time:: " << _hard_time << std::endl; std::cout << "img_acc:: " << acc[stream] << std::endl; + std::cout << "overflow stream:: " << stream << std::endl; acc[stream]++; } else if (is_repeated(_hard_time, hard_time_now[stream])) { std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; std::cout << "_hard_time:: " << _hard_time << std::endl; + std::cout << "repeated stream:: " << stream << std::endl; NODELET_INFO_STREAM("WARNING:: Image time stamp is repeated."); - } else if (is_error(_hard_time, hard_time_now[stream])) { + } else if (is_annormal(_hard_time, hard_time_now[stream])) { std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; std::cout << "_hard_time:: " << _hard_time << std::endl; - NODELET_INFO_STREAM("WARNING:: Image time stamp is error."); + std::cout << "annormal stream:: " << stream << std::endl; + NODELET_INFO_STREAM("WARNING:: Image time stamp is annormal."); } hard_time_now[stream] = _hard_time; @@ -156,10 +171,10 @@ class ROSWrapperNodelet : public nodelet::Nodelet { std::cout << "imu_hard_time_now:: " << hard_time_now << std::endl; std::cout << "_hard_time:: " << _hard_time << std::endl; NODELET_INFO_STREAM("WARNING:: Imu time stamp is repeated."); - } else if (is_error(_hard_time, hard_time_now)) { + } else if (is_annormal(_hard_time, hard_time_now)) { std::cout << "imu_hard_time_now:: " << hard_time_now << std::endl; std::cout << "_hard_time:: " << _hard_time << std::endl; - NODELET_INFO_STREAM("WARNING:: Imu time stamp is error."); + NODELET_INFO_STREAM("WARNING:: Imu time stamp is annormal."); } hard_time_now = _hard_time; From 1f6acd3c988504eba898fa93324c6eb6c7a1756e Mon Sep 17 00:00:00 2001 From: Osenberg Date: Tue, 25 Dec 2018 10:35:25 +0800 Subject: [PATCH 4/9] style(ros):: Remove useless log --- .../src/wrapper_nodelet.cc | 26 ------------------- 1 file changed, 26 deletions(-) diff --git a/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc b/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc index 79bc805..762b5bb 100644 --- a/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc +++ b/wrappers/ros/src/mynt_eye_ros_wrapper/src/wrapper_nodelet.cc @@ -101,15 +101,6 @@ class ROSWrapperNodelet : public nodelet::Nodelet { std::uint32_t pre) { static std::uint64_t unit = std::numeric_limits::max(); - /* - std::cout << "pre:: " << pre << " now:: " << now << std::endl; - std::cout << "pre - now:: " << (long)(pre - now) << std::endl; - std::cout << "unit / 2:: " << unit / 2 << std::endl; - // std::cout << "abs:: " << labs(529 - 4280606083) << std::endl; - return static_cast(pre - now) - > static_cast(unit / 2); - // return labs(pre - now) > (unit / 2); - */ return (now < pre) && ((pre - now) > (unit / 2)); } @@ -135,20 +126,10 @@ class ROSWrapperNodelet : public nodelet::Nodelet { std::numeric_limits::max(); if (is_overflow(_hard_time, hard_time_now[stream])) { - std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; - std::cout << "_hard_time:: " << _hard_time << std::endl; - std::cout << "img_acc:: " << acc[stream] << std::endl; - std::cout << "overflow stream:: " << stream << std::endl; acc[stream]++; } else if (is_repeated(_hard_time, hard_time_now[stream])) { - std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; - std::cout << "_hard_time:: " << _hard_time << std::endl; - std::cout << "repeated stream:: " << stream << std::endl; NODELET_INFO_STREAM("WARNING:: Image time stamp is repeated."); } else if (is_annormal(_hard_time, hard_time_now[stream])) { - std::cout << "img_hard_time_now:: " << hard_time_now[stream] << std::endl; - std::cout << "_hard_time:: " << _hard_time << std::endl; - std::cout << "annormal stream:: " << stream << std::endl; NODELET_INFO_STREAM("WARNING:: Image time stamp is annormal."); } hard_time_now[stream] = _hard_time; @@ -163,17 +144,10 @@ class ROSWrapperNodelet : public nodelet::Nodelet { std::numeric_limits::max(); if (is_overflow(_hard_time, hard_time_now)) { - std::cout << "imu_hard_time_now:: " << hard_time_now << std::endl; - std::cout << "_hard_time:: " << _hard_time << std::endl; - std::cout << "imu_acc:: " << acc << std::endl; acc++; } else if (is_repeated(_hard_time, hard_time_now)) { - std::cout << "imu_hard_time_now:: " << hard_time_now << std::endl; - std::cout << "_hard_time:: " << _hard_time << std::endl; NODELET_INFO_STREAM("WARNING:: Imu time stamp is repeated."); } else if (is_annormal(_hard_time, hard_time_now)) { - std::cout << "imu_hard_time_now:: " << hard_time_now << std::endl; - std::cout << "_hard_time:: " << _hard_time << std::endl; NODELET_INFO_STREAM("WARNING:: Imu time stamp is annormal."); } hard_time_now = _hard_time; From aa19d65272c0bc8e656657317622d1c352bd5af9 Mon Sep 17 00:00:00 2001 From: Osenberg Date: Tue, 25 Dec 2018 11:09:16 +0800 Subject: [PATCH 5/9] docs(doc):: Modified version number for release --- CMakeLists.txt | 2 +- README.md | 12 ++++++------ doc/en/api.doxyfile | 2 +- doc/zh-Hans/api.doxyfile | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a7a08a..c2dd1a5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ cmake_minimum_required(VERSION 3.0) -project(mynteye VERSION 2.2.2 LANGUAGES C CXX) +project(mynteye VERSION 2.2.3 LANGUAGES C CXX) include(cmake/Common.cmake) diff --git a/README.md b/README.md index 4d4cd35..f5967a2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MYNT® EYE S SDK -[![](https://img.shields.io/badge/MYNT%20EYE%20S%20SDK-2.2.2-brightgreen.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK) +[![](https://img.shields.io/badge/MYNT%20EYE%20S%20SDK-2.2.3-brightgreen.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK) ## Overview @@ -17,11 +17,11 @@ Please follow the guide doc to install the SDK on different platforms. ## Documentations * [API Doc](https://github.com/slightech/MYNT-EYE-S-SDK/releases): API reference, some guides and data spec. - * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.2-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683637/mynt-eye-s-sdk-apidoc-2.2.2-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK/) - * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683638/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683639/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.2-zh-Hans/index.html) + * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683637/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK/) + * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683638/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683639/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html) * [Guide Doc](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/releases): How to install and start using the SDK. - * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683625/mynt-eye-s-sdk-guide-2.2.2-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683626/mynt-eye-s-sdk-guide-2.2.2-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) - * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683627/mynt-eye-s-sdk-guide-2.2.2-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683628/mynt-eye-s-sdk-guide-2.2.2-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.2-zh-Hans/mynt-eye-s-sdk-guide-2.2.2-zh-Hans/index.html) + * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683625/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683626/mynt-eye-s-sdk-guide-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) + * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683627/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683628/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/index.html) > Supported languages: `en`, `zh-Hans`. @@ -29,7 +29,7 @@ Please follow the guide doc to install the SDK on different platforms. [MYNTEYE_BOX]: http://doc.myntai.com/mynteye/s/download -Get firmwares from our online disks: [MYNTEYE_BOX][]. The latest version is `2.2.2`. +Get firmwares from our online disks: [MYNTEYE_BOX][]. The latest version is `2.2.3`. ## Usage diff --git a/doc/en/api.doxyfile b/doc/en/api.doxyfile index 4960085..8775d79 100644 --- a/doc/en/api.doxyfile +++ b/doc/en/api.doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "MYNT EYE S SDK" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2.2.2 +PROJECT_NUMBER = 2.2.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doc/zh-Hans/api.doxyfile b/doc/zh-Hans/api.doxyfile index d2b5675..57592e0 100644 --- a/doc/zh-Hans/api.doxyfile +++ b/doc/zh-Hans/api.doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = "MYNT EYE S SDK" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 2.2.2 +PROJECT_NUMBER = 2.2.3 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a From b10415515e14dfc92cd7c24073eb2ea91d24c1f0 Mon Sep 17 00:00:00 2001 From: kalman Date: Tue, 25 Dec 2018 18:45:48 +0800 Subject: [PATCH 6/9] chore(root):update reademe --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f5967a2..5c64f54 100644 --- a/README.md +++ b/README.md @@ -17,11 +17,11 @@ Please follow the guide doc to install the SDK on different platforms. ## Documentations * [API Doc](https://github.com/slightech/MYNT-EYE-S-SDK/releases): API reference, some guides and data spec. - * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683637/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK/) - * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683638/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683639/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html) + * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708508/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK/) + * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708510/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html) * [Guide Doc](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/releases): How to install and start using the SDK. - * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683625/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683626/mynt-eye-s-sdk-guide-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) - * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683627/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2683628/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/index.html) + * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708524/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708525/mynt-eye-s-sdk-guide-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) + * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)]https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708529/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/index.html) > Supported languages: `en`, `zh-Hans`. From 0bcaa0801e811b8d1e4e06d7b4c395120ecff47c Mon Sep 17 00:00:00 2001 From: kalman Date: Tue, 25 Dec 2018 18:53:39 +0800 Subject: [PATCH 7/9] fix(README):update url of api doc in English --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c64f54..68a63bc 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Please follow the guide doc to install the SDK on different platforms. ## Documentations * [API Doc](https://github.com/slightech/MYNT-EYE-S-SDK/releases): API reference, some guides and data spec. - * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708508/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK/) + * en: [![](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-en/mynt-eye-s-sdk-apidoc-2.2.3-en/index.html)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708508/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK/) * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708510/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html) * [Guide Doc](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/releases): How to install and start using the SDK. * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708524/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708525/mynt-eye-s-sdk-guide-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) From 18258fe7c9e412017cd91731cfd5960579871616 Mon Sep 17 00:00:00 2001 From: kalman Date: Tue, 25 Dec 2018 19:07:52 +0800 Subject: [PATCH 8/9] chore(root):update readme --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 68a63bc..28aafb1 100644 --- a/README.md +++ b/README.md @@ -17,11 +17,11 @@ Please follow the guide doc to install the SDK on different platforms. ## Documentations * [API Doc](https://github.com/slightech/MYNT-EYE-S-SDK/releases): API reference, some guides and data spec. - * en: [![](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-en/mynt-eye-s-sdk-apidoc-2.2.3-en/index.html)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2683636/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708508/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK/) - * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708510/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html) + * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708507/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708508/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-en/mynt-eye-s-sdk-apidoc-2.2.3-en/index.html) + * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)]((https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708510/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html) * [Guide Doc](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/releases): How to install and start using the SDK. - * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708524/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708525/mynt-eye-s-sdk-guide-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) - * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)]https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708529/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/index.html) + * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)]((https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708524/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708525/mynt-eye-s-sdk-guide-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) + * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708528/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708529/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/index.html) > Supported languages: `en`, `zh-Hans`. From 6e638813f2bb3f9aae44712960bebcff6e415a73 Mon Sep 17 00:00:00 2001 From: kalman Date: Tue, 25 Dec 2018 19:21:26 +0800 Subject: [PATCH 9/9] chore(root):update readme --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 28aafb1..2b6f796 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,10 @@ Please follow the guide doc to install the SDK on different platforms. ## Documentations * [API Doc](https://github.com/slightech/MYNT-EYE-S-SDK/releases): API reference, some guides and data spec. - * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708507/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708508/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-en/mynt-eye-s-sdk-apidoc-2.2.3-en/index.html) - * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)]((https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708510/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html) + * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708507/mynt-eye-s-sdk-apidoc-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708508/mynt-eye-s-sdk-apidoc-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-en/mynt-eye-s-sdk-apidoc-2.2.3-en/index.html) + * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708509/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2708510/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/api/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/mynt-eye-s-sdk-apidoc-2.2.3-zh-Hans/index.html) * [Guide Doc](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/releases): How to install and start using the SDK. - * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)]((https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708524/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708525/mynt-eye-s-sdk-guide-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) + * en: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708524/mynt-eye-s-sdk-guide-2.2.3-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708525/mynt-eye-s-sdk-guide-2.2.3-en.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](https://slightech.github.io/MYNT-EYE-S-SDK-Guide/) * zh-Hans: [![](https://img.shields.io/badge/Download-PDF-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708528/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2708529/mynt-eye-s-sdk-guide-2.2.3-zh-Hans.zip) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/mynt-eye-s-sdk-guide-2.2.3-zh-Hans/index.html) > Supported languages: `en`, `zh-Hans`.