停车物模型协议 V1.0
一、简介
编码类型:utf-8
版本变更说明:
二、物模型约定
2.1 心跳
上报
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
time | long | 是 | 时间:13 位时间戳 |
interval | int | 否 | 心跳间隔:30 - 1200 之间的整数(单位:秒),默认值:30 |
{
"id": "111",
"time": 1618540337564,
"interval": 30
}
回复
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
time | long | 是 | 时间:13 位时间戳 |
interval | int | 否 | 心跳间隔:30 - 1200 之间的整数(单位:秒),默认值:30 |
{
"id": "111",
"time": 1618540337564,
"interval": 30
}
2.2 时间校准
上报
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
deviceSendTime | long | 是 | 代表设备发出时间校准请求的时间,13 位时间戳 |
{
"id": "222",
"deviceSendTime": 1571724098000
}
回复
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
deviceSendTime | long | 是 | 代表设备发出时间校准请求的时间,13 位时间戳 |
serverRecvTime | long | 是 | 代表 IoT 服务端接收到时间校准请求的时间,13 位时间戳 |
serverSendTime | long | 是 | 代表 IoT 服务端响应时间校准请求的时间,13 位时间戳 |
{
"id": "222",
"deviceSendTime": 1571724098000,
"serverRecvTime": 1571724098110,
"serverSendTime": 1571724098115
}
2.3 属性上报
上报
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
version | string | 是 | 协议版本号:目前协议版本号唯一取值为 1.0 |
method | string | 是 | 请求方法:例如 thing.properties.up |
sys | object | 是 | - |
├─ ack | int | 是 | 是否返回响应数据:1- 云端返回响应数据,0- 云端不返回响应数据 |
params | object | 否 | 请求参数 |
├─ xxx | object | 否 | xxx 为任意属性 |
│ ├─ value | object | 是 | 上报的属性值 |
│ └─ time | long | 是 | 属性上报时间戳,类型为 UTC 毫秒级时间 |
{
"id": "333",
"sys": {
"version": "1.0",
"ack": 0
},
"params": {
"power": {
"value": "on",
"time": 1524448722000
}
},
"method": "thing.properties.up"
}
上报回复
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
method | string | 是 | 与请求参数中 method 相同 |
code | int | 是 | 结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线 |
message | string | 是 | 返回结果信息:请求成功时,返回 success |
data | object | 否 | 请求成功时,返回的数据固定为空 |
version | string | 是 | 协议版本号,与请求参数中 version 相同 |
{
"code": 200,
"data": null,
"id": "333",
"message": "success",
"method": "thing.properties.up",
"version": "1.0"
}
2.4 属性查询
查询
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
version | string | 是 | 协议版本号:目前协议版本号唯一取值为 1.0 |
method | string | 是 | 请求方法:例如 thing.properties.get |
params | string[] | 是 | 要进行属性查询的设备参数名列表,若查询的设备参数为非默认模块的参数,需要使用冒号进行区分 |
{
"id": "444",
"version": "1.0",
"params": [
"temperature",
"test:power"
],
"method": "thing.properties.get"
}
获取回复
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
method | string | 是 | 与请求参数中 method 相同 |
code | int | 是 | 结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线 |
message | string | 是 | 返回结果信息:请求成功时,返回 success |
data | object | 否 | 请求成功时,返回的数据固定为查询到的设备参数值 |
version | string | 是 | 协议版本号,与请求参数中 version 相同 |
{
"code": 200,
"data": {
"params": {
"temperature": 23.6,
"test:power": 1
}
},
"id": "444",
"message": "success",
"method": "thing.properties.get",
"version": "1.0"
}
2.5 属性设置
设置
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
version | string | 是 | 协议版本号:目前协议版本号唯一取值为 1.0 |
method | string | 是 | 请求方法:例如 thing.properties.set |
params | object | 是 | 属性设置参数 |
{
"id": "555",
"version": "1.0",
"params": {
"temperature": "30.5",
"test:power": "30.5"
},
"method": "thing.properties.set"
}
设置回复
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
method | string | 是 | 与请求参数中 method 相同 |
code | int | 是 | 结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线 |
message | string | 是 | 返回结果信息:请求成功时,返回 success |
data | object | 否 | 请求成功时,返回的数据固定为空 |
version | string | 是 | 协议版本号,与请求参数中 version 相同 |
{
"code": 200,
"data": null,
"id": "555",
"message": "success",
"method": "thing.properties.set",
"version": "1.0"
}
三、事件
3.1 事件上报
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
method | string | 是 | 请求方法:例如 thing.event.up |
identifier | string | 是 | 为物模型中定义的事件标识符 |
version | string | 是 | 协议版本号:目前协议版本号唯一取值为 1.0 |
sys | object | 是 | - |
├─ ack | int | 是 | 是否返回响应数据:1- 云端返回响应数据,0- 云端不返回响应数据 |
params | object | 是 | - |
├─ time | long | 否 | 属性上报时间戳,类型为 UTC 毫秒级时间 |
└─ value | object | 是 | 上报的具体数据 |
{
"sys": { "ack": 0 },
"identifier": "deviceHeartBeat",
"params": {
"value": {
"deviceTime": "2024-05-13T07:08:09+08:00",
"authorityCount": 1,
"unuploadRecordsCount": 1,
"devicePort": 8090,
"scheme": "http"
},
"time": 1524448722000
},
"method": "thing.event.up"
}
事件回复
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
method | string | 是 | 与请求参数中 method 相同 |
code | int | 是 | 结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线 |
message | string | 是 | 返回结果信息:请求成功时,返回 success |
version | string | 是 | 协议版本号,与请求参数中 version 相同 |
data | object | 否 | 请求成功时,返回的数据固定为空 |
{
"code": 200,
"data": { "code": 0, "msg": "OK", "data": null },
"id": "123",
"message": "success",
"method": "thing.event.up",
"version": "1.0"
}
四、服务
4.1 服务下发
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
method | string | 是 | 请求方法:例如 thing.service.set |
version | string | 是 | 协议版本号:目前协议版本号唯一取值为 1.0 |
identifier | string | 是 | 为物模型中定义的事件标识符 |
params | object | 是 | 不同接口对应的不同参数 |
{
"id": "123",
"version": "1.0",
"identifier": "upgradeApp",
"params": null,
"method": "thing.service.set"
}
服务回复
参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
id | string | 是 | 消息 ID:用于标识每一条 Payload,每个消息 ID 在当前设备中具有唯一性 |
method | string | 是 | 与请求参数中 method 相同 |
identifier | string | 是 | 为物模型中定义的事件标识符,若为自定义模块,格式为 {tsl.event.identifier} |
code | int | 是 | 结果状态码:200- 成功,460- 物模型校验失败,400- 设备未上线 |
message | string | 是 | 返回结果信息:请求成功时,返回 success |
version | string | 是 | 协议版本号,与请求参数中 version 相同 |
data | object | 否 | 请求成功时,返回的数据固定为空 |
{
"code": 200,
"identifier": "upgradeApp",
"data": { "code": 0, "msg": "OK", "data": null },
"id": "123",
"message": "success",
"method": "thing.service.set",
"version": "1.0"
}
五、停车设备物模型属性
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
displayName | string | 是 | 设备名称 |
deviceCode | string | 是 | 设备编号 |
heartBeatInterval | int | 是 | 设备心跳时间间隔(毫秒),默认:20*1000 |
appVersion | string | 是 | 设备软件版本(只读) |
hardVersion | string | 是 | 设备硬件版本(只读) |
deviceUid | string | 是 | 设备唯一标识(只读) |
deviceIp | string | 是 | 设备 ip(只读) |
deviceMac | string | 是 | 设备 mac(只读) |
ntpAddress | string | 是 | ntp 地址(用于同步时间),格式:ip:port |
whiteListUseType | int | 是 | 白名单启用状态:1 脱机自动启用,2 启用,3 不启用 |
六、事件详情
6.1 上报识别记录
事件名:uploadRecognize
请求参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
plateNos | string[] | 是 | 识别的车牌号码列表,最多三个 |
fakePlate | bool | 是 | 是否是虚假车牌 |
vehicleImage | string | 否 | 车辆抓拍图片(Base64) |
vehicleImageUrl | string | 否 | 车辆抓拍图片 url,可访问的 oss 地址 |
plateImage | string | 否 | 车牌抓拍图片(Base64) |
plateImageUrl | string | 否 | 车牌抓拍图片 url,可访问的 oss 地址 |
timeStamp | long | 是 | 识别时间,13 位时间戳 |
triggerType | int | 是 | 抓拍类型(详见枚举说明) |
direction | int | 否 | 车辆行驶方向:1 顺行,2 逆行 |
plateType | int | 是 | 车牌类型(详见枚举说明) |
{
"id": "123",
"version": "1.0",
"sys": { "ack": 0 },
"identifier": "uploadRecognize",
"params": {
"value": {
"plateNos": ["粤A12345"],
"fakePlate": false,
"timeStamp": 1732066887879,
"triggerType": 1,
"direction": 3,
"plateType": 1
},
"time": 1524448722000
},
"method": "thing.event.up"
}
示例:
{
"code": 200,
"data": { "code": "0", "msg": "OK", "data": null },
"id": "123",
"message": "success",
"method": "thing.event.up"
}
七、服务详情
7.1 抓拍
服务名:capture
请求参数:无
请求示例:
{
"identifier": "capture",
"params": null,
"method": "thing.service.set"
}
返回示例:
{
"code": 200,
"identifier": "capture",
"data": { "code": "0", "msg": "OK", "data": null },
"id": "123",
"message": "success",
"method": "thing.service.set",
"version": "1.0"
}
7.2 设置白名单启用状态
服务名:setWhiteListUseType
请求参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
whiteListUseType | int | 是 | 设置白名单启用状态:1 脱机自动启用,2 启用,3 不启用 |
{
"id": "123",
"version": "1.0",
"identifier": "setWhiteListUseType",
"params": { "whiteListUseType": 1 },
"method": "thing.service.set"
}
7.3 添加白名单车辆
服务名:addWhiteListPlateNos
请求参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
plateNos | string[] | 是 | 车牌号码列表 |
{
"id": "123",
"version": "1.0",
"identifier": "addWhiteListPlateNos",
"params": { "plateNos": ["粤A00001", "粤A00002"] },
"method": "thing.service.set"
}
7.4 删除白名单车辆
服务名:deleteWhiteListPlateNos
请求参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
plateNos | string[] | 是 | 车牌号码列表 |
{
"identifier": "deleteWhiteListPlateNos",
"params": { "plateNos": ["粤A00001", "粤A00002"] },
"method": "thing.service.set"
}
八、枚举说明
8.1 抓拍类型枚举
值 | 描述 |
---|---|
1 | 自动识别触发 |
2 | 手动触发 |
101 | 车滞留 |
102 | 车滞留恢复 |
103 | 车辆折返 |
104 | 跟车 |
8.2 车牌类型枚举
值 | 描述 |
---|---|
0 | 蓝牌 |
1 | 新能源 |
2 | 黄牌 |
3 | 军警车 |
4 | 应急车 |
5 | 民航 |
6 | 港澳车牌 |
九、显示屏物模型
9.1 属性
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
displayName | string | 是 | 设备名称 |
deviceCode | string | 是 | 设备编号 |
heartBeatInterval | int | 是 | 设备心跳时间间隔(毫秒),默认:20*1000 |
appVersion | string | 是 | 设备软件版本(只读) |
hardVersion | string | 是 | 设备硬件版本(只读) |
deviceUid | string | 是 | 设备唯一标识(只读) |
deviceIp | string | 是 | 设备 ip(只读) |
deviceMac | string | 是 | 设备 mac(只读) |
ntpAddress | string | 是 | ntp 地址(用于同步时间),格式:ip:port |
9.2 服务:下发显示和语音播报内容
请求参数:
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
firstLine | string | 否 | 屏第一行显示内容 |
secondLine | string | 否 | 屏第二行显示内容 |
thirdLine | string | 否 | 屏第三行显示内容 |
fourthLine | string | 否 | 屏第四行显示内容 |
showQRCode | bool | 是 | 是否展示二维码 |
qrCode | string | 否 | 二维码文字内容 |
qrCodeUseLine | int[] | 是 | 第几行展示二维码 |
playVoice | bool | 是 | 是否播报语音 |
voiceContent | string | 否 | 语音播报内容 |
十、道闸物模型
10.1 属性
参数名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
displayName | string | 是 | 设备名称 |
deviceCode | string | 是 | 设备编号 |
heartBeatInterval | int | 是 | 设备心跳时间间隔(毫秒),默认:20*1000 |
appVersion | string | 是 | 设备软件版本(只读) |
hardVersion | string | 是 | 设备硬件版本(只读) |
deviceUid | string | 是 | 设备唯一标识(只读) |
deviceIp | string | 是 | 设备 ip(只读) |
deviceMac | string | 是 | 设备 mac(只读) |
ntpAddress | string | 是 | ntp 地址(用于同步时间),格式:ip:port |
10.2 事件:上报道闸状态变化
请求参数:
参数名称 | 类型 | 是否 必填 | 说明 |
---|---|---|---|
gateState | int | 是 | 1 开闸,2 关闸 |
{
"id": "123",
"version": "1.0",
"sys": { "ack": 0 },
"identifier": "uploadGateStatesChange",
"params": {
"value": {
"gateState": 1,
"time": 1524448722000
}
},
"method": "thing.event.up"
}
10.3 服务:开闸
请求参数:无
请求示例:
{
"id": "123",
"version": "1.0",
"identifier": "openGate",
"params": null,
"method": "thing.service.set"
}
10.4 服务:关闸
请求参数:无
请求示例:
{
"id": "123",
"version": "1.0",
"identifier": "closeGate",
"params": null,
"method": "thing.service.set"
}
修改于 2025-04-22 01:53:51