Update doc
This commit is contained in:
parent
30363e18c6
commit
2a56616195
|
@ -6,9 +6,7 @@
|
||||||
|
|
||||||
| 名称 | 字段 | 字节数 | 默认值 | 最小值 | 最大值 | 是否储存 | Flash 地址 | 说明 |
|
| 名称 | 字段 | 字节数 | 默认值 | 最小值 | 最大值 | 是否储存 | Flash 地址 | 说明 |
|
||||||
| :----- | :----- | :-------- | :-------- | :-------- | :-------- | :----------- | :----------- | :----- |
|
| :----- | :----- | :-------- | :-------- | :-------- | :-------- | :----------- | :----------- | :----- |
|
||||||
| 增益 | gain | 2 | 24 | 0 | 48 | √ | 0x12 | 关闭自动曝光,手动设定的参数 |
|
| 亮度 | brightness | 2 | 192 | 0 | 255 | √ | 0x14 | 关闭自动曝光,手动设定的参数 |
|
||||||
| 亮度 | brightness/exposure_time | 2 | 120 | 0 | 240 | √ | 0x14 | 关闭自动曝光,手动设定的参数 |
|
|
||||||
| 对比度 | contrast/black_level_calibration | 2 | 127 | 0 | 255 | √ | 0x10 | |
|
|
||||||
|
|
||||||
> UVC 标准协议实现的控制,有现成的 API 进行 Get & Set ,包括 Min, Max, Default 。
|
> UVC 标准协议实现的控制,有现成的 API 进行 Get & Set ,包括 Min, Max, Default 。
|
||||||
|
|
||||||
|
@ -16,13 +14,13 @@
|
||||||
|
|
||||||
| 名称 | 字段 | 字节数 | 默认值 | 最小值 | 最大值 | 是否储存 | Flash 地址 | 所属通道 | 通道地址 | 说明 |
|
| 名称 | 字段 | 字节数 | 默认值 | 最小值 | 最大值 | 是否储存 | 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:关闭 |
|
| 曝光模式 | 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_gain | 2 | 8 | 0 | 255 | √ | 0x1D | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 |
|
||||||
| 最大曝光时间 | max_exposure_time | 2 | 240 | 0 | 240 | √ | 0x1B | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 |
|
| 最大曝光时间 | max_exposure_time | 2 | 333 | 0 | 1000 | √ | 0x1B | XU_CAM_CTRL | 0x0100 | 开始自动曝光,可设定的阈值 |
|
||||||
| 期望亮度 | desired_brightness | 2 | 192 | 0 | 255 | √ | 0x19 | XU_CAM_CTRL | 0x0100 | |
|
| 期望亮度 | desired_brightness | 2 | 122 | 1 | 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 | |
|
|
||||||
| 擦除芯片 | erase_chip | | - | - | - | × | - | XU_HALF_DUPLEX | 0x0200 | |
|
| 擦除芯片 | 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 | |
|
||||||
|
|
|
@ -49,5 +49,5 @@
|
||||||
| File | ID | Max Size |
|
| File | ID | Max Size |
|
||||||
| :--- | :- | :------- |
|
| :--- | :- | :------- |
|
||||||
| 硬件信息 | 1 | 250 |
|
| 硬件信息 | 1 | 250 |
|
||||||
| 图像参数 | 2 | 250 |
|
| 图像参数 | 2 | 404 |
|
||||||
| IMU 参数 | 4 | 500 |
|
| IMU 参数 | 4 | 500 |
|
||||||
|
|
|
@ -29,26 +29,6 @@ int main(int argc, char *argv[]) {
|
||||||
auto &&device = device::select();
|
auto &&device = device::select();
|
||||||
if (!device)
|
if (!device)
|
||||||
return 1;
|
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;
|
std::size_t left_count = 0;
|
||||||
device->InitResolution(Resolution::RES_1280x400);
|
device->InitResolution(Resolution::RES_1280x400);
|
||||||
|
@ -117,6 +97,7 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
cv::Mat img;
|
cv::Mat img;
|
||||||
|
|
||||||
|
// TODO(Kalman): Extract into public or internal method
|
||||||
if (left_data.frame->format() == Format::GREY) {
|
if (left_data.frame->format() == Format::GREY) {
|
||||||
cv::Mat left_img(
|
cv::Mat left_img(
|
||||||
left_data.frame->height(), left_data.frame->width(), CV_8UC1,
|
left_data.frame->height(), left_data.frame->width(), CV_8UC1,
|
||||||
|
|
|
@ -100,6 +100,7 @@ bool unpack_left_img_pixels(
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO(Kalman): Too similar to 'unpack_left_img_pixels'
|
||||||
bool unpack_right_img_pixels(
|
bool unpack_right_img_pixels(
|
||||||
const void *data, const StreamRequest &request, Streams::frame_t *frame) {
|
const void *data, const StreamRequest &request, Streams::frame_t *frame) {
|
||||||
CHECK_NOTNULL(frame);
|
CHECK_NOTNULL(frame);
|
||||||
|
|
|
@ -376,6 +376,7 @@ DeviceWriter::img_params_t DeviceWriter::LoadImgParams(
|
||||||
fs["ex_left_to_right"] >> params.ex_left_to_right;
|
fs["ex_left_to_right"] >> params.ex_left_to_right;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// TODO(Kalman): Is there a more reasonable way?
|
||||||
if (static_cast<std::string>(fs["version"]) == "1.0") {
|
if (static_cast<std::string>(fs["version"]) == "1.0") {
|
||||||
fs["in_left_map"][0] >> params.in_left_map[Resolution::RES_752x480];
|
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["in_right_map"][0] >> params.in_right_map[Resolution::RES_752x480];
|
||||||
|
|
Loading…
Reference in New Issue
Block a user