X1
X1 单目双轴旋转式视觉位移计 API 参考手册
型号: X1 | 版本: 1.0 | 更新: 2026-09-11
X1 是单目双轴旋转式视觉位移计,支持水平和垂直云台控制及自动巡航。
1. 快速开始
连接与数据接收见快速入门。完整代码见 GitHub SDK 和告警接入示例。
2. API 列表
基础 API
| 方法 | 说明 |
|---|---|
getAttr | 获取属性 |
setAttr | 设置属性 |
reboot | 重启设备 |
syncTime | 同步时间 |
标靶管理 API
| 方法 | 说明 |
|---|---|
initRefTargets | 初始化标靶参考位置 |
addTargets | 添加标靶 |
getTargets | 获取标靶列表 |
setTargets | 更新标靶配置 |
deleteTargets | 删除标靶 |
测量控制 API
| 方法 | 说明 |
|---|---|
startMeasurement | 启动测量 |
stopMeasurement | 停止测量 |
setLightLevel | 设置补光灯发光挡位 |
getLightLevel | 获取补光灯发光挡位 |
snapshot | 获取快照 |
电机控制 API
| 方法 | 说明 |
|---|---|
setMotorAngle | 设置电机角度 |
getMotorAngle | 获取电机角度 |
setMotorZero | 设置电机零点 |
enableMotor | 启用电机 |
disableMotor | 禁用电机 |
ISP 控制 API
| 方法 | 说明 |
|---|---|
ispCtl | ISP 图像参数控制(曝光、降噪、翻转/镜像等) |
巡航查询 API
| 方法 | 说明 |
|---|---|
getCruisePaths | 获取巡航路径 |
3. API 详情
标靶管理 API 的完整字段约束参考 API参考。
initRefTargets
对指定标靶执行参考位置初始化/标定。通常先通过 addTargets 或 setTargets 保存标靶配置;初始化时可只传 targetId。如需覆盖保存配置,可在本次请求中提供 roi、distance 或 targetModel。
addTargets
在已有标靶基础上添加新标靶。
getTargets
获取当前标靶列表。
响应字段:
| 字段 | 类型 | 说明 |
|---|---|---|
targets[].targetId | String | 标靶 ID,1-64 字节,非空,不包含控制字符 |
targets[].sensorId | Integer | 视觉传感器 ID,单目设备为 0 |
targets[].roi | Object | 标靶 ROI 区域 |
targets[].distance | Float | 测量距离,单位 m |
targets[].role | String | 标靶角色:MP 为被测点,RP 为稳定基准点,CP 为控制/校核点 |
targets[].targetModel | String | 标靶型号,取值 T10、T20、T50、T100、T200 |
targets[].skipMeasurement | Boolean | 是否跳过测量 |
setTargets
更新已有标靶的配置。
deleteTargets
删除指定标靶。
setMotorAngle
设置电机角度。
参数:
| 字段 | 类型 | 范围 | 说明 |
|---|---|---|---|
pan | Float | -180 ~ 180 | 水平角度 (°) |
tilt | Float | -90 ~ 90 | 垂直角度 (°) |
speed | Integer | 1-100 | 转动速度 (%) |
请求:
{"reqId": 1, "method": "setMotorAngle", "params": {"pan": 45.0, "tilt": -10.0, "speed": 50}}
getMotorAngle
获取当前电机角度。
请求:
{"reqId": 1, "method": "getMotorAngle", "params": {}}
响应:
{"reqId": 1, "code": 0, "data": {"pan": 45.0, "tilt": -10.0}}
ispCtl
ISP 图像参数控制,支持曝光、降噪、画面翻转/镜像/旋转等设置。
getStatus - 获取当前 ISP 状态
请求:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "getStatus"
}}
响应:
{"reqId": 1, "code": 0, "data": {
"vdmModeEnabled": true,
"exposureLocked": false,
"exposureMode": "manual",
"nrLevel": "mediumNoise",
"enable3dnr": true,
"exposurePreset": "medium",
"cameraCount": 1,
"flip": false,
"mirror": false,
"rotation": 0,
"exposureInfo": {
"iso": 200,
"expTime": 20000,
"aGain": 1024,
"dGain": 1024,
"ispDGain": 256,
"aveLum": 128
}
}}
setConfig - 设置画面翻转/镜像/旋转
支持画面翻转、镜像和旋转。
注意:翻转/镜像/旋转设置需要重启设备后生效。 设置后配置会自动持久化,多相机设备(如双目型号)所有相机会同时生效。
参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
flip | Boolean | 否 | 画面垂直翻转 |
mirror | Boolean | 否 | 画面水平镜像 |
rotation | Integer | 否 | 画面旋转角度,仅支持 0/90/180/270 |
请求 - 启用垂直翻转:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"config": {
"flip": true
}
}}
请求 - 启用水平镜像:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"config": {
"mirror": true
}
}}
请求 - 同时启用翻转和镜像(等效 180° 旋转):
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"config": {
"flip": true,
"mirror": true
}
}}
请求 - 恢复默认(关闭翻转和镜像):
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"config": {
"flip": false,
"mirror": false
}
}}
请求 - 设置旋转 90°:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"config": {
"rotation": 90
}
}}
请求 - 设置旋转 270°:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"config": {
"rotation": 270
}
}}
请求 - 取消旋转:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"config": {
"rotation": 0
}
}}
响应:
{"reqId": 1, "code": 0}
setConfig - 设置曝光参数
参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
exposureMode | String | 否 | 曝光模式:auto, semiAuto, manual |
manualExpTime | Integer | 否 | 手动曝光时间 (微秒),范围 100-100000 |
manualAgain | Integer | 否 | 手动模拟增益,1024=1x, 4096=4x, 8192=8x |
nrLevel | String | 否 | 降噪等级:off, lowNoise, mediumNoise, highNoise, veryHighNoise |
enable3dnr | Boolean | 否 | 是否启用 3DNR 时域降噪 |
请求 - 手动曝光 20ms + 4x 增益:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"config": {
"exposureMode": "manual",
"manualExpTime": 20000,
"manualAgain": 4096
}
}}
setConfig - 多相机独立配置
通过 isp 数组对每个相机独立配置曝光参数。
参数(isp 数组项):
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
cameraId | Integer | 是 | 相机索引 (0, 1, …) |
expTime | Integer | 否 | 曝光时间 (微秒),范围 1000-40000 |
gain | Integer | 否 | 增益,范围 1024-16384 |
flip | Boolean | 否 | 画面垂直翻转(重启后生效) |
mirror | Boolean | 否 | 画面水平镜像(重启后生效) |
rotation | Integer | 否 | 画面旋转角度 0/90/180/270(重启后生效) |
请求:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setConfig",
"isp": [
{"cameraId": 0, "expTime": 20000, "gain": 4096, "flip": true, "mirror": false}
]
}}
setExposurePreset - 设置曝光档位
参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
exposurePreset | String | 是 | 档位:low, medium, high |
| 档位 | 曝光时间 | 增益 | 场景 |
|---|---|---|---|
low | 10ms | 1x | 近距离/强 IR 补光 |
medium | 20ms | 1x | 标准模式 |
high | 30ms | 10x | 远距离/弱 IR 补光 |
请求:
{"reqId": 1, "method": "ispCtl", "params": {
"action": "setExposurePreset",
"exposurePreset": "medium"
}}
4. 遥测数据
设备通过 vdm/{deviceId}/telemetry 上报位移和设备状态;环境字段按设备传感器能力提供。字段、单位及 Protobuf / JSON 示例见遥测数据。
5. 公共告警、事件和错误
- 告警生命周期和强类型字段见 告警上报。
- 告警抓拍图像包格式和 ACK 流程见 告警抓拍图像包分块 Header。
- 事件类型及明细字段见 事件上报。
- 外层响应使用统一数值错误码:
code=0成功,任意非零码均为失败,见 错误码。