diff --git a/src/internal/channels.cc b/src/internal/channels.cc index b20845a..0462ef2 100644 --- a/src/internal/channels.cc +++ b/src/internal/channels.cc @@ -102,9 +102,9 @@ void CheckSpecVersion(const Version *spec_version) { LOG(FATAL) << "Spec version must be specified"; } - std::vector spec_versions{"1.0"}; + std::vector spec_versions{"1.0", "1.1"}; for (auto &&spec_ver : spec_versions) { - if (*spec_version >= Version(spec_ver)) { + if (*spec_version == Version(spec_ver)) { return; // supported } } diff --git a/tools/writer/config/img.params b/tools/writer/config/img.params index 4570dda..d78da8d 100644 --- a/tools/writer/config/img.params +++ b/tools/writer/config/img.params @@ -1,6 +1,6 @@ %YAML:1.0 --- -version: 1.1 +version: "1.1" in_left_map: - width: 640 diff --git a/tools/writer/device_writer.cc b/tools/writer/device_writer.cc index b960b72..5eb0d40 100644 --- a/tools/writer/device_writer.cc +++ b/tools/writer/device_writer.cc @@ -191,7 +191,8 @@ bool DeviceWriter::SaveDeviceInfo( } bool DeviceWriter::SaveImgParams( - const img_params_t ¶ms, const std::string &filepath) { + const dev_info_t &info, const img_params_t ¶ms, + const std::string &filepath) { using FileStorage = cv::FileStorage; FileStorage fs(filepath, FileStorage::WRITE); if (!fs.isOpened()) { @@ -200,8 +201,9 @@ bool DeviceWriter::SaveImgParams( } if (params.in_left_map.size() == params.in_right_map.size()) { - fs << "in_left_map" << params.in_left_map << "in_right_map" - << params.in_right_map << "ex_left_to_right" << params.ex_left_to_right; + fs << "version" << info.spec_version.to_string() << "in_left_map" + << params.in_left_map << "in_right_map" << params.in_right_map + << "ex_left_to_right" << params.ex_left_to_right; fs.release(); return true; } else { @@ -229,7 +231,8 @@ void DeviceWriter::SaveAllInfos(const std::string &dir) { LOG(FATAL) << "Create directory failed: " << dir; } SaveDeviceInfo(*device_->GetInfo(), dir + OS_SEP "device.info"); - SaveImgParams(device_->GetImgParams(), dir + OS_SEP "img.params"); + SaveImgParams( + *device_->GetInfo(), device_->GetImgParams(), dir + OS_SEP "img.params"); auto &&m_in = device_->GetMotionIntrinsics(); SaveImuParams( { @@ -344,7 +347,6 @@ DeviceWriter::img_params_t DeviceWriter::LoadImgParams( img_params_t params; if (fs["version"].isNone()) { if (fs["in_left"].isNone()) { - LOG(INFO) << "static_cast(fs[version]) == 0.1"; std::uint16_t w = 752; std::uint16_t h = 480; std::uint8_t m = 0; @@ -374,14 +376,12 @@ DeviceWriter::img_params_t DeviceWriter::LoadImgParams( fs["ex_left_to_right"] >> params.ex_left_to_right; } } else { - if (static_cast(fs["version"]) == 1.0) { - LOG(INFO) << "static_cast(fs[version]) == 1.0"; + if (static_cast(fs["version"]) == "1.0") { fs["in_left_map"][0] >> params.in_left_map[Resolution::RES_752x480]; fs["in_right_map"][0] >> params.in_right_map[Resolution::RES_752x480]; fs["ex_left_to_right"] >> params.ex_left_to_right; } - if (static_cast(fs["version"]) == 1.1) { - LOG(INFO) << "static_cast(fs[version]) == 1.1"; + if (static_cast(fs["version"]) == "1.1") { fs["in_left_map"][0] >> params.in_left_map[Resolution::RES_1280x400]; fs["in_left_map"][1] >> params.in_left_map[Resolution::RES_2560x800]; fs["in_right_map"][0] >> params.in_right_map[Resolution::RES_1280x400]; diff --git a/tools/writer/device_writer.h b/tools/writer/device_writer.h index f65005e..cd22021 100644 --- a/tools/writer/device_writer.h +++ b/tools/writer/device_writer.h @@ -48,7 +48,9 @@ class DeviceWriter { bool WriteImuParams(const std::string &filepath); bool SaveDeviceInfo(const dev_info_t &info, const std::string &filepath); - bool SaveImgParams(const img_params_t ¶ms, const std::string &filepath); + bool SaveImgParams( + const dev_info_t &info, const img_params_t ¶ms, + const std::string &filepath); bool SaveImuParams(const imu_params_t ¶ms, const std::string &filepath); /** Save all infos of this device */