From 2a56616195ade0dcd9fda8366f53d2cf4ead29b0 Mon Sep 17 00:00:00 2001 From: Kalman Date: Sun, 30 Sep 2018 14:51:24 +0800 Subject: [PATCH] Update doc --- doc/zh-Hans/spec_control_api.md | 20 +++++++++----------- doc/zh-Hans/spec_control_channel.md | 2 +- samples/device/camera.cc | 21 +-------------------- src/internal/streams.cc | 1 + tools/writer/device_writer.cc | 1 + 5 files changed, 13 insertions(+), 32 deletions(-) diff --git a/doc/zh-Hans/spec_control_api.md b/doc/zh-Hans/spec_control_api.md index 7a294a0..ac45089 100644 --- a/doc/zh-Hans/spec_control_api.md +++ b/doc/zh-Hans/spec_control_api.md @@ -6,9 +6,7 @@ | 名称 | 字段 | 字节数 | 默认值 | 最小值 | 最大值 | 是否储存 | Flash 地址 | 说明 | | :----- | :----- | :-------- | :-------- | :-------- | :-------- | :----------- | :----------- | :----- | -| 增益 | gain | 2 | 24 | 0 | 48 | √ | 0x12 | 关闭自动曝光,手动设定的参数 | -| 亮度 | brightness/exposure_time | 2 | 120 | 0 | 240 | √ | 0x14 | 关闭自动曝光,手动设定的参数 | -| 对比度 | contrast/black_level_calibration | 2 | 127 | 0 | 255 | √ | 0x10 | | +| 亮度 | brightness | 2 | 192 | 0 | 255 | √ | 0x14 | 关闭自动曝光,手动设定的参数 | > UVC 标准协议实现的控制,有现成的 API 进行 Get & Set ,包括 Min, Max, Default 。 @@ -16,13 +14,13 @@ | 名称 | 字段 | 字节数 | 默认值 | 最小值 | 最大值 | 是否储存 | Flash 地址 | 所属通道 | 通道地址 | 说明 | | :----- | :----- | :-------- | :-------- | :-------- | :-------- | :----------- | :----------- | :----------- | :----------- | :----- | -| 图像帧率 | frame_rate | 2 | 25 | 10 | 60 | √ | 0x21 | XU_CAM_CTRL | 0x0100 | 步进为5,即有效值为{10,15,20,25,30,35,40,45,50,55,60} | -| IMU 频率 | imu_frequency | 2 | 200 | 100 | 500 | √ | 0x23 | XU_CAM_CTRL | 0x0100 | 有效值为{100,200,250,333,500} | | 曝光模式 | exposure_mode | 1 | 0 | 0 | 1 | √ | 0x0F | XU_CAM_CTRL | 0x0100 | 0:开启自动曝光; 1:关闭 | -| 最大增益 | max_gain | 2 | 48 | 0 | 48 | √ | 0x1D | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 | -| 最大曝光时间 | max_exposure_time | 2 | 240 | 0 | 240 | √ | 0x1B | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 | -| 期望亮度 | desired_brightness | 2 | 192 | 0 | 255 | √ | 0x19 | XU_CAM_CTRL | 0x0100 | | -| IR 控制 | ir_control | 1 | 0 | 0 | 160 | × | - | XU_CAM_CTRL | 0x0100 | | -| HDR 模式 | hdr_mode | 1 | 0 | 0 | 1 | √ | 0x1F | XU_CAM_CTRL | 0x0100 | 0:10-bit;1:12-bit | -| 零漂标定 | zero_drift_calibration | | - | - | - | × | - | XU_HALF_DUPLEX | 0x0200 | | +| 最大增益 | max_gain | 2 | 8 | 0 | 255 | √ | 0x1D | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 | +| 最大曝光时间 | max_exposure_time | 2 | 333 | 0 | 1000 | √ | 0x1B | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 | +| 期望亮度 | desired_brightness | 2 | 122 | 1 | 255 | √ | 0x19 | XU_CAM_CTRL | 0x0100 | | | 擦除芯片 | erase_chip | | - | - | - | × | - | XU_HALF_DUPLEX | 0x0200 | | +| 最小曝光时间 | min_exposure_time | 2 | 0 | 0 | 1000 | √ | ?? | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 | +| 加速度计量程 | accelerometer_range | 2 | 12 | 6 | 48 | √ | ?? | XU_CAM_CTRL | 0x0100 | | +| 陀螺仪量程 | gyroscope_range | 2 | 1000 | 250 | 4000 | √ | ?? | XU_CAM_CTRL | 0x0100 | | +| 加速度计低通滤波 | accelerometer_low_pass_filter | 2 | 2 | 0 | 2 | √ | ?? | XU_CAM_CTRL | 0x0100 | | +| 陀螺仪低通滤波 | gyroscope__low_pass_filter | 2 | 64 | 23 | 64 | √ | ?? | XU_CAM_CTRL | 0x0100 | | diff --git a/doc/zh-Hans/spec_control_channel.md b/doc/zh-Hans/spec_control_channel.md index 9208182..d85f452 100644 --- a/doc/zh-Hans/spec_control_channel.md +++ b/doc/zh-Hans/spec_control_channel.md @@ -49,5 +49,5 @@ | File | ID | Max Size | | :--- | :- | :------- | | 硬件信息 | 1 | 250 | -| 图像参数 | 2 | 250 | +| 图像参数 | 2 | 404 | | IMU 参数 | 4 | 500 | diff --git a/samples/device/camera.cc b/samples/device/camera.cc index e59211c..c79028e 100644 --- a/samples/device/camera.cc +++ b/samples/device/camera.cc @@ -29,26 +29,6 @@ int main(int argc, char *argv[]) { auto &&device = device::select(); if (!device) return 1; - /* - { // auto-exposure - device->SetOptionValue(Option::EXPOSURE_MODE, 0); - device->SetOptionValue(Option::MAX_GAIN, 40); // [0.48] - device->SetOptionValue(Option::MAX_EXPOSURE_TIME, 120); // [0,240] - device->SetOptionValue(Option::DESIRED_BRIGHTNESS, 200); // [0,255] - } - { // manual-exposure - device->SetOptionValue(Option::EXPOSURE_MODE, 1); - device->SetOptionValue(Option::GAIN, 20); // [0.48] - device->SetOptionValue(Option::BRIGHTNESS, 20); // [0,240] - device->SetOptionValue(Option::CONTRAST, 20); // [0,255] - } - device->SetOptionValue(Option::IR_CONTROL, 80); - device->SetOptionValue(Option::FRAME_RATE, 25); - device->SetOptionValue(Option::IMU_FREQUENCY, 500); - */ - // device->LogOptionInfos(); - // device->RunOptionAction(Option::ZERO_DRIFT_CALIBRATION); - // device->RunOptionAction(Option::ERASE_CHIP); std::size_t left_count = 0; device->InitResolution(Resolution::RES_1280x400); @@ -117,6 +97,7 @@ int main(int argc, char *argv[]) { cv::Mat img; + // TODO(Kalman): Extract into public or internal method if (left_data.frame->format() == Format::GREY) { cv::Mat left_img( left_data.frame->height(), left_data.frame->width(), CV_8UC1, diff --git a/src/internal/streams.cc b/src/internal/streams.cc index 4ee742f..de34e15 100644 --- a/src/internal/streams.cc +++ b/src/internal/streams.cc @@ -100,6 +100,7 @@ bool unpack_left_img_pixels( return true; } +// TODO(Kalman): Too similar to 'unpack_left_img_pixels' bool unpack_right_img_pixels( const void *data, const StreamRequest &request, Streams::frame_t *frame) { CHECK_NOTNULL(frame); diff --git a/tools/writer/device_writer.cc b/tools/writer/device_writer.cc index 5eb0d40..be3f5e0 100644 --- a/tools/writer/device_writer.cc +++ b/tools/writer/device_writer.cc @@ -376,6 +376,7 @@ DeviceWriter::img_params_t DeviceWriter::LoadImgParams( fs["ex_left_to_right"] >> params.ex_left_to_right; } } else { + // TODO(Kalman): Is there a more reasonable way? 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];