VDM-V2K
V2K 双目自由角度视觉位移计 API 参考手册
型号: V2K | 版本: 1.0 | 更新: 2026-01-08
V2K 是双目固定式视觉位移计,双视觉传感器可独立调整角度,适用于需要灵活监测角度的场景。
与 V2W 的区别: V2K 双视觉传感器可朝向不同方向,因此各标靶距离可能不同。
1. API 列表
基础 API
| 方法 | 说明 |
|---|---|
getAttr | 获取属性 |
setAttr | 设置属性 |
reboot | 重启设备 |
syncTime | 同步时间 |
标靶管理 API
| 方法 | 说明 |
|---|---|
initRefTargets | 初始化标靶 |
addTargets | 添加标靶 |
getTargets | 获取标靶列表 |
setTargets | 更新标靶配置 |
deleteTargets | 删除标靶 |
测量控制 API
| 方法 | 说明 |
|---|---|
startMeasurement | 启动测量 |
stopMeasurement | 停止测量 |
setLightLevel | 设置补光灯发光挡位 |
getLightLevel | 获取补光灯发光挡位 |
snapshot | 获取快照 |
存储 API
| 方法 | 说明 |
|---|---|
getStorageInfo | 获取存储信息 |
queryTelemetry | 查询历史数据 |
uploadS3 | 上传数据到 S3 |
2. API 详情
initRefTargets
双视觉传感器可独立配置不同距离。
参数:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
targets | Array | 是 | 标靶配置 |
targets[].targetId | String | 否 | 标靶 ID |
targets[].sensorId | Integer | 是 | 视觉传感器 ID (0 或 1) |
targets[].roi | Object | 是 | ROI 区域 |
targets[].distance | Float | 是 | 测量距离 (m) |
请求(不同距离):
{"reqId": 1, "method": "initRefTargets", "params": {
"targets": [
{"targetId": "1", "sensorId": 0, "roi": {"x": 1000, "y": 500, "width": 400, "height": 400}, "distance": 5.0},
{"targetId": "2", "sensorId": 1, "roi": {"x": 800, "y": 600, "width": 400, "height": 400}, "distance": 8.0}
]
}}
V2K 双视觉传感器可朝向不同方向,因此各标靶距离可能不同。
addTargets
在已有标靶基础上添加新标靶。
请求:
{"reqId": 1, "method": "addTargets", "params": {
"targets": [
{"targetId": "3", "sensorId": 0, "roi": {"x": 600, "y": 400, "width": 400, "height": 400}, "distance": 5.5}
]
}}
响应:
{"reqId": 1, "code": 0, "data": {"addedIds": ["3"]}}
getTargets
获取当前标靶列表。
请求:
{"reqId": 1, "method": "getTargets", "params": {}}
响应:
{"reqId": 1, "code": 0, "data": {
"targets": [
{"targetId": "1", "sensorId": 0, "roi": {"x": 1000, "y": 500, "width": 400, "height": 400}, "distance": 5.0, "status": "tracking"},
{"targetId": "2", "sensorId": 1, "roi": {"x": 800, "y": 600, "width": 400, "height": 400}, "distance": 8.0, "status": "tracking"}
]
}}
setTargets
更新已有标靶的配置。
请求:
{"reqId": 1, "method": "setTargets", "params": {
"targets": [
{"targetId": "1", "distance": 5.5}
]
}}
deleteTargets
删除指定标靶。
请求:
{"reqId": 1, "method": "deleteTargets", "params": {
"targetIds": ["2"]
}}
setAttr
支持配置 3D 融合上报指标。
请求:
{"reqId": 1, "method": "setAttr", "params": {
"reportMetrics": ["dx", "dy", "sx", "sy", "sz"]
}}
| 指标 | 说明 |
|---|---|
dx, dy | 2D 位移 |
sx, sy, sz | 3D 空间位移(双设备融合) |
3. 遥测数据
测量运行时,设备按采样频率上报累积位移变化数据。
主题: vdm/{deviceId}/telemetry
{"disp":{"t":1734567890,"d":{"1":{"dx":[0.01,0.02],"dy":[0.00,0.01],"sx":[0.01,0.02],"sy":[0.00,0.01],"sz":[0.00,0.00]}}}}
| 字段 | 单位 | 说明 |
|---|---|---|
t | 秒 | Unix 时间戳 |
dx, dy | mm | 2D 位移 |
sx, sy, sz | mm | 3D 空间位移(双设备融合) |
4. 告警数据
位移超限时通过 3A 主题上报。
主题: vdm/{deviceId}/3A
{
"3A": "DISPLACEMENT_EXCEEDED",
"level": 2,
"targetId": "1",
"value": 12.5,
"threshold": 10.0,
"ts": 1734567890
}
告警级别:
| 级别 | 名称 | 说明 |
|---|---|---|
| 0 | - | 恢复 |
| 1 | alert | 预警 |
| 2 | alarm | 告警 |
| 3 | action | 紧急 |
5. 事件数据
设备状态变化时通过 event 主题上报。
主题: vdm/{deviceId}/event
{
"event": "measurementStarted",
"ts": 1734567890,
"data": {}
}
事件类型:
| 事件 | 说明 | data 内容 |
|---|---|---|
measurementStarted | 测量开始 | {} |
measurementStopped | 测量停止 | {} |
TARGET_LOST | 标靶丢失 | {"targetId": "1"} |
targetRecovered | 标靶恢复 | {"targetId": "1"} |
6. 错误码
| 码 | 说明 |
|---|---|
| 0 | 成功 |
| 1 | 参数无效 |
| 2 | 缺少必填参数 |
| 100 | 标靶不存在 |
| 102 | 标靶初始化失败 |
| 104 | 标靶丢失 |
| 200 | 测量未启动 |
| 201 | 测量已在运行 |
7. 快速开始
1. 双视觉传感器初始化标靶(不同距离)
{"reqId": 1, "method": "initRefTargets", "params": {
"targets": [
{"targetId": "1", "sensorId": 0, "roi": {"x": 1000, "y": 500, "width": 400, "height": 400}, "distance": 5.0},
{"targetId": "2", "sensorId": 1, "roi": {"x": 800, "y": 600, "width": 400, "height": 400}, "distance": 8.0}
]
}}
2. 启用 3D 融合上报
{"reqId": 2, "method": "setAttr", "params": {"reportMetrics": ["dx", "dy", "sx", "sy", "sz"]}}
3. 启动测量
{"reqId": 3, "method": "startMeasurement", "params": {}}