VDM-O1

O1 单目单轴旋转式视觉位移计 API 参考手册

型号: O1 | 版本: 1.0 | 更新: 2026-01-08

O1 是单目单轴旋转式视觉位移计,支持水平方向云台控制和巡航。

1. API 列表

基础 API

方法说明
getAttr获取属性
setAttr设置属性
reboot重启设备
syncTime同步时间

标靶管理 API

方法说明
initRefTargets初始化标靶
addTargets添加标靶
getTargets获取标靶列表
setTargets更新标靶配置
deleteTargets删除标靶

测量控制 API

方法说明
startMeasurement启动测量
stopMeasurement停止测量
setLightLevel设置补光灯发光挡位
getLightLevel获取补光灯发光挡位
snapshot获取快照

存储 API

方法说明
getStorageInfo获取存储信息
queryTelemetry查询历史数据
uploadS3上传数据到 S3

电机控制 API(仅水平)

方法说明
setMotorAngle设置电机角度(仅 pan)
getMotorAngle获取电机角度
setMotorZero设置电机零点
enableMotor启用电机
disableMotor禁用电机

巡航控制 API

方法说明
getCruisePaths获取巡航路径
setCruisePoint设置巡航点
removeCruisePoint移除巡航点
startPatrol启动巡航
stopPatrol停止巡航
getPatrolStatus获取巡航状态

2. API 详情

initRefTargets

初始化参考标靶。

请求:

{"reqId": 1, "method": "initRefTargets", "params": {
  "targets": [{"targetId": "1", "roi": {"x": 1000, "y": 500, "width": 400, "height": 400}, "distance": 5.0}]
}}

addTargets

在已有标靶基础上添加新标靶。

请求:

{"reqId": 1, "method": "addTargets", "params": {
  "targets": [
    {"targetId": "2", "roi": {"x": 800, "y": 400, "width": 400, "height": 400}, "distance": 6.0}
  ]
}}

响应:

{"reqId": 1, "code": 0, "data": {"addedIds": ["2"]}}

getTargets

获取当前标靶列表。

请求:

{"reqId": 1, "method": "getTargets", "params": {}}

响应:

{"reqId": 1, "code": 0, "data": {
  "targets": [
    {"targetId": "1", "roi": {"x": 1000, "y": 500, "width": 400, "height": 400}, "distance": 5.0, "status": "tracking"}
  ]
}}

setTargets

更新已有标靶的配置。

请求:

{"reqId": 1, "method": "setTargets", "params": {
  "targets": [{"targetId": "1", "distance": 5.5}]
}}

deleteTargets

删除指定标靶。

请求:

{"reqId": 1, "method": "deleteTargets", "params": {
  "targetIds": ["2"]
}}

setMotorAngle

设置电机角度。

注意: O1 仅支持水平 (pan) 方向,不支持 tilt 参数。

参数:

字段类型范围说明
panFloat-180 ~ 180水平角度 (°)
speedInteger1-100转动速度 (%)

请求:

{"reqId": 1, "method": "setMotorAngle", "params": {"pan": 45.0, "speed": 50}}

getMotorAngle

获取当前电机角度。

请求:

{"reqId": 1, "method": "getMotorAngle", "params": {}}

响应:

{"reqId": 1, "code": 0, "data": {"pan": 45.0}}

setCruisePoint

设置巡航点。

注意: O1 巡航点仅支持 pan 角度。

参数:

字段类型必填说明
pathIdInteger路径 ID
pointIdInteger巡航点 ID
panFloat水平角度
targetsArray标靶 ID 列表
dwellTimeInteger停留时间 (秒)

请求:

{"reqId": 1, "method": "setCruisePoint", "params": {
  "pathId": 1,
  "pointId": 1,
  "pan": 45.0,
  "targets": ["1"],
  "dwellTime": 60
}}

startPatrol

启动巡航。

请求:

{"reqId": 1, "method": "startPatrol", "params": {"pathId": 1}}

stopPatrol

停止巡航。

请求:

{"reqId": 1, "method": "stopPatrol", "params": {}}

3. 遥测数据

测量运行时,设备按采样频率上报位移数据。

主题: vdm/{deviceId}/telemetry

{"disp":{"t":1734567890,"d":{"1":{"dx":[0.01,0.02,0.03],"dy":[0.00,0.01,0.01]}}}}
字段单位说明
tUnix 时间戳
dxmmX 方向位移
dymmY 方向位移

4. 告警数据

位移超限时通过 3A 主题上报。

主题: vdm/{deviceId}/3A

{
  "3A": "DISPLACEMENT_EXCEEDED",
  "level": 2,
  "targetId": "1",
  "value": 12.5,
  "threshold": 10.0,
  "ts": 1734567890
}

告警级别:

级别名称说明
0-恢复
1alert预警
2alarm告警
3action紧急

5. 事件数据

设备状态变化时通过 event 主题上报。

主题: vdm/{deviceId}/event

{
  "event": "cruisePointReached",
  "ts": 1734567890,
  "data": {"pathId": 1, "pointId": 1}
}

事件类型:

事件说明data 内容
measurementStarted测量开始{}
measurementStopped测量停止{}
TARGET_LOST标靶丢失{"targetId": "1"}
targetRecovered标靶恢复{"targetId": "1"}
motorMoved电机移动完成{"pan": 45.0}
cruisePointReached到达巡航点{"pathId": 1, "pointId": 1}

6. 错误码

说明
0成功
1参数无效
2缺少必填参数
100标靶不存在
102标靶初始化失败
104标靶丢失
200测量未启动
201测量已在运行
300电机不可用
302电机运动中
310垂直电机不可用(O1 不支持)
400巡航功能不可用
403巡航已在运行

7. 快速开始

1. 移动到位置

{"reqId": 1, "method": "setMotorAngle", "params": {"pan": 0}}

2. 初始化标靶

{"reqId": 2, "method": "initRefTargets", "params": {
  "targets": [{"targetId": "1", "roi": {"x": 1000, "y": 500, "width": 400, "height": 400}, "distance": 5.0}]
}}

3. 设置巡航点

{"reqId": 3, "method": "setCruisePoint", "params": {
  "pathId": 1, "pointId": 1, "pan": 0, "targets": ["1"], "dwellTime": 60
}}

4. 启动测量

{"reqId": 4, "method": "startMeasurement", "params": {}}