feat(*): add function to querry some hardware info
This commit is contained in:
parent
b6d4037357
commit
c24e2806b3
|
@ -12,3 +12,5 @@
|
|||
| Lens type | lens_type | - | × | √ Get/Set | 4 | vendor(2),product(2); default: 0 |
|
||||
| IMU type | imu_type | - | × | √ Get/Set | 4 | vendor(2),product(2); default: 0 |
|
||||
| Nominal baseline | nominal_baseline | - | × | √ Get/Set | 2 | unit: mm; default: 0 |
|
||||
| Auxiliary chip version | auxiliary_chip_version | - | × | √ Get | 2 | major,minor |
|
||||
| isp version | isp_version | - | × | √ Get | 2 | major,minor |
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
| 镜头类型 | lens_type | - | × | √ Get/Set | 4 | vendor(2),product(2) ,未 Set 默认 0 |
|
||||
| IMU 类型 | imu_type | - | × | √ Get/Set | 4 | vendor(2),product(2) ,未 Set 默认 0 |
|
||||
| 基线长度 | nominal_baseline | - | × | √ Get/Set | 2 | 单位 mm ,未 set 默认 0 |
|
||||
| 辅助芯片版本 | auxiliary_chip_version | - | × | √ Get | 2 | major,minor |
|
||||
| ISP版本 | isp_version | - | × | √ Get | 2 | major,minor |
|
||||
|
||||
* 描述符获取:指通用 USB 设备信息,可用工具查看。
|
||||
* 拓展通道获取:指通过拓展通道(UVC Extension Unit)问硬件获取到的信息,需要读取。
|
||||
|
|
|
@ -162,6 +162,8 @@ struct MYNTEYE_API DeviceInfo {
|
|||
Type lens_type;
|
||||
Type imu_type;
|
||||
std::uint16_t nominal_baseline;
|
||||
Version auxiliary_chip_version;
|
||||
Version isp_version;
|
||||
};
|
||||
|
||||
#undef MYNTEYE_PROPERTY
|
||||
|
|
|
@ -122,6 +122,10 @@ enum class Info : std::uint8_t {
|
|||
IMU_TYPE,
|
||||
/** Nominal baseline */
|
||||
NOMINAL_BASELINE,
|
||||
/** Auxiliary chip version */
|
||||
AUXILIARY_CHIP_VERSION,
|
||||
/** Isp version */
|
||||
ISP_VERSION,
|
||||
/** Last guard */
|
||||
LAST
|
||||
};
|
||||
|
|
|
@ -28,6 +28,9 @@ int main(int argc, char *argv[]) {
|
|||
LOG(INFO) << "Lens type: " << api->GetInfo(Info::LENS_TYPE);
|
||||
LOG(INFO) << "IMU type: " << api->GetInfo(Info::IMU_TYPE);
|
||||
LOG(INFO) << "Nominal baseline: " << api->GetInfo(Info::NOMINAL_BASELINE);
|
||||
LOG(INFO) << "Auxiliary chip version: "
|
||||
<< api->GetInfo(Info::AUXILIARY_CHIP_VERSION);
|
||||
LOG(INFO) << "Nominal baseline: " << api->GetInfo(Info::ISP_VERSION);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -460,6 +460,7 @@ bool Channels::GetFiles(
|
|||
while (i < end) {
|
||||
std::uint8_t file_id = *(data + i);
|
||||
std::uint16_t file_size = bytes::_from_data<std::uint16_t>(data + i + 1);
|
||||
LOG(INFO) << "GetFiles:data_size : " << file_size;
|
||||
VLOG(2) << "GetFiles id: " << static_cast<int>(file_id)
|
||||
<< ", size: " << file_size;
|
||||
i += 3;
|
||||
|
|
|
@ -32,6 +32,7 @@ std::size_t FileChannel::GetDeviceInfoFromData(
|
|||
const std::uint8_t *data, const std::uint16_t &data_size,
|
||||
device_info_t *info) {
|
||||
auto n = dev_info_parser_->GetFromData(data, data_size, info);
|
||||
LOG(INFO) << "GetDeviceInfoFromData:data_size : " << data_size;
|
||||
auto spec_version = info->spec_version;
|
||||
img_params_parser_->SetSpecVersion(spec_version);
|
||||
imu_params_parser_->SetSpecVersion(spec_version);
|
||||
|
@ -113,6 +114,22 @@ std::size_t DeviceInfoParser::GetFromData(
|
|||
info->nominal_baseline = bytes::_from_data<std::uint16_t>(data + i);
|
||||
i += 2;
|
||||
|
||||
if (info->spec_version >= Version(1, 2)) {
|
||||
// auxiliary_chip_version, 2
|
||||
info->auxiliary_chip_version.set_major(data[i]);
|
||||
info->auxiliary_chip_version.set_minor(data[i + 1]);
|
||||
i += 2;
|
||||
// isp_version, 2
|
||||
info->isp_version.set_major(data[i]);
|
||||
info->isp_version.set_minor(data[i + 1]);
|
||||
i += 2;
|
||||
} else {
|
||||
info->auxiliary_chip_version.set_major(0);
|
||||
info->auxiliary_chip_version.set_minor(0);
|
||||
info->isp_version.set_major(0);
|
||||
info->isp_version.set_minor(0);
|
||||
}
|
||||
|
||||
// get other infos according to spec_version
|
||||
|
||||
MYNTEYE_UNUSED(data_size)
|
||||
|
@ -155,6 +172,17 @@ std::size_t DeviceInfoParser::SetToData(
|
|||
bytes::_to_data(info->nominal_baseline, data + i);
|
||||
i += 2;
|
||||
|
||||
if (info->spec_version >= Version(1, 2)) {
|
||||
// auxiliary_chip_version, 2
|
||||
data[i] = info->auxiliary_chip_version.major();
|
||||
data[i + 1] = info->auxiliary_chip_version.minor();
|
||||
i += 2;
|
||||
// isp_version, 2
|
||||
data[i] = info->isp_version.major();
|
||||
data[i + 1] = info->isp_version.minor();
|
||||
i += 2;
|
||||
}
|
||||
|
||||
// set other infos according to spec_version
|
||||
|
||||
// others
|
||||
|
@ -181,7 +209,7 @@ std::size_t ImgParamsParser::GetFromData(
|
|||
return GetFromData_v1_0(data, data_size, img_params);
|
||||
}
|
||||
// s210a old params
|
||||
if (spec_version_ == Version(1, 1) && data_size == 404) {
|
||||
if (spec_version_ >= Version(1, 1) && data_size == 404) {
|
||||
return GetFromData_v1_1(data, data_size, img_params);
|
||||
}
|
||||
// get img params with new version format
|
||||
|
@ -406,7 +434,7 @@ std::size_t ImuParamsParser::GetFromData(
|
|||
return GetFromData_old(data, data_size, imu_params);
|
||||
}
|
||||
// s210a old params
|
||||
if (spec_version_ == Version(1, 1) && data_size == 384) {
|
||||
if (spec_version_ >= Version(1, 1) && data_size == 384) {
|
||||
return GetFromData_old(data, data_size, imu_params);
|
||||
}
|
||||
// get imu params with new version format
|
||||
|
|
|
@ -234,6 +234,10 @@ std::string Device::GetInfo(const Info &info) const {
|
|||
return device_info_->imu_type.to_string();
|
||||
case Info::NOMINAL_BASELINE:
|
||||
return std::to_string(device_info_->nominal_baseline);
|
||||
case Info::AUXILIARY_CHIP_VERSION:
|
||||
return device_info_->auxiliary_chip_version.to_string();
|
||||
case Info::ISP_VERSION:
|
||||
return device_info_->isp_version.to_string();
|
||||
default:
|
||||
LOG(WARNING) << "Unknown device info";
|
||||
return "";
|
||||
|
|
|
@ -92,6 +92,8 @@ const char *to_string(const Info &value) {
|
|||
CASE(LENS_TYPE)
|
||||
CASE(IMU_TYPE)
|
||||
CASE(NOMINAL_BASELINE)
|
||||
CASE(AUXILIARY_CHIP_VERSION)
|
||||
CASE(ISP_VERSION)
|
||||
default:
|
||||
CHECK(is_valid(value));
|
||||
return "Info::UNKNOWN";
|
||||
|
|
|
@ -53,6 +53,8 @@ TEST(Info, VerifyToString) {
|
|||
EXPECT_STREQ("Info::LENS_TYPE", to_string(Info::LENS_TYPE));
|
||||
EXPECT_STREQ("Info::IMU_TYPE", to_string(Info::IMU_TYPE));
|
||||
EXPECT_STREQ("Info::NOMINAL_BASELINE", to_string(Info::NOMINAL_BASELINE));
|
||||
EXPECT_STREQ("Info::AUXILIARY_CHIP_VERSION", to_string(Info::AUXILIARY_CHIP_VERSION));
|
||||
EXPECT_STREQ("Info::ISP_VERSION", to_string(Info::ISP_VERSION));
|
||||
}
|
||||
|
||||
TEST(Option, VerifyToString) {
|
||||
|
|
|
@ -2,9 +2,11 @@
|
|||
---
|
||||
device_name: MYNT-EYE-S210A
|
||||
serial_number: "07C40D1C0009071F"
|
||||
firmware_version: "0.1"
|
||||
firmware_version: "1.1"
|
||||
hardware_version: "1.0"
|
||||
spec_version: "1.1"
|
||||
lens_type: "0000"
|
||||
imu_type: "0000"
|
||||
spec_version: "1.2"
|
||||
lens_type: "0001"
|
||||
imu_type: "0001"
|
||||
nominal_baseline: 0
|
||||
auxiliary_chip_version: "1.0"
|
||||
isp_version: "1.0"
|
||||
|
|
|
@ -52,7 +52,11 @@ bool DeviceWriter::WriteDeviceInfo(const dev_info_t &info) {
|
|||
<< ", spec_version: " << dev_info->spec_version.to_string()
|
||||
<< ", lens_type: " << dev_info->lens_type.to_string()
|
||||
<< ", imu_type: " << dev_info->imu_type.to_string()
|
||||
<< ", nominal_baseline: " << dev_info->nominal_baseline << "}";
|
||||
<< ", nominal_baseline: " << dev_info->nominal_baseline
|
||||
<< ", auxiliary_chip_version: "
|
||||
<< dev_info->auxiliary_chip_version.to_string()
|
||||
<< ", isp_version: "
|
||||
<< dev_info->isp_version.to_string()<< "}";
|
||||
return true;
|
||||
} else {
|
||||
LOG(ERROR) << "Write device info failed";
|
||||
|
@ -215,6 +219,8 @@ bool DeviceWriter::SaveDeviceInfo(
|
|||
fs << "lens_type" << info.lens_type.to_string();
|
||||
fs << "imu_type" << info.imu_type.to_string();
|
||||
fs << "nominal_baseline" << info.nominal_baseline;
|
||||
fs << "auxiliary_chip_version" << info.auxiliary_chip_version.to_string();
|
||||
fs << "isp_version" << info.isp_version.to_string();
|
||||
// save other infos according to spec_version
|
||||
fs.release();
|
||||
return true;
|
||||
|
|
|
@ -104,7 +104,7 @@ struct MYNTEYE_API MotionData {
|
|||
ImuData imu;
|
||||
|
||||
bool operator==(const MotionData &other) const {
|
||||
return imu.timestamp == other.imu.timestamp;
|
||||
return imu.timestamp == other.imu.timestamp;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -247,6 +247,8 @@ BOOST_PYTHON_MODULE(mynteye_py) {
|
|||
.value("LENS_TYPE", Info::LENS_TYPE)
|
||||
.value("IMU_TYPE", Info::IMU_TYPE)
|
||||
.value("NOMINAL_BASELINE", Info::NOMINAL_BASELINE)
|
||||
.value("AUXILIARY_CHIP_VERSION", Info::AUXILIARY_CHIP_VERSION)
|
||||
.value("ISP_VERSION", Info::ISP_VERSION)
|
||||
#ifdef ENUM_EXPORT_VALUES
|
||||
.export_values()
|
||||
#endif
|
||||
|
|
|
@ -153,7 +153,7 @@
|
|||
<!-- <arg name="standard2/ir_control" default="0" /> -->
|
||||
|
||||
<!-- standard2/accel_range range: [6,48] -->
|
||||
<arg name="standard2/accel_range" default="-1" />
|
||||
<arg name="standard2/accel_range" default="24" />
|
||||
<!-- <arg name="standard2/accel_range" default="6" /> -->
|
||||
|
||||
<!-- standard2/gyro_range range: [250,4000] -->
|
||||
|
|
|
@ -54,6 +54,8 @@ def main():
|
|||
'LENS_TYPE': GetInfoRequest.LENS_TYPE,
|
||||
'IMU_TYPE': GetInfoRequest.IMU_TYPE,
|
||||
'NOMINAL_BASELINE': GetInfoRequest.NOMINAL_BASELINE,
|
||||
'AUXILIARY_CHIP_VERSION': GetInfoRequest.AUXILIARY_CHIP_VERSION,
|
||||
'ISP_VERSION': GetInfoRequest.ISP_VERSION,
|
||||
}
|
||||
for k, v in get_device_info(**keys).items():
|
||||
print('{}: {}'.format(k, v))
|
||||
|
|
|
@ -407,6 +407,12 @@ class ROSWrapperNodelet : public nodelet::Nodelet {
|
|||
case Request::NOMINAL_BASELINE:
|
||||
res.value = api_->GetInfo(Info::NOMINAL_BASELINE);
|
||||
break;
|
||||
case Request::AUXILIARY_CHIP_VERSION:
|
||||
res.value = api_->GetInfo(Info::AUXILIARY_CHIP_VERSION);
|
||||
break;
|
||||
case Request::ISP_VERSION:
|
||||
res.value = api_->GetInfo(Info::ISP_VERSION);
|
||||
break;
|
||||
case Request::IMG_INTRINSICS:
|
||||
{
|
||||
auto intri_left = api_->GetIntrinsicsBase(Stream::LEFT);
|
||||
|
|
|
@ -6,10 +6,12 @@ uint32 SPEC_VERSION=4
|
|||
uint32 LENS_TYPE=5
|
||||
uint32 IMU_TYPE=6
|
||||
uint32 NOMINAL_BASELINE=7
|
||||
uint32 IMG_INTRINSICS=8
|
||||
uint32 IMG_EXTRINSICS_RTOL=9
|
||||
uint32 IMU_INTRINSICS=10
|
||||
uint32 IMU_EXTRINSICS=11
|
||||
uint32 AUXILIARY_CHIP_VERSION=8
|
||||
uint32 ISP_VERSION=9
|
||||
uint32 IMG_INTRINSICS=10
|
||||
uint32 IMG_EXTRINSICS_RTOL=11
|
||||
uint32 IMU_INTRINSICS=12
|
||||
uint32 IMU_EXTRINSICS=13
|
||||
uint32 key
|
||||
---
|
||||
string value
|
||||
|
|
Loading…
Reference in New Issue
Block a user