fix(type): fix conflict
This commit is contained in:
commit
559a812c65
|
@ -14,7 +14,7 @@
|
|||
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
project(mynteye VERSION 2.3.1 LANGUAGES C CXX)
|
||||
project(mynteye VERSION 2.3.2 LANGUAGES C CXX)
|
||||
|
||||
include(cmake/Common.cmake)
|
||||
|
||||
|
@ -220,6 +220,7 @@ if(WITH_API)
|
|||
src/mynteye/api/processor/rectify_processor_ocv.cc
|
||||
src/mynteye/api/config.cc
|
||||
src/mynteye/api/correspondence.cc
|
||||
src/mynteye/api/version_checker.cc
|
||||
)
|
||||
if(WITH_CAM_MODELS)
|
||||
list(APPEND MYNTEYE_SRCS
|
||||
|
|
10
README.md
10
README.md
|
@ -1,6 +1,6 @@
|
|||
# MYNT® EYE S SDK
|
||||
|
||||
[![](https://img.shields.io/badge/MYNT%20EYE%20S%20SDK-2.3.1-brightgreen.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK)
|
||||
[![](https://img.shields.io/badge/MYNT%20EYE%20S%20SDK-2.3.2-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/2893965/mynt-eye-s-sdk-apidoc-2.3.1-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2893979/mynt-eye-s-sdk-apidoc-2.3.1-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/2893985/mynt-eye-s-sdk-apidoc-2.3.1-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2893986/mynt-eye-s-sdk-apidoc-2.3.1-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.3.1-zh-Hans/mynt-eye-s-sdk-apidoc-2.3.1-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/2913110/mynt-eye-s-sdk-apidoc-2.3.2-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2913111/mynt-eye-s-sdk-apidoc-2.3.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/2913112/mynt-eye-s-sdk-apidoc-2.3.2-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK/files/2913113/mynt-eye-s-sdk-apidoc-2.3.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.3.2-zh-Hans/mynt-eye-s-sdk-apidoc-2.3.2-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/2893975/mynt-eye-s-sdk-guide-2.3.1-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2893996/mynt-eye-s-sdk-guide-2.3.1-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/2893997/mynt-eye-s-sdk-guide-2.3.1-zh-Hans.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2893997/mynt-eye-s-sdk-guide-2.3.1-zh-Hans.pdf) [![](https://img.shields.io/badge/Online-HTML-blue.svg?style=flat)](http://doc.myntai.com/resource/sdk/mynt-eye-s-sdk-guide-2.3.1-zh-Hans/mynt-eye-s-sdk-guide-2.3.1-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/2913052/mynt-eye-s-sdk-guide-2.3.2-en.pdf) [![](https://img.shields.io/badge/Download-HTML-blue.svg?style=flat)](https://github.com/slightech/MYNT-EYE-S-SDK-Guide/files/2913053/mynt-eye-s-sdk-guide-2.3.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/2913054/mynt-eye-s-sdk-guide-2.3.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/2913056/mynt-eye-s-sdk-guide-2.3.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.3.2-zh-Hans/mynt-eye-s-sdk-guide-2.3.2-zh-Hans/index.html)
|
||||
|
||||
> Supported languages: `en`, `zh-Hans`.
|
||||
|
||||
|
|
|
@ -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.3.1
|
||||
PROJECT_NUMBER = 2.3.2
|
||||
|
||||
# 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
|
||||
|
|
|
@ -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.3.1
|
||||
PROJECT_NUMBER = 2.3.2
|
||||
|
||||
# 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
|
||||
|
|
|
@ -126,6 +126,8 @@ enum class Info : std::uint8_t {
|
|||
AUXILIARY_CHIP_VERSION,
|
||||
/** Isp version */
|
||||
ISP_VERSION,
|
||||
/** SDK version*/
|
||||
SDK_VERSION,
|
||||
/** Last guard */
|
||||
LAST
|
||||
};
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "mynteye/api/dl.h"
|
||||
#include "mynteye/api/plugin.h"
|
||||
#include "mynteye/api/synthetic.h"
|
||||
#include "mynteye/api/version_checker.h"
|
||||
#include "mynteye/device/device.h"
|
||||
#include "mynteye/device/utils.h"
|
||||
|
||||
|
@ -222,7 +223,10 @@ API::~API() {
|
|||
std::shared_ptr<API> API::Create(int argc, char *argv[]) {
|
||||
auto &&device = device::select();
|
||||
if (!device) return nullptr;
|
||||
return Create(argc, argv, device);
|
||||
auto api = Create(argc, argv, device);
|
||||
if (api && checkFirmwareVersion(api))
|
||||
return api;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
std::shared_ptr<API> API::Create(
|
||||
|
@ -261,7 +265,7 @@ std::shared_ptr<API> API::Create(const std::shared_ptr<Device> &device) {
|
|||
}
|
||||
} else {
|
||||
LOG(ERROR) <<"no device!";
|
||||
api = std::make_shared<API>(device, CalibrationModel::UNKNOW);
|
||||
return nullptr;
|
||||
}
|
||||
return api;
|
||||
}
|
||||
|
@ -324,6 +328,20 @@ std::shared_ptr<DeviceInfo> API::GetInfo() const {
|
|||
}
|
||||
|
||||
std::string API::GetInfo(const Info &info) const {
|
||||
if (info == Info::SDK_VERSION) {
|
||||
std::string info_path =
|
||||
utils::get_sdk_install_dir();
|
||||
info_path.append(MYNTEYE_OS_SEP "share" \
|
||||
MYNTEYE_OS_SEP "mynteye" MYNTEYE_OS_SEP "build.info");
|
||||
|
||||
cv::FileStorage fs(info_path, cv::FileStorage::READ);
|
||||
if (!fs.isOpened()) {
|
||||
LOG(WARNING) << "build.info not found: " << info_path;
|
||||
return "null";
|
||||
}
|
||||
return fs["MYNTEYE_VERSION"];
|
||||
}
|
||||
|
||||
return device_->GetInfo(info);
|
||||
}
|
||||
|
||||
|
|
|
@ -511,66 +511,60 @@ bool Synthetic::IsStreamEnabledSynthetic(const Stream &stream) const {
|
|||
|
||||
void Synthetic::InitProcessors() {
|
||||
std::shared_ptr<Processor> rectify_processor = nullptr;
|
||||
#ifdef WITH_CAM_MODELS
|
||||
std::shared_ptr<RectifyProcessor> rectify_processor_imp = nullptr;
|
||||
#endif
|
||||
cv::Mat Q;
|
||||
if (calib_model_ == CalibrationModel::PINHOLE) {
|
||||
auto &&rectify_processor_ocv =
|
||||
std::make_shared<RectifyProcessorOCV>(intr_left_, intr_right_, extr_,
|
||||
RECTIFY_PROC_PERIOD);
|
||||
Q = rectify_processor_ocv->Q;
|
||||
rectify_processor = rectify_processor_ocv;
|
||||
#ifdef WITH_CAM_MODELS
|
||||
} else if (calib_model_ == CalibrationModel::KANNALA_BRANDT) {
|
||||
rectify_processor_imp =
|
||||
std::make_shared<RectifyProcessor>(intr_left_, intr_right_, extr_,
|
||||
RECTIFY_PROC_PERIOD);
|
||||
rectify_processor = rectify_processor_imp;
|
||||
#endif
|
||||
} else {
|
||||
LOG(ERROR) << "Unknow calib model type in device: "
|
||||
<< calib_model_ << ", use default pinhole model";
|
||||
auto &&rectify_processor_ocv =
|
||||
std::make_shared<RectifyProcessorOCV>(intr_left_, intr_right_, extr_,
|
||||
RECTIFY_PROC_PERIOD);
|
||||
rectify_processor = rectify_processor_ocv;
|
||||
}
|
||||
std::shared_ptr<Processor> points_processor = nullptr;
|
||||
std::shared_ptr<Processor> depth_processor = nullptr;
|
||||
|
||||
auto &&disparity_processor =
|
||||
std::make_shared<DisparityProcessor>(DisparityComputingMethod::SGBM,
|
||||
DISPARITY_PROC_PERIOD);
|
||||
auto &&disparitynormalized_processor =
|
||||
std::make_shared<DisparityNormalizedProcessor>(
|
||||
DISPARITY_NORM_PROC_PERIOD);
|
||||
std::shared_ptr<Processor> points_processor = nullptr;
|
||||
if (calib_model_ == CalibrationModel::PINHOLE) {
|
||||
|
||||
auto root_processor =
|
||||
std::make_shared<RootProcessor>(ROOT_PROC_PERIOD);
|
||||
|
||||
if (calib_model_ == CalibrationModel::PINHOLE) {
|
||||
// PINHOLE
|
||||
auto &&rectify_processor_ocv =
|
||||
std::make_shared<RectifyProcessorOCV>(intr_left_, intr_right_, extr_,
|
||||
RECTIFY_PROC_PERIOD);
|
||||
rectify_processor = rectify_processor_ocv;
|
||||
points_processor = std::make_shared<PointsProcessorOCV>(
|
||||
Q, POINTS_PROC_PERIOD);
|
||||
rectify_processor_ocv->Q, POINTS_PROC_PERIOD);
|
||||
depth_processor = std::make_shared<DepthProcessorOCV>(DEPTH_PROC_PERIOD);
|
||||
|
||||
root_processor->AddChild(rectify_processor);
|
||||
rectify_processor->AddChild(disparity_processor);
|
||||
disparity_processor->AddChild(disparitynormalized_processor);
|
||||
disparity_processor->AddChild(points_processor);
|
||||
points_processor->AddChild(depth_processor);
|
||||
#ifdef WITH_CAM_MODELS
|
||||
} else if (calib_model_ == CalibrationModel::KANNALA_BRANDT) {
|
||||
// KANNALA_BRANDT
|
||||
auto rectify_processor_imp =
|
||||
std::make_shared<RectifyProcessor>(intr_left_, intr_right_, extr_,
|
||||
RECTIFY_PROC_PERIOD);
|
||||
rectify_processor = rectify_processor_imp;
|
||||
points_processor = std::make_shared<PointsProcessor>(
|
||||
rectify_processor_imp -> getCalibInfoPair(),
|
||||
POINTS_PROC_PERIOD);
|
||||
#endif
|
||||
} else {
|
||||
points_processor = std::make_shared<PointsProcessorOCV>(
|
||||
Q, POINTS_PROC_PERIOD);
|
||||
}
|
||||
std::shared_ptr<Processor> depth_processor = nullptr;
|
||||
if (calib_model_ == CalibrationModel::PINHOLE) {
|
||||
depth_processor = std::make_shared<DepthProcessorOCV>(DEPTH_PROC_PERIOD);
|
||||
#ifdef WITH_CAM_MODELS
|
||||
} else if (calib_model_ == CalibrationModel::KANNALA_BRANDT) {
|
||||
depth_processor = std::make_shared<DepthProcessor>(
|
||||
rectify_processor_imp -> getCalibInfoPair(),
|
||||
DEPTH_PROC_PERIOD);
|
||||
|
||||
root_processor->AddChild(rectify_processor);
|
||||
rectify_processor->AddChild(disparity_processor);
|
||||
disparity_processor->AddChild(disparitynormalized_processor);
|
||||
disparity_processor->AddChild(depth_processor);
|
||||
depth_processor->AddChild(points_processor);
|
||||
#endif
|
||||
} else {
|
||||
depth_processor = std::make_shared<DepthProcessorOCV>(DEPTH_PROC_PERIOD);
|
||||
// UNKNOW
|
||||
LOG(ERROR) << "Unknow calib model type in device: "
|
||||
<< calib_model_;
|
||||
return;
|
||||
}
|
||||
auto root_processor =
|
||||
std::make_shared<RootProcessor>(ROOT_PROC_PERIOD);
|
||||
root_processor->AddChild(rectify_processor);
|
||||
|
||||
rectify_processor->addTargetStreams(
|
||||
{Stream::LEFT_RECTIFIED, Mode::MODE_LAST, Mode::MODE_LAST, nullptr});
|
||||
|
@ -618,25 +612,7 @@ void Synthetic::InitProcessors() {
|
|||
depth_processor->SetPostProcessCallback(
|
||||
std::bind(&Synthetic::OnDepthPostProcess, this, _1));
|
||||
|
||||
if (calib_model_ == CalibrationModel::PINHOLE) {
|
||||
// PINHOLE
|
||||
rectify_processor->AddChild(disparity_processor);
|
||||
disparity_processor->AddChild(disparitynormalized_processor);
|
||||
disparity_processor->AddChild(points_processor);
|
||||
points_processor->AddChild(depth_processor);
|
||||
} else if (calib_model_ == CalibrationModel::KANNALA_BRANDT) {
|
||||
// KANNALA_BRANDT
|
||||
rectify_processor->AddChild(disparity_processor);
|
||||
disparity_processor->AddChild(disparitynormalized_processor);
|
||||
disparity_processor->AddChild(depth_processor);
|
||||
depth_processor->AddChild(points_processor);
|
||||
} else {
|
||||
// UNKNOW
|
||||
LOG(ERROR) << "Unknow calib model type in device: "
|
||||
<< calib_model_;
|
||||
}
|
||||
|
||||
processor_ = rectify_processor;
|
||||
processor_ = root_processor;
|
||||
}
|
||||
|
||||
void Synthetic::ProcessNativeStream(
|
||||
|
|
136
src/mynteye/api/version_checker.cc
Normal file
136
src/mynteye/api/version_checker.cc
Normal file
|
@ -0,0 +1,136 @@
|
|||
// Copyright 2018 Slightech Co., Ltd. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
#include "mynteye/api/version_checker.h"
|
||||
#include "mynteye/device/utils.h"
|
||||
#include "mynteye/logger.h"
|
||||
#include "mynteye/types.h"
|
||||
|
||||
MYNTEYE_BEGIN_NAMESPACE
|
||||
|
||||
typedef struct {
|
||||
const std::string device_type;
|
||||
const std::string sdk_version;
|
||||
const std::string firmware_version;
|
||||
const std::string status;
|
||||
}firmware_version_match_table_unit;
|
||||
|
||||
const char* ERRO_DESCRIPTION_F =
|
||||
"Please update the firmware at first";
|
||||
const char* ERRO_DESCRIPTION_S =
|
||||
"Please update the SDK at first";
|
||||
const char* WARN_DESCRIPTION_F =
|
||||
"We suggest that you should update the firmware";
|
||||
const char* WARN_DESCRIPTION_S =
|
||||
"We suggest that you should update the SDK";
|
||||
const char* PASS_DESCRIPTION = "pass";
|
||||
|
||||
/** firmware/sdk version matched table */
|
||||
/**----device type-----sdk version---firmware version-----pass tag-----*/
|
||||
static const firmware_version_match_table_unit FSVM_TABLE[] ={
|
||||
/** S1030 */
|
||||
{"MYNT-EYE-S1030", ">2.3.0", ">2.2.0", PASS_DESCRIPTION},
|
||||
{"MYNT-EYE-S1030", ">2.3.0", "2.2.0", WARN_DESCRIPTION_F},
|
||||
{"MYNT-EYE-S1030", ">2.3.0", "<2.2.0", ERRO_DESCRIPTION_F},
|
||||
{"MYNT-EYE-S1030", "<2.3.1", "<2.2.0", WARN_DESCRIPTION_S},
|
||||
/** S2100 */
|
||||
{"MYNT-EYE-S2100", ">2.3.0", "1.0", PASS_DESCRIPTION},
|
||||
{"MYNT-EYE-S2100", "<2.3.1", "1.0", ERRO_DESCRIPTION_S},
|
||||
/** S210A */
|
||||
{"MYNT-EYE-S210A", ">2.3.0", "1.0", PASS_DESCRIPTION},
|
||||
{"MYNT-EYE-S210A", "<2.3.1", "1.0", ERRO_DESCRIPTION_S},
|
||||
};
|
||||
|
||||
void getVersion(const std::string &str, char *version) {
|
||||
std::string st1("");
|
||||
int j = 0;
|
||||
for (size_t i = 0; i < str.size(); i++) {
|
||||
if (str[i] == '.') {
|
||||
version[j++] = atoi(st1.c_str());
|
||||
st1 = "";
|
||||
} else {
|
||||
st1 += str[i];
|
||||
}
|
||||
}
|
||||
version[j++] = atoi(st1.c_str());
|
||||
}
|
||||
|
||||
bool conditionMatch(const std::string& condition, const std::string& target) {
|
||||
char version[4] = {0};
|
||||
char version_c[4] = {0};
|
||||
getVersion(target, version);
|
||||
int tag_c = 0;
|
||||
std::string condition_c;
|
||||
if (condition[0] == '>') {
|
||||
tag_c = 1;
|
||||
condition_c = condition.substr(1);
|
||||
} else if (condition[0] == '<') {
|
||||
tag_c = -1;
|
||||
condition_c = condition.substr(1);
|
||||
} else {
|
||||
tag_c = 0;
|
||||
condition_c = condition;
|
||||
}
|
||||
getVersion(condition_c, version_c);
|
||||
int tag_big = memcmp(version, version_c, 4);
|
||||
if (tag_big * tag_c > 0 || (tag_big == 0 && tag_c == 0)) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
enum STATUS_UNIT {
|
||||
ST_PASS,
|
||||
ST_ERRO_F,
|
||||
ST_ERRO_S,
|
||||
ST_NOT_PASS
|
||||
};
|
||||
|
||||
STATUS_UNIT checkUnit(const std::string& sdkv,
|
||||
const std::string& devn,
|
||||
const std::string& firmv,
|
||||
const firmware_version_match_table_unit& condition) {
|
||||
if (condition.device_type == devn &&
|
||||
conditionMatch(condition.sdk_version, sdkv) &&
|
||||
conditionMatch(condition.firmware_version, firmv)) {
|
||||
if (condition.status == ERRO_DESCRIPTION_F) return ST_ERRO_F;
|
||||
if (condition.status == ERRO_DESCRIPTION_S) return ST_ERRO_S;
|
||||
if (condition.status == WARN_DESCRIPTION_F ||
|
||||
condition.status == WARN_DESCRIPTION_S) {
|
||||
LOG(WARNING) << condition.status;
|
||||
}
|
||||
return ST_PASS;
|
||||
}
|
||||
return ST_NOT_PASS;
|
||||
}
|
||||
|
||||
bool checkFirmwareVersion(const std::shared_ptr<API> api) {
|
||||
auto sdkv = api->GetInfo(Info::SDK_VERSION);
|
||||
auto devn = api->GetInfo(Info::DEVICE_NAME);
|
||||
auto firmv = api->GetInfo(Info::FIRMWARE_VERSION);
|
||||
|
||||
for (size_t i =0;
|
||||
i < sizeof(FSVM_TABLE)/sizeof(firmware_version_match_table_unit);
|
||||
i++) {
|
||||
auto res = checkUnit(sdkv, devn, firmv, FSVM_TABLE[i]);
|
||||
if (res == ST_PASS) {
|
||||
return true;
|
||||
} else if (res == ST_ERRO_S || res == ST_ERRO_F) {
|
||||
LOG(ERROR) << FSVM_TABLE[i].status;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
LOG(ERROR) << ERRO_DESCRIPTION_S;
|
||||
return false;
|
||||
}
|
||||
|
||||
MYNTEYE_END_NAMESPACE
|
||||
|
25
src/mynteye/api/version_checker.h
Normal file
25
src/mynteye/api/version_checker.h
Normal file
|
@ -0,0 +1,25 @@
|
|||
// Copyright 2018 Slightech Co., Ltd. All rights reserved.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
#ifndef MYNTEYE_API_VERSION_CHECKER_H_
|
||||
#define MYNTEYE_API_VERSION_CHECKER_H_
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include "mynteye/api/api.h"
|
||||
|
||||
MYNTEYE_BEGIN_NAMESPACE
|
||||
bool checkFirmwareVersion(const std::shared_ptr<API> api);
|
||||
MYNTEYE_END_NAMESPACE
|
||||
|
||||
#endif // MYNTEYE_API_VERSION_CHECKER_H_
|
|
@ -650,7 +650,7 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
|||
is_published_[stream] = false;
|
||||
}
|
||||
api_->Start(Source::VIDEO_STREAMING);
|
||||
} else if (sum_c > sum) {
|
||||
} else {
|
||||
if ((camera_publishers_[Stream::LEFT].getNumSubscribers() > 0 ||
|
||||
mono_publishers_[Stream::LEFT].getNumSubscribers() > 0) &&
|
||||
!is_published_[Stream::LEFT]) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user