Commit 727ecc88 by 潘建波

提交交通文档

1 parent add0b901
Pipeline #19 for 727ecc88 passed in 0 seconds
......@@ -14,15 +14,3 @@ job1:
# 指定哪个ci runner跑该工作
tags:
- vion
job2:
# 场景为构建
stage: deploy
# 所需执行的脚本
script:
- npm init
# 在哪个分支上可用
only:
- master
# 指定哪个ci runner跑该工作
tags:
- vion
\ No newline at end of file
No preview for this file type
# 1.数据格式详细
## 1.1.交通类型数据格式
### 1.1.1. 卡口过车数据
```json
{
"sjly":"1",//数据来源
"cjbh":"1", //厂家编号
"kkbh":"612451001201", //卡口编号
"kkmc":"中华中路路口", //卡口名称
"kkfxbh":"卡口方向编号", //卡口方向编号
"xsfxbh":"行驶方向编号", //行驶方向编号
"ddbh":"地点编号", //地点编号
"ddmc":"地点名称", //地点名称
"task_id":"任务id", // 任务id
"tdbh":"通道编号", //视频通道编号
"sbbh":"JGJ00001", //设备编号
"sbmc":"设备名称", //设备名称
"csys":"A", //车身颜色
"clpp":"12", //车辆品牌
"clzpp":"车辆子品牌", //车辆子品牌
"cllx":"B39", //车辆类型
"clsd":160, //车辆速度
"fxlx":"2012-10-25 12:49:13", //方向类型
"hphm":"京A12345", //号牌号码
"hpys":"F", //号牌颜色
"hpzl":"1", //号牌种类
"hpzxd":78, //号牌置信度
"cdh":"01", //车道号
"gcsj":"2019-12-12 12:12:12", //过车时间
"tp1":"图片1地址", //图片1
"tp2":"图片2地址", //图片2
"tp3":"图片3地址", //图片3
"dslx":"短时录像地址", //短时录像
"hptp":"号牌图片地址" //号牌图片
}
```
| 名称 | 含义 | 示例 | 必填 | 类型 | 是否字典 |
| ------- | ------------ | ------------------------------------------------------------ | ---- | -------- | -------- |
| sjly | 数据来源 | 电子警察/事件监测设备/公路卡口 **见字典2.3.1** | 必填 | string | 是 |
| cjbh | 厂家编号 | 海信/文安/海康/宇视 **见字典2.3.2** | 必填 | string | 是 |
| kkbh | 卡口编号 | 612451001201 | 必填 | string | 否 |
| kkmc | 卡口名称 | 中华中路路口 | 必填 | string | 否 |
| kkfxbh | 卡口方向编号 | 01 | 否 | string | 是 |
| xsfxbh | 行驶方向编号 | 1 | 否 | string | 是 |
| ddbh | 地点编号 | 12345 | 否 | string | 是 |
| ddmc | 地点名称 | 永濠东路 | 否 | string | 否 |
| task_id | 任务id | 口过车任务 | 否 | string | 否 |
| tdbh | 通道编号 | | 是 | string | 否 |
| sbbh | 设备编号 | JGJ00001 | 必填 | string | 否 |
| sbmc | 设备名称 | 设备1 | 必填 | string | 否 |
| csys | 车身颜色 | 白/银/黑/红/紫/蓝/黄/绿/褐/粉红/灰色 **见字典2.3.7** | 必填 | string | 是 |
| clpp | 车辆品牌 | 奥迪/宝马/奔驰 **见字典2.3.3** | 必填 | string | 是 |
| cllx | 车辆类型 | 大型普通客车/大型双层客车/大型卧铺客车/轻型自卸货车 **见字典2.3.8** | 必填 | string | 是 |
| clsd | 车辆速度 | 120 | 必填 | int | 否 |
| fxlx | 方向类型 | 由东到西/由南向北/由北向南 **见字典2.3.5** | 必填 | string | 是 |
| hphm | 号牌号码 | 京A12345 | 必填 | string | 否 |
| hpys | 号牌颜色 | 蓝/黑/黄/白/其他 **见字典2.3.6** | 必填 | string | 是 |
| hpzl | 号牌种类 | 型汽车号牌/小型汽车号牌/使馆汽车号牌/教练车号牌 **见字典2.3.4** | 必填 | string | 是 |
| hpzxd | 号牌置信度 | 0-100 | 必填 | int | 否 |
| cdh | 车道号 | 01/02/03/04/05/06 | 必填 | string | 否 |
| gcsj | 过车时间 | 2019-12-12 12:12:12 | 必填 | datetime | 否 |
| dslx | 短时录像 | | 否 | string | 否 |
| tp1 | 图片1 | | 必填 | string | 否 |
| tp2 | 图片2 | | | string | 否 |
| tp3 | 图片3 | | | string | 否 |
| hptp | 号牌图片 | | 必填 | string | 否 |
### 1.1.2. 卡口非机动车数据
```json
{
"sjly":"1",//数据来源
"cjbh":"1", //厂家编号
"kkbh":"612451001201", //卡口编号
"kkmc":"中华中路路口", //卡口名称
"kkfxbh":"卡口方向编号", //卡口方向编号
"xsfxbh":"行驶方向编号", //行驶方向编号
"ddbh":"地点编号", //地点编号
"ddmc":"地点名称", //地点名称
"task_id":"任务id", // 任务id
"tdbh":"通道编号", //视频通道编号
"sbbh":"JGJ00001", //设备编号
"sbmc":"设备名称", //设备名称
"csys":"A", //车身颜色
"clpp":"12", //车辆品牌
"clzpp":"车辆子品牌", //车辆子品牌
"cllx":"B39", //车辆类型
"clsd":160, //车辆速度
"hphm":"京A12345", //号牌号码
"hpys":"F", //号牌颜色
"gxdcbs":"哈罗", //共享单车标识
"yygs":"01", //运营公司
"gcsj":"2019-12-12 12:12:12", //过车时间
"tp1":"图片1地址", //图片1
"dslx":"短时录像地址", //短时录像
"hptp":"号牌图片地址" //号牌图片
}
```
| 名称 | 含义 | 示例 | 必填 | 类型 | 是否字典 |
| ------- | ------------ | ------------------------------------------------------------ | ---- | -------- | -------- |
| sjly | 数据来源 | 电子警察/事件监测设备/公路卡口 **见字典2.3.1** | 必填 | string | 是 |
| cjbh | 厂家编号 | 海信/文安/海康/宇视 **见字典2.3.2** | 必填 | string | 是 |
| kkbh | 卡口编号 | 612451001201 | 必填 | string | 否 |
| kkmc | 卡口名称 | 中华中路路口 | 必填 | string | 否 |
| kkfxbh | 卡口方向编号 | 01 | 否 | string | 是 |
| xsfxbh | 行驶方向编号 | 1 | 否 | string | 是 |
| ddbh | 地点编号 | 12345 | 否 | string | 是 |
| ddmc | 地点名称 | 永濠东路 | 否 | string | 否 |
| task_id | 任务id | 口过车任务 | 否 | string | 否 |
| tdbh | 通道编号 | | 是 | string | 否 |
| sbbh | 设备编号 | JGJ00001 | 必填 | string | 否 |
| sbmc | 设备名称 | 设备1 | 必填 | string | 否 |
| csys | 车身颜色 | 白/银/黑/红/紫/蓝/黄/绿/褐/粉红/灰色 **见字典2.3.7** | 必填 | string | 是 |
| clpp | 车辆品牌 | 奥迪/宝马/奔驰 **见字典2.3.3** | 必填 | string | 是 |
| cllx | 车辆类型 | 大型普通客车/大型双层客车/大型卧铺客车/轻型自卸货车 **见字典2.3.8** | 必填 | string | 是 |
| clsd | 车辆速度 | 120 | 必填 | int | 否 |
| fxlx | 方向类型 | 由东到西/由南向北/由北向南 **见字典2.3.5** | 必填 | string | 是 |
| hphm | 号牌号码 | 京A12345 | 必填 | string | 否 |
| hpys | 号牌颜色 | 蓝/黑/黄/白/其他 **见字典2.3.6** | 必填 | string | 是 |
| hpzl | 号牌种类 | 型汽车号牌/小型汽车号牌/使馆汽车号牌/教练车号牌 **见字典2.3.4** | 必填 | string | 是 |
| hpzxd | 号牌置信度 | 0-100 | 必填 | int | 否 |
| cdh | 车道号 | 01/02/03/04/05/06 | 必填 | string | 否 |
| gcsj | 过车时间 | 2019-12-12 12:12:12 | 必填 | datetime | 否 |
| dslx | 短时录像 | | 否 | string | 否 |
| tp1 | 图片1 | | 必填 | string | 否 |
### 1.1.3. 卡口行人数据
```json
{
"sjly":"1",//数据来源
"cjbh":"1", //厂家编号
"kkbh":"612451001201", //卡口编号
"kkmc":"中华中路路口", //卡口名称
"kkfxbh":"卡口方向编号", //卡口方向编号
"xsfxbh":"行驶方向编号", //行驶方向编号
"ddbh":"地点编号", //地点编号
"ddmc":"地点名称", //地点名称
"task_id":"任务id", // 任务id
"tdbh":"通道编号", //视频通道编号
"sbbh":"JGJ00001", //设备编号
"sbmc":"设备名称", //设备名称
"rlsbbs":1, //人脸识别标识
"xb":"男", //性别
"ssys":"R", //上身颜色
"xsys":"R", //下身颜色
"dmzbs":0, //带帽子标识
"zpsj":"2019-12-12 12:12:12", //抓拍时间
"tp1":"图片1地址", //图片1
"dslx":"短时录像地址", //短时录像
}
```
| 名称 | 含义 | 示例 | 必填 | 类型 | 是否字典 |
| ------- | ------------ | ------------------------------------------------------------ | ---- | -------- | -------- |
| sjly | 数据来源 | 电子警察/事件监测设备/公路卡口 **见字典2.3.1** | 必填 | string | 是 |
| cjbh | 厂家编号 | 海信/文安/海康/宇视 **见字典2.3.2** | 必填 | string | 是 |
| kkbh | 卡口编号 | 612451001201 | 必填 | string | 否 |
| kkmc | 卡口名称 | 中华中路路口 | 必填 | string | 否 |
| kkfxbh | 卡口方向编号 | 01 | 否 | string | 是 |
| xsfxbh | 行驶方向编号 | 1 | 否 | string | 是 |
| ddbh | 地点编号 | 12345 | 否 | string | 是 |
| ddmc | 地点名称 | 永濠东路 | 否 | string | 否 |
| task_id | 任务id | 口过车任务 | 否 | string | 否 |
| tdbh | 通道编号 | | 是 | string | 否 |
| sbbh | 设备编号 | JGJ00001 | 必填 | string | 否 |
| sbmc | 设备名称 | 设备1 | 必填 | string | 否 |
| csys | 车身颜色 | 白/银/黑/红/紫/蓝/黄/绿/褐/粉红/灰色 **见字典2.3.7** | 必填 | string | 是 |
| clpp | 车辆品牌 | 奥迪/宝马/奔驰 **见字典2.3.3** | 必填 | string | 是 |
| cllx | 车辆类型 | 大型普通客车/大型双层客车/大型卧铺客车/轻型自卸货车 **见字典2.3.8** | 必填 | string | 是 |
| clsd | 车辆速度 | 120 | 必填 | int | 否 |
| fxlx | 方向类型 | 由东到西/由南向北/由北向南 **见字典2.3.5** | 必填 | string | 是 |
| hphm | 号牌号码 | 京A12345 | 必填 | string | 否 |
| hpys | 号牌颜色 | 蓝/黑/黄/白/其他 **见字典2.3.6** | 必填 | string | 是 |
| hpzl | 号牌种类 | 型汽车号牌/小型汽车号牌/使馆汽车号牌/教练车号牌 **见字典2.3.4** | 必填 | string | 是 |
| hpzxd | 号牌置信度 | 0-100 | 必填 | int | 否 |
| cdh | 车道号 | 01/02/03/04/05/06 | 必填 | string | 否 |
| gcsj | 过车时间 | 2019-12-12 12:12:12 | 必填 | datetime | 否 |
| dslx | 短时录像 | | 否 | string | 否 |
| tp1 | 图片1 | | 必填 | string | 否 |
### 1.1.4. 闯红灯违法数据
```
{
"sjly":"1",//数据来源 -
"cjbh":"1", //厂家编号 - +
"wfsjly":"1",//违法数据来源 - +
"wfdm":"", // 违法代码 - +
"cjdbh":"612451001201", //采集点编号 - +
"cjdz":"中华中路路口", //采集地址 - +
"cjsj":"2020-04-12 12:12:12" // 采集时间 - +
"cjjg":"asdfdas", // 采集机关 - +
"sbbh":"JGJ00001", //设备编号 - +
"sbmc":"设备名称", //设备名称
"csys":"A", //车身颜色 +
"clpp":"12", //车辆品牌 +
"cllx":"B39", //车辆类型
"clsd":160, //车辆速度 +
"fxlx":"1", //方向类型 - +
"hphm":"京A12345", //号牌号码 - +
"hpys":"2", //号牌颜色 +
"hpzl":"1", //号牌种类 - +
"hpzxd":78, //号牌置信度 +
"cdh":"01", //车道号 - +
"zplx":"1" // 抓拍类型(0-无,1-图片,2-录像)-
"hdlqsj":"2020-04-12 12:12:12",//红灯亮起时间,(yyyy-mm-dd hh24:mi:ss) - +
"hdcxsj":25,//红灯持续时间,(整数,单位是“秒”)-
"tp1":"图片1地址", //图片1 - +
"tp2":"图片2地址", //图片2 - +
"tp3":"图片3地址", //图片3 - +
}
```
| 名称 | 含义 | 示例 | 必填 | 类型 | 是否字典 |
| ------ | ------------ | ------------------------------------------------------------ | -------- | -------- | -------- |
| sjly | 数据来源 | 电子警察/事件监测设备/公路卡口 **见字典2.3.1** | 必填 | string | 是 |
| cjbh | 厂家编号 | 海信/文安/海康/宇视 **见字典2.3.2** | 必填 | string | 是 |
| wfsjly | 违法数据来源 | | 必填 | string | 是 |
| wfdm | 违法代码 | | 必填 | string | 否 |
| cjdbh | 采集点编号 | | 必填 | string | 否 |
| cjdz | 采集地址 | | 必填必填 | string | 否 |
| cjsj | 采集时间 | | 必填 | datetime | 否 |
| cjjg | 采集机关 | | 必填 | string | 否 |
| sbbh | 设备编号 | JGJ00001 | 必填 | string | 否 |
| sbmc | 设备名称 | 设备1 | 必填 | string | 否 |
| csys | 车身颜色 | 白/银/黑/红/紫/蓝/黄/绿/褐/粉红/灰色 **见字典2.3.7** | 必填 | string | 是 |
| clpp | 车辆品牌 | 奥迪/宝马/奔驰 **见字典2.3.3** | 必填 | string | 是 |
| cllx | 车辆类型 | 大型普通客车/大型双层客车/大型卧铺客车/轻型自卸货车 **见字典2.3.8** | 必填 | string | 是 |
| clsd | 车辆速度 | 120 | 必填 | int | 否 |
| fxlx | 方向类型 | 由东到西/由南向北/由北向南 **见字典2.3.5** | 必填 | string | 是 |
| hphm | 号牌号码 | 京A12345 | 必填 | string | 否 |
| hpys | 号牌颜色 | 蓝/黑/黄/白/其他 **见字典2.3.6** | 必填 | string | 是 |
| hpzl | 号牌种类 | 型汽车号牌/小型汽车号牌/使馆汽车号牌/教练车号牌 **见字典2.3.4** | 必填 | string | 是 |
| hpzxd | 号牌置信度 | 0-100 | 必填 | int | 否 |
| cdh | 车道号 | 01/02/03/04/05/06 | 必填 | string | 否 |
| zplx | 抓拍类型 | | 必填 | string | 是 |
| hdlqsj | 红灯亮起时间 | 2019-12-12 12:12:12 | 必填 | datetime | 否 |
| hdcxsj | 红灯持续时间 | | 必填 | int | 否 |
| tp1 | 图片1 | | 必填 | string | 否 |
| tp2 | 图片2 | | 必填 | string | 否 |
| tp3 | 图片3 | | 必填 | string | 否 |
### 1.1.5. 超速违法数据
```
{
"sjly":"1",//数据来源 -
"cjbh":"1", //厂家编号
"wfsjly":"1",//违法数据来源 -
"wfdm":"", // 违法代码 -
"cjdbh":"612451001201", //采集点编号 -
"cjdz":"中华中路路口", //采集地址 -
"cjsj":"2020-04-12 12:12:12" // 采集时间 -
"cjjg":"asdfdas", // 采集机关 -
"sbbh":"JGJ00001", //设备编号 -
"sbmc":"设备名称", //设备名称
"csys":"A", //车身颜色
"clpp":"12", //车辆品牌
"cllx":"B39", //车辆类型
"clsd":160, //车辆速度 -
"fxlx":"1", //方向类型 -
"hphm":"京A12345", //号牌号码 -
"hpys":"2", //号牌颜色
"hpzl":"1", //号牌种类 -
"hpzxd":78, //号牌置信度
"cdh":"01", //车道号 -
"zplx":"1" // 抓拍类型(0-无,1-图片,2-录像-
"dcxs":150,//大车限速 -
"kcxs":150,// 卡车限速 -
"xcxs":150,
"dczfxs":150, // 大车执法限速 -
"kczfxs":150, // 卡车执法限速 -
"xczfxs":150, // 小车执法限速 -
"zdxs":150 //最低限速 -
"tp1":"图片1地址", //图片1
"tp2":"图片2地址", //图片2
"tp3":"图片3地址", //图片3
}
```
| 名称 | 含义 | 示例 | 必填 | 类型 | 是否字典 |
| ------ | ------------ | ------------------------------------------------------------ | -------- | -------- | -------- |
| sjly | 数据来源 | 电子警察/事件监测设备/公路卡口 **见字典2.3.1** | 必填 | string | 是 |
| cjbh | 厂家编号 | 海信/文安/海康/宇视 **见字典2.3.2** | 必填 | string | 是 |
| wfsjly | 违法数据来源 | | 必填 | string | 是 |
| wfdm | 违法代码 | | 必填 | string | 否 |
| cjdbh | 采集点编号 | | 必填 | string | 否 |
| cjdz | 采集地址 | | 必填必填 | string | 否 |
| cjsj | 采集时间 | | 必填 | datetime | 否 |
| cjjg | 采集机关 | | 必填 | string | 否 |
| sbbh | 设备编号 | JGJ00001 | 必填 | string | 否 |
| sbmc | 设备名称 | 设备1 | 必填 | string | 否 |
| csys | 车身颜色 | 白/银/黑/红/紫/蓝/黄/绿/褐/粉红/灰色 **见字典2.3.7** | 必填 | string | 是 |
| clpp | 车辆品牌 | 奥迪/宝马/奔驰 **见字典2.3.3** | 必填 | string | 是 |
| cllx | 车辆类型 | 大型普通客车/大型双层客车/大型卧铺客车/轻型自卸货车 **见字典2.3.8** | 必填 | string | 是 |
| clsd | 车辆速度 | 120 | 必填 | int | 否 |
| fxlx | 方向类型 | 由东到西/由南向北/由北向南 **见字典2.3.5** | 必填 | string | 是 |
| hphm | 号牌号码 | 京A12345 | 必填 | string | 否 |
| hpys | 号牌颜色 | 蓝/黑/黄/白/其他 **见字典2.3.6** | 必填 | string | 是 |
| hpzl | 号牌种类 | 型汽车号牌/小型汽车号牌/使馆汽车号牌/教练车号牌 **见字典2.3.4** | 必填 | string | 是 |
| hpzxd | 号牌置信度 | 0-100 | 必填 | int | 否 |
| cdh | 车道号 | 01/02/03/04/05/06 | 必填 | string | 否 |
| zplx | 抓拍类型 | | 必填 | string | 是 |
| dcxs | 大车限速 | | 必填 | int | 否 |
| kcxs | 卡车限速 | | 必填 | int | 否 |
| xcxs | 小车限速 | | 必填 | int | 否 |
| dczfxs | 大车执法限速 | | 必填 | int | 否 |
| kczfxs | 卡车执法限速 | | 必填 | int | 否 |
| xczfxs | 小车执法限速 | | 必填 | int | 否 |
| zdxs | 最低限速 | | 必填 | int | 否 |
| tp1 | 图片1 | | 必填 | string | 否 |
| tp2 | 图片2 | | 必填 | string | 否 |
| tp3 | 图片3 | | 必填 | string | 否 |
### 1.1.6. 交通违法数据
```
{
"sjly":"1",//数据来源
"cjbh":"1", //厂家编号
"wfsjly":"1",//违法数据来源
"wfdm":"", // 违法代码
"kkbh":"612451001201", //卡口编号
"kkmc":"中华中路路口", //卡口名称
"kkfxbh":"卡口方向编号", //卡口方向编号
"xsfxbh":"行驶方向编号", //行驶方向编号
"task_id":"任务id", // 任务id
"tdbh":"通道编号", // 通道编号
"cjdbh":"612451001201", //采集点编号
"cjdz":"中华中路路口", //采集地址
"cjsj":"2020-04-12 12:12:12" // 采集时间
"cjjg":"asdfdas", // 采集机关
"sbbh":"JGJ00001", //设备编号
"sbmc":"设备名称", //设备名称
"csys":"A", //车身颜色
"clpp":"12", //车辆品牌
"cllx":"B39", //车辆类型
"clsd":160, //车辆速度
"fxlx":"1", //方向类型
"hphm":"京A12345", //号牌号码
"hpys":"2", //号牌颜色
"hpzl":"1", //号牌种类
"hpzxd":78, //号牌置信度
"cdh":"01", //车道号
"zplx":"1" // 抓拍类型(0-无,1-图片,2-录像
"dslx":"短时录像地址", //短时录像
"tp1":"图片1地址", //图片1
"tp2":"图片2地址", //图片2
"tp3":"图片3地址", //图片3
}
```
| 名称 | 含义 | 示例 | 必填 | 类型 | 是否字典 |
| ------- | ------------ | ------------------------------------------------------------ | -------- | -------- | -------- |
| sjly | 数据来源 | 电子警察/事件监测设备/公路卡口 **见字典2.3.1** | 必填 | string | 是 |
| cjbh | 厂家编号 | 海信/文安/海康/宇视 **见字典2.3.2** | 必填 | string | 是 |
| wfsjly | 违法数据来源 | | 必填 | string | 是 |
| wfdm | 违法代码 | | 必填 | string | 否 |
| kkfxbh | 卡口方向编号 | 01 | 否 | string | 是 |
| xsfxbh | 行驶方向编号 | 1 | 否 | string | 是 |
| ddbh | 地点编号 | 12345 | 否 | string | 是 |
| ddmc | 地点名称 | 永濠东路 | 否 | string | 否 |
| task_id | 任务id | 口过车任务 | 否 | string | 否 |
| tdbh | 通道编号 | | 是 | string | 否 |
| cjdbh | 采集点编号 | | 必填 | string | 否 |
| cjdz | 采集地址 | | 必填必填 | string | 否 |
| cjsj | 采集时间 | | 必填 | datetime | 否 |
| cjjg | 采集机关 | | 必填 | string | 否 |
| sbbh | 设备编号 | JGJ00001 | 必填 | string | 否 |
| sbmc | 设备名称 | 设备1 | 必填 | string | 否 |
| csys | 车身颜色 | 白/银/黑/红/紫/蓝/黄/绿/褐/粉红/灰色 **见字典2.3.7** | 必填 | string | 是 |
| clpp | 车辆品牌 | 奥迪/宝马/奔驰 **见字典2.3.3** | 必填 | string | 是 |
| cllx | 车辆类型 | 大型普通客车/大型双层客车/大型卧铺客车/轻型自卸货车 **见字典2.3.8** | 必填 | string | 是 |
| clsd | 车辆速度 | 120 | 必填 | int | 否 |
| fxlx | 方向类型 | 由东到西/由南向北/由北向南 **见字典2.3.5** | 必填 | string | 是 |
| hphm | 号牌号码 | 京A12345 | 必填 | string | 否 |
| hpys | 号牌颜色 | 蓝/黑/黄/白/其他 **见字典2.3.6** | 必填 | string | 是 |
| hpzl | 号牌种类 | 型汽车号牌/小型汽车号牌/使馆汽车号牌/教练车号牌 **见字典2.3.4** | 必填 | string | 是 |
| hpzxd | 号牌置信度 | 0-100 | 必填 | int | 否 |
| cdh | 车道号 | 01/02/03/04/05/06 | 必填 | string | 否 |
| zplx | 抓拍类型 | | 必填 | string | 是 |
| dslx | 短时录像 | | 否 | string | 否 |
| tp1 | 图片1 | | 必填 | string | 否 |
| tp2 | 图片2 | | 必填 | string | 否 |
| tp3 | 图片3 | | 必填 | string | 否 |
## 1.2. 综治类型数据
### 1.2.1. 综治事件数据
```
{
"sjly":"1",//数据来源
"cjbh":"1", //厂家编号
"wfsjly":"1",//违法数据来源
"sjlx":"", // 事件类型
"task_id":"任务id", // 任务id
"tdbh":"通道编号", //通道编号
"cjdbh":"612451001201", //采集点编号
"cjdz":"中华中路路口", //采集地址
"cjsj":"2020-04-12 12:12:12" // 采集时间
"cjjg":"asdfdas", // 采集机关
"sbbh":"JGJ00001", //设备编号
"sbmc":"设备名称", //设备名称
"zplx":"1" // 抓拍类型(0-无,1-图片,2-录像
"dslx":"短时录像地址", //短时录像
"tp1":"图片1地址", //图片1
"tp2":"图片2地址", //图片2
"tp3":"图片3地址", //图片3
}
```
| 名称 | 含义 | 示例 | 必填 | 类型 | 是否字典 |
| ------- | ------------ | ---------------------------------------------- | -------- | -------- | -------- |
| sjly | 数据来源 | 电子警察/事件监测设备/公路卡口 **见字典2.3.1** | 必填 | string | 是 |
| cjbh | 厂家编号 | 海信/文安/海康/宇视 **见字典2.3.2** | 必填 | string | 是 |
| wfsjly | 违法数据来源 | | 必填 | string | 是 |
| sjlx | 事件类型 | | 必填 | string | 是 |
| task_id | 任务id | 口过车任务 | 否 | string | 否 |
| tdbh | 通道编号 | | 是 | string | 否 |
| cjdbh | 采集点编号 | | 必填 | string | 否 |
| cjdz | 采集地址 | | 必填必填 | string | 否 |
| cjsj | 采集时间 | | 必填 | datetime | 否 |
| cjjg | 采集机关 | | 必填 | string | 否 |
| sbbh | 设备编号 | JGJ00001 | 必填 | string | 否 |
| sbmc | 设备名称 | 设备1 | 必填 | string | 否 |
| zplx | 抓拍类型 | | 必填 | string | 是 |
| dslx | 短时录像 | | 否 | string | 否 |
| tp1 | 图片1 | | 必填 | string | 否 |
| tp2 | 图片2 | | 必填 | string | 否 |
| tp3 | 图片3 | | 必填 | string | 否 |
# 2. 数据库设计
## 2.1 交通类型数据
### 2.1.1 卡口过车数据表 tb_checkpoint_vehicle
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ----------- | ------------ | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | varchar2 | 5 | |
| sjly | 数据来源 | 是 | varchar2 | 5 | |
| task_id | 任务id | 是 | varchar2 | 50 | |
| kkbh | 卡口编号 | 否 | varchar2 | 20 | |
| kkmc | 卡口名称 | 否 | varchar2 | 20 | |
| kkfxbh | 卡口方向编号 | 否 | varchar2 | 50 | |
| ddmc | 地点名称 | 否 | varchar2 | 50 | |
| ddbh | 地点编号 | 否 | varchar2 | 50 | |
| xsfxbh | 行驶方向编号 | 否 | varchar2 | 50 | |
| sbbh | 设备编号 | 否 | varchar2 | 20 | |
| sbmc | 设备名称 | 否 | varchar2 | 20 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| csys | 车身颜色 | 否 | varchar2 | 5 | |
| clpp | 车辆品牌 | 否 | varchar2 | 5 | |
| clzpp | 车辆子品牌 | 否 | varchar2 | 5 | |
| cllx | 车辆类型 | 否 | varchar2 | 5 | |
| clsd | 车辆速度 | 否 | int2 | | |
| hphm | 号牌号码 | 是 | varchar2 | 10 | |
| hpys | 号牌颜色 | 否 | varchar2 | 5 | |
| hpzl | 号牌种类 | 否 | varchar2 | 5 | |
| cdh | 车道号 | 否 | varchar2 | 5 | |
| gcsj | 过车时间 | 是 | timestamp | | |
| gcrq | 过车日期 | 是 | date | | |
| tp1 | 图片1 | 是 | varchar2 | 255 | |
| tp2 | 图片2 | 否 | varchar2 | 255 | |
| tp3 | 图片3 | 否 | varchar2 | 255 | |
| dslx | 短时录像 | 否 | varchar2 | 255 | |
| create_time | 创建时间 | 是 | timestamp | | |
| modify_time | 更新时间 | 是 | timestamp | | |
### 2.1.2 卡口非机动车数据表 tb_checkpoint_xcycle
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ----------- | ------------ | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | varchar2 | 5 | |
| sjly | 数据来源 | 是 | varchar2 | 5 | |
| task_id | 任务id | 是 | varchar2 | 50 | |
| kkbh | 卡口编号 | 否 | varchar2 | 20 | |
| kkmc | 卡口名称 | 否 | varchar2 | 20 | |
| kkfxbh | 卡口方向编号 | 否 | varchar2 | 50 | |
| xsfxbh | 行驶方向编号 | 否 | varchar2 | 50 | |
| ddmc | 地点名称 | 否 | varchar2 | 50 | |
| ddbh | 地点编号 | 否 | varchar2 | 50 | |
| sbbh | 设备编号 | 否 | varchar2 | 20 | |
| sbmc | 设备名称 | 否 | varchar2 | 20 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| csys | 车身颜色 | 否 | varchar2 | 5 | |
| clpp | 车辆品牌 | 否 | varchar2 | 5 | |
| cllx | 车辆类型 | 否 | varchar2 | 5 | |
| clsd | 车辆速度 | 否 | int2 | | |
| hphm | 号牌号码 | 否 | varchar2 | 10 | |
| hpys | 号牌颜色 | 否 | varchar2 | 5 | |
| hpzl | 号牌种类 | 否 | varchar2 | 5 | |
| gxdcbs | 共享单车标识 | 否 | varchar2 | 1 | |
| yygs | 运营公司 | 否 | varchar2 | 20 | |
| zpsj | 抓拍时间 | 是 | timestamp | | |
| zprq | 抓拍日期 | 是 | date | | |
| tp1 | 图片1 | 是 | varchar2 | 255 | |
| create_time | 创建时间 | 是 | timestamp | | |
| modify_time | 更新时间 | 是 | timestamp | | |
### 2.1.3 卡口行人数据表 tb_checkpoint_pedestrian
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ----------- | ------------ | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | varchar2 | 5 | |
| sjly | 数据来源 | 是 | varchar2 | 5 | |
| task_id | 任务id | 是 | varchar2 | 50 | |
| kkbh | 卡口编号 | 否 | varchar2 | 20 | |
| kkmc | 卡口名称 | 否 | varchar2 | 20 | |
| kkfxbh | 卡口方向编号 | 否 | varchar2 | 50 | |
| ddmc | 地点名称 | 否 | varchar2 | 50 | |
| ddbh | 地点编号 | 否 | varchar2 | 50 | |
| sbbh | 设备编号 | 否 | varchar2 | 20 | |
| sbmc | 设备名称 | 否 | varchar2 | 20 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| rlsbbs | 人脸识别标识 | 是 | int2 | | |
| xb | 性别 | 是 | varchar2 | | |
| ssys | 上身颜色 | 否 | varchar2 | 5 | |
| xsys | 下身颜色 | 否 | varchar2 | 5 | |
| dmzbs | 带帽子标识 | 否 | int2 | | |
| zpsj | 抓拍时间 | 是 | timestamp | | |
| zprq | 抓拍日期 | 是 | date | | |
| tp1 | 图片1 | 是 | varchar2 | 255 | |
| create_time | 创建时间 | 是 | timestamp | | |
| modify_time | 更新时间 | 是 | timestamp | | |
### 2.1.4 卡口交通违法数据表 tb_checkpoint_illegal
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ----------- | ------------ | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | varchar2 | 5 | |
| sjly | 数据来源 | 是 | varchar2 | 5 | |
| task_id | 任务id | 是 | varchar2 | 50 | |
| wflx | 违法类型 | 是 | varchar2 | 5 | |
| kkbh | 卡口编号 | 否 | varchar2 | 20 | |
| kkmc | 卡口名称 | 否 | varchar2 | 20 | |
| kkfxbh | 卡口方向编号 | 否 | varchar2 | 50 | |
| ddmc | 地点名称 | 否 | varchar2 | 50 | |
| ddbh | 地点编号 | 否 | varchar2 | 50 | |
| xsfxbh | 行驶方向编号 | 否 | varchar2 | 50 | |
| sbbh | 设备编号 | 否 | varchar2 | 20 | |
| sbmc | 设备名称 | 否 | varchar2 | 20 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| csys | 车身颜色 | 否 | varchar2 | 5 | |
| clpp | 车辆品牌 | 否 | varchar2 | 5 | |
| clzpp | 车辆子品牌 | 否 | varchar2 | 5 | |
| cllx | 车辆类型 | 否 | varchar2 | 5 | |
| clsd | 车辆速度 | 否 | int2 | | |
| hphm | 号牌号码 | 是 | varchar2 | 10 | |
| hpys | 号牌颜色 | 否 | varchar2 | 5 | |
| hpzl | 号牌种类 | 否 | varchar2 | 5 | |
| cdh | 车道号 | 否 | varchar2 | 5 | |
| gcsj | 过车时间 | 是 | timestamp | | |
| gcrq | 过车日期 | 是 | date | | |
| tp1 | 图片1 | 是 | varchar2 | 255 | |
| tp2 | 图片2 | 否 | varchar2 | 255 | |
| tp3 | 图片3 | 否 | varchar2 | 255 | |
| dslx | 短时录像 | 否 | varchar2 | 255 | |
| create_time | 创建时间 | 是 | timestamp | | |
| modify_time | 更新时间 | 是 | timestamp | | |
### 2.1.5 卡口交通流量 tb_checkpoint_flow
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ----------- | ------------ | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | varchar2 | 5 | |
| sjly | 数据来源 | 是 | varchar2 | 5 | |
| task_id | 任务id | 是 | varchar2 | 50 | |
| kkbh | 卡口编号 | 否 | varchar2 | 20 | |
| kkmc | 卡口名称 | 否 | varchar2 | 20 | |
| kkfxbh | 卡口方向编号 | 否 | varchar2 | 50 | |
| ddmc | 地点名称 | 否 | varchar2 | 50 | |
| ddbh | 地点编号 | 否 | varchar2 | 50 | |
| xsfxbh | 行驶方向编号 | 否 | varchar2 | 50 | |
| sbbh | 设备编号 | 否 | varchar2 | 20 | |
| sbmc | 设备名称 | 否 | varchar2 | 20 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| tjlx | 统计类型 | 是 | varchar2 | 5 | |
| cdbh | 车道编号 | 是 | varchar2 | 5 | |
| cyzq | 采样周期 | 是 | int4 | | |
| tjll | 统计流量 | 是 | int4 | | |
| tjdw | 统计单位 | 否 | varchar2 | | |
| cdzyl | 车道占有率 | 否 | float2 | | |
| ctjj | 车头间距 | 否 | float2 | | |
| pdcd | 排队长度 | 否 | int2 | | |
| tjsj | 统计时间 | 是 | timestamp | | |
| tjrq | 统计日期 | 是 | date | | |
| create_time | 创建时间 | 是 | timestamp | | |
| modify_time | 更新时间 | 是 | timestamp | | |
## 2.2 事件类型数据
### 2.2.1 事件数据表 tb_behavior
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ----------- | -------- | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | varchar2 | 5 | |
| sjly | 数据来源 | 是 | varchar2 | 5 | |
| sjlx | 事件类型 | 是 | varchar2 | 20 | |
| task_id | 任务id | 是 | varchar2 | 50 | |
| sbbh | 设备编号 | 否 | varchar2 | 20 | |
| sbmc | 设备名称 | 否 | varchar2 | 20 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| ddbh | 地点编号 | 否 | varchar2 | 50 | |
| ddmc | 地点名称 | 否 | varchar2 | 100 | |
| gcsj | 过车时间 | 是 | timestamp | | |
| gcrq | 过车日期 | 是 | date | | |
| tp1 | 图片1 | 是 | varchar2 | 255 | |
| dslx | 短时录像 | 否 | varchar2 | 255 | |
| create_time | 创建时间 | 是 | timestamp | | |
| modify_time | 更新时间 | 是 | timestamp | | |
## 2.3 交通统计数据
### 2.3.1 卡口车辆天级统计表
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ---------- | -------- | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | int8 | | |
| ddbh | 地点编号 | 是 | varchar2 | 50 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| tjlx | 统计类型 | 是 | varchar2 | 50 | |
| cllx | 车辆类型 | 否 | varchar2 | 50 | |
| num | 统计数量 | 是 | int4 | | |
| countdate | 统计日期 | 是 | date | | |
| createtime | 创建时间 | 是 | timestamp | | |
| modifytime | 修改时间 | 是 | timestamp | | |
### 2.3.2 卡口车辆小时级统计表
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ---------- | -------- | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | int8 | | |
| ddbh | 地点编号 | 是 | varchar2 | 50 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| tjlx | 统计类型 | 是 | varchar2 | 50 | |
| cllx | 车辆类型 | 否 | varchar2 | 50 | |
| num | 统计数量 | 是 | int4 | | |
| countdate | 统计日期 | 是 | date | | |
| counttime | 统计时间 | 是 | timestamp | | |
| createtime | 创建时间 | 是 | timestamp | | |
| modifytime | 修改时间 | 是 | timestamp | | |
### 2.3.3 卡口违法天级统计表
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ---------- | -------- | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | int8 | | |
| ddbh | 地点编号 | 是 | varchar2 | 50 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| wflx | 违法类型 | 是 | varchar2 | 50 | |
| cllx | 车辆类型 | 否 | varchar2 | 50 | |
| num | 统计数量 | 是 | int4 | | |
| countdate | 统计日期 | 是 | date | | |
| createtime | 创建时间 | 是 | timestamp | | |
| modifytime | 修改时间 | 是 | timestamp | | |
### 2.3.4 卡口违法统计小时级表
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ------------ | -------- | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | int8 | | |
| ddbh | 地点编号 | 是 | varchar2 | 50 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| illegal_type | 违法类型 | 是 | varchar2 | 50 | |
| vehicle_type | 车辆类型 | 否 | varchar2 | 50 | |
| num | 统计数量 | 是 | int4 | | |
| countdate | 统计日期 | 是 | date | | |
| counttime | 统计时间 | 是 | timestamp | | |
| createtime | 创建时间 | 是 | timestamp | | |
| modifytime | 修改时间 | 是 | timestamp | | |
## 2.4 事件统计数据
### 2.4.1 事件天级统计表
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ---------- | -------- | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | int8 | | |
| ddbh | 地点编号 | 是 | varchar2 | 50 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| sjlx | 事件类型 | 是 | varchar2 | 50 | |
| num | 统计数量 | 是 | int4 | | |
| countdate | 统计日期 | 是 | date | | |
| createtime | 创建时间 | 是 | timestamp | | |
| modifytime | 修改时间 | 是 | timestamp | | |
### 2.4.2 事件小时级统计表
| 名称 | 说明 | 必填 | 类型 | 长度 | 默认值 |
| ---------- | -------- | ---- | --------- | ---- | ------ |
| id | 唯一id | 是 | int8 | | |
| ddbh | 地点编号 | 是 | varchar2 | 50 | |
| tdbh | 通道编号 | 是 | varchar2 | 50 | |
| sjlx | 事件类型 | 是 | varchar2 | 50 | |
| num | 统计数量 | 是 | int4 | | |
| countdate | 统计日期 | 是 | date | | |
| counttime | 统计时间 | 是 | timestamp | | |
| createtime | 创建时间 | 是 | timestamp | | |
| modifytime | 修改时间 | 是 | timestamp | | |
# 1.繁星分析结果数据结构说明
分析结果是指对视频进行分析后输出的数据内容,所有分析结果都共有的部分称为 **公共部分** ,其余部分根据事件大类(event_cate)和事件类型(event_type)而有所不同,不同部分都包含在 **event_data** 中,以下分别说明
## 1.1. 公共部分
```java
{
"event_cate": "xxx", # 必填,string, 事件大类,目前分为face, behavior, trafficflow
"event_type": "xxx", # 可选,string, 事件类型。
"event_refid": "123456", # 必填,事件的全局唯一refid
"event_dt": "2017-03-20T02:30:23.123", # 必填,日期时间型string,事件发生的时间(UTC时间) ,可能到毫秒,对于过车时间,填写结束时间。
"dev_unid": "xxxx", # 必填,string,即推送数据的设备登录(login) 平台时获取的user_unid
#################################
# (vdev_unid, vchan_duid)vchan_refid都可以唯一标识该视频通道,vchan_refid的填写优先级更高。
# 存在vchan_refid而不存在vchan_duid时,可以把vchan_duid填写为vchan_refid的值。
# vchan_refid用于数据发送设备无法获取vdev_unidvchan_duid的情况。
"vdev_unid": "xxxx", # 可选,string,视频通道所属的设备在平台分配的unid
"vchan_duid": "xxxx", # 可选,string,视频通道在其所在设备的id,只要设备内唯一即可。
"vchan_refid": "xxxx", # 可选,string,外部给出的视频通道参考id,必须在系统内唯一。
##################################
"aux_dev_info": { # 可选,辅助设备信息
"camera_refid": "xxxxx" # 可选,string,相机的硬件id
},
##################################
# 这部分字段目前仅用于繁星,非非繁星任务可不填。
"task_type": "test", # 必填,如果是"test",表示这是一个测试任务,如果是"normal"表示这是一个正式任务,默认normal
"task_id": "xxxxxx", # 必填,任务id,用于把同一个任务的结果一次查询出来。
"subtask_id": "xxxxxx", # 必填,任务id,用于把同一个子任务的结果一次查询出来。
"source_type": "pull_video_stream", # 可选,任务输入源的类型,目前有三种push_pic_filespull_video_streampull_pic_files( 最后一种目前没有用到)
"test_pic_file": "xxxx", # 可选,仅当task_typetest时,才可能有本字段,表示图片测试任务的输入图片的文件名。
"test_frame_no": "xxxx", # 可选,仅当task_typetest时,才可能有本字段,表示视频测试任务的对应帧编号。
##################################
"pics": [ # 可选,图片数组
{
"pic_base64": "xxxx", # src_url二选一,base64编码的图片数据
"src_url": "ftp://xxxx", # pic_base64二选一,原始图片下载地址,也可以是http://
"format": "jpg", # 可选,图像格式,一般用原始文件的扩展名
"pic_unid": "123456", # 可选,平台图片服务器给返回的unid(说明:当使用上传文件的时候客户端事先通过调用平台服务器的上传图片文件接口并返回unid
"shoot_dt": "xxxx", # 可选,拍摄时间,UTC
"width": 1920, # 可选,图片宽度
"hight": 1080, # 可选,图片高度
"ofilename": "xxxx", # 可选,图片的原始文件名
"type": "xxx", # 可选,图像类型,目前用于人脸抓拍机,head(头像), body(全身)
"object_rect": { # 可选,该值为目标物体对应当前图片的坐标位置
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
},
"feature_rect": { # 可选,该值为特征识别对应当前图片的坐标位置
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
}
},
...
],
"video": [ # 可选,录像数组
{
"video_base64": "", # src_url二选一,base64编码后的录像文件数据
"src_url": "ftp://xxx.avi", # video_base64二选一,原始录像下载地址,也可以是http://
"start_dt": "2017-03-20T12:30:08.000", # 必选,录像开始时间
"end_dt": "2017-03-20T12:30:13.000", # 必选,录像结束时间
"format": "avi", # 必选,录像格式
"unid": "123456", # 可选,平台图片服务器给返回的unid(说明:当使用上传文件的时候客户端事先通过调用平台服务器的上传录像文件接口并返回unid
"width": 1920, # 可选,画面宽度
"height": 1080, # 可选,画面高度
"fps": 25, # 可选,帧率
"ofilename": "xxxx.avi" # 可选,录像的原始文件名
},
...
]
"event_data": {...}
}
```
## 1.2. 交通
### 1.2.1 过车事件
- 本事件仅指机动车事件。
- 所有在统一编码服务中已经编码的字段,在本结构中仅仅只有code部分,name从统一编码服务获取,例如车牌颜色,车辆类型等。需要区别的是location,department等字段虽然有编码,但是并非统一标准,在不同的应用系统中有不同的含义,因此不属于统一编码,所以既包含code,又包含name。
`Request Body:`
```java
{
"eventuate": "traffic",
"event_type": "vehicle", # 机动车事件
... # 公共部分, 请参考页首说明
"event_data": {
# 通用信息
"version": "VT-CAM-S2E-1.0.0", # 车辆检测事件结果
"speed": 30.33, # 车辆速度
"model": "1", # 车头或车尾模式: '0':车尾,'1':车头
"start_dt": "2017-03-20T12:30:10.123", # 开始时间
"end_dt": "2017-03-20T12:30:10.123", # 结束时间
"ID": "11111111111", # 该过车信息的ID
# 位置
"location": { # 地点信息
"name": "环洋大厦",
"code": "000000",
"department": { # 管辖部门
"name": "中关村支队",
"code": "123456"
},
"direction": {
"code": "01" # 卡口方向编码, 参考'交通字典 -> 卡口方向'
}
"drive_direction": {
"code": "01" # 行驶方向编码, 参考'交通字典 -> 卡口方向'
}
},
# 设备
"device": {
"name": "TrafficCam1",
"code": "11111",
"ip": "192.168.10.168",
"model": "VT-CAM-S2E",
"host": "1111111111" # 主机编号
},
"lane": { # 车道
"code": "01", # 车道类型编码, 参考'交通字典 -> 车道类型'
"number": 1, # 车道编号
"description": "直行车道"
},
###########################
# 机动车特定信息
"vehicle": { # 必填,车辆
"image": "全景1", # 可选,该值标识信息的检测源图片名称,下同
"global_feature": { # 可选,全局特征
"AlignParameters": [1.1, 2.0, ... ],
"FeatureVector": [1.1, 2.0, ... ]
},
"local_feature": { # 可选,局部特征
"nFeatureCount": 10,
"FeatureVector": [1.3, 1.4]
},
"rect": { # 可选,该值对应检测区域在源图上的相对坐标(0-1000,需自行转换成百分比)
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
},
"plate": { # 可选,车牌
"text": "京A12345",
"head_text": "京",
"width": 100, # 单位像素
"other_text": "A12345",
# "color": "蓝底白字",
"color_code": "2", # 号牌颜色代码,参考'交通字典 -> 号牌颜色'
# "type": "小型汽车号牌",
"type_code": "02", # 号牌类型代码, 参考'交通字典 -> 号牌类型'
"score": 90,
"char_count": 7, # 车牌各个字符的识别得分,越高越准备
"char_score": [88, 90,78,90,99,97,98], # 可选,每个字符的置信度
"image": "全景1",
"rect": { # 可选,车牌的相对位置
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
}
},
"body": { # 可选,车身识别信息
"color": { # 颜色
"code": "01", # 车身颜色, 参考'交通字典 -> 车身颜色'
"score": 99
},
"type": { # 类型
"code": "01", # 车辆类型 参考'交通字典 -> 车辆类型'
"score": 98
},
"logo": { # 可选,车标
"code": "01",
"score": 88,
"image": "全景1",
"rect": {
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
}
},
"sublogo": { # 可选,车辆子品牌
"name": "BMW 530Li(宝马5系)"
}
},
"tracks": [ # 可选,视频测试任务输出的跟踪轨迹
{"frame_no":1, "rect": [1,2,3,4]},
{"frame_no":2, "rect": [1,2,3,4]},
{"frame_no":3, "rect": [1,2,3,4]},
...
]
},
"RefinedFeature": { # 可选,精细化识别
"rAnnualInspection": [[1,2,3,4], [2,3,4,5]], # 年检标,区域挨个赋值,剩余区域全是0, [top, left, bottom, right]
"rDecoration": [[1,2,3,4], [2,3,4,5]], # 摆件,区域挨个赋值,剩余区域全是0
"rPendant": [[1,2,3,4], [2,3,4,5]], # 吊坠,区域挨个赋值,剩余区域全是0
"rSunshading":[[1,2,3,4], [2,3,4,5]] # 遮阳板区域挨个赋值,剩余区域全是0
}
"driver": { # 可选,驾驶员
"holdingchild":{ # 前排是否抱小孩
"score":0,
"state":"0" # -1表示未检测(拒识)1表示前排抱小孩,0表示前排未抱小孩
},
"safe_belt": [ # 安全带检测信息,该数组包含两个值,第一个为主驾驶位,第二个为副驾驶位
{
# 主驾驶、副驾驶的安全带状态 -1表示未检测(拒识)0表示未系安全带,1表示系安全带
"state": "1",
"score": 90
},
{
"state": "1",
"score": 99
}
],
"image": "全景1", # 主驾驶、副驾驶的人脸识别状态(是否有人)
"face": [
{
"state": "1", # -1表示未检测(拒识)0表示未识别(驾驶位上无人),1 表示识别(驾驶位上有人)
"rect": {
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
}
},
{
"state": "0",
"rect": {
"top": 0,
"left": 0,
"bottom": 0,
"right": 0
}
}
],
"phone": { # 可选,驾驶人员是否打电话 -1表示未检测(拒识)0表示未打电话,1表示打电话
"state": "1",
"score": 99
}
},
"illegal": { # 可选,违法信息,如果不违法,本字段可以不出现,也可以出现,但是"state"0
"state": 1, # 该违法信息是否可用
"code": "04", # 违法行为代码, 参考'交通字典 -> 违法行为'
"detail": { # 违法详情,根据code而不同
# 超速违法信息
"limit_speed": 120.0, # 路段限速
"spark_speed": 130.0, # 起拍速度
# 超速比, 只对超速有效
"over_speed_rate": 1.2,
# 闯红灯违法信息, 只对闯红灯有效
"start_dt": "2017-03-20T12:30:10.123", # 红灯开始时间
"end_dt": "2017-03-20T12:31.10.123", # 红灯结束时间
"limit_time": [ # 违法开启检测时间段,
{
"use": 1,
"start_dt": "0000-00-00T07:00:00.000",
"end_dt": "0000-00-00T11:00:00.000"
},
{
"use": 1,
"start_dt": "0000-00-00T12:00:00.000",
"end_dt": "0000-00-00T18:00:00.000"
}
]
}
}
}
}
```
`Response Body:`
``````
{
"ecode":200,
"enote":"xxxx"
}
``````
### 1.2.2.非机动车事件
`Request Body:`
```java
{
"event_cate": "traffic",
"event_type": "xcycle", # 非机动车事件,包括自行车,摩托车,三轮车三种车型
... # 公共部分, 请参考页首说明
"event_data": {
# 通用信息
"version": "VT-CAM-S2E-1.0.0",
"speed": 30.33,
"model": "1",
"start_dt": "2017-03-20T12:30:10.123",
"end_dt": "2017-03-20T12:30:10.123",
"ID": "11111111111",
# 位置
"location": {
"name": "环洋大厦",
"code": "000000",
"department": { # 管辖部门
"name": "中关村支队",
"code": "123456"
},
"direction": {
"code": "01"
}
"drive_direction": {
"code": "01"
}
},
# 设备
"device": {
"name": "TrafficCam1",
"code": "11111",
"ip": "192.168.10.168",
"model": "VT-CAM-S2E",
"host": "1111111111"
},
"lane": { # 车道
"code": "01", # 车道类型编码, 参考'交通字典 -> 车道类型'
"number": 1, # 车道编号
# "description": "直行车道"
},
###########################
# 非机动车特定信息
"xcycle_type": "motorcycle" # 必填,车辆类型,motorcycle, bicycle, tricycle共三种
"xcycle": { # 车辆总体信息
"image": "全景1", # 该值标识信息的检测源图片名称,下同
"rect": { # 该值对应检测区域在源图上的相对坐标(0-1)
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
},
"b_shared_bicycle":0, # 是否是共享单车: 0:不是,1:是
"color": # 共享单车颜色
{
"code": "01",
"score": 99,
"name": "橙"
},
"company":{ #非机动车所属运行商信息
"code":"0" #运营商所属编码, 参考'交通字典 -> 公司类型'
}
},
"driver": { # 驾驶员
"face": [
{
"state": "1", # -1表示未检测(拒识),0表示未识别(驾驶位上无人),1 表示识别(驾驶位上有人)
"rect": { # 人脸位置
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
},
"with_hats": 0, # 是否带着帽子: 0:没戴帽子,1:戴帽子
"sex": "1", # 性别,"1"男,"2"女,"0"不确定
"upbody": {
"code": "01", # 上半身颜色, 参考'交通字典 -> 车身颜色'
"score": 99
},
"lobody": {
"code": "01", # 下半身颜色, 参考'交通字典 -> 车身颜色'
"score": 99
}
}
]
},
"illegal": {
... # 违法信息,参见过车事件
}
}
}
```
`Response Body:`
```
{
"ecode":200,
"enote":"xxxx"
}
```
1.2.3.行人事件
`Request Body:`
```java
{
"event_cate": "traffic",
"event_type": "pedestrian", # 行人事件
... # 公共部分, 请参考页首说明
"event_data": {
# 通用信息
"version": "VT-CAM-S2E-1.0.0",
"speed": 30.33,
"start_dt": "2017-03-20T12:30:10.123",
"end_dt": "2017-03-20T12:30:10.123",
"ID": "11111111111",
# 位置
"location": {
"name": "环洋大厦",
"code": "000000",
"department": {
"name": "中关村支队",
"code": "123456"
},
"direction": {
"code": "01"
}
"drive_direction": {
"code": "01"
}
},
# 设备
"device": {
"name": "TrafficCam1",
"code": "11111",
"ip": "192.168.10.168",
"model": "VT-CAM-S2E",
"host": "1111111111"
},
"lane": { # 车道
"code": "01", # 车道类型编码, 参考'交通字典 -> 车道类型'
"number": 1, # 车道编号
# "description": "直行车道"
},
###########################
# 行人特定信息
"pedestrian": { # 行人总体信息
"image": "全景1",
"rect": {
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
},
"height": 0.0
},
"driver": { # 行人具体信息
"face": [
{
"state": "1", # -1表示未检测(拒识),0表示未识别(驾驶位上无人),1 表示识别(驾驶位上有人)
"rect": { # 人脸位置
"top": 0.1,
"left": 0.1,
"bottom": 0.2,
"right": 0.2
},
"with_hats": 0, # 是否带着帽子: 0:没戴帽子,1:戴帽子
"sex": "1", # 性别,"1"男,"2"女,"0"不确定
"upbody": {
"code": "01", # 上半身颜色, 参考'交通字典 -> 车身颜色'
"score": 99
},
"lobody": {
"code": "01", # 下半身颜色, 参考'交通字典 -> 车身颜色'
"score": 99
}
}
]
},
"illegal": {
... # 违法信息,参见过车事件
}
}
}
```
`Response Body:`
```
{
"ecode":200,
"enote":"xxxx"
}
```
### 1.2.4.交通流量事件
``Request Body:``
```java
{
"event_cate": "traffic",
"event_type": "tflow",
# *公共部分, 请参考页首说明*
"event_data": { # 交通流量事件结果
# 位置
"location": { # 地点信息
"name": "环洋大厦",
"code": "000000",
"department": { # 管辖部门
"name": "中关村支队",
"code": "123456"
},
"direction": {
"code": "01" # 卡口方向编码, 参考'交通字典 -> 卡口方向'
}
"drive_direction": {
"code": "01" # 行驶方向编码, 参考'交通字典 -> 卡口方向'
}
},
# 设备
"device": {
"name": "TrafficCam1",
"code": "11111",
"ip": "192.168.10.168",
"model": "VT-CAM-S2E",
"host": "1111111111" # 主机编号
},
"big_vehicle":[ #机动车(大车
{
"road": "12" # 车道标志符编码
"direction": "01", # 行驶方向编码
"sample_dura": 120, # 采样周期(秒)
"sample_num": 360, # 车流量,辆/采样周期
"velocity": 60, # 流速
"velocity_unit": "km/h", # 流速单位
"occupy": 0.62, # 车道占有率
"distance": 6.5, # 车头间距
"queue_length": 12 # 排队长度
},
...
],
"small_vehicle":[ #机动车(小车
{
"road": "12" # 车道标志符编码
"direction": "01", # 行驶方向编码
"sample_dura": 120, # 采样周期(秒)
"sample_num": 360, # 车流量,辆/采样周期
"velocity": 60, # 流速
"velocity_unit": "km/h", # 流速单位
"occupy": 0.62, # 车道占有率
"distance": 6.5, # 车头间距
"queue_length": 12 # 排队长度
},
...
],
"xcycle":[ #非机动车
{
"road": "12" # 车道标志符编码
"direction": "01", # 行驶方向编码
"sample_dura": 120, # 采样周期(秒)
"sample_num": 360, # 车流量,辆/采样周期
"velocity": 60, # 流速
"velocity_unit": "km/h", # 流速单位
"occupy": 0.62, # 车道占有率
"distance": 6.5, # 车头间距
"queue_length": 12 # 排队长度
},
...
],
"pedestrian":[ #行人
{
"road": "12" # 车道标志符编码
"direction": "01", # 行驶方向编码
"sample_dura": 120, # 采样周期(秒)
"sample_num": 360, # 车流量,辆/采样周期
"velocity": 60, # 流速
"velocity_unit": "km/h", # 流速单位
"occupy": 0.62, # 车道占有率
"distance": 6.5, # 车头间距
"queue_length": 12 # 排队长度
},
...
]
}
}
```
`Response Body:`
```
{
"ecode":200,
"enote":"xxxx"
}
```
### 1.2.5.行人流量事件
`Request Body:`
```java
{
"event_cate": "traffic",
"event_type": "pflow",
# *公共部分, 请参考页首说明*
"event_data": { # 交通流量事件结果
"start_dt": "2017-03-20T12:30:10.123",
"end_dt": "2017-03-20T12:30:10.123",
# 位置
"location": { # 地点信息
"name": "环洋大厦",
"code": "000000",
"department": { # 管辖部门
"name": "中关村支队",
"code": "123456"
},
"direction": {
"code": "01" # 卡口方向编码, 参考'交通字典 -> 卡口方向'
}
"drive_direction": {
"code": "01" # 行驶方向编码, 参考'交通字典 -> 卡口方向'
}
},
# 设备
"device": {
"name": "TrafficCam1",
"code": "11111",
"ip": "192.168.10.168",
"model": "VT-CAM-S2E",
"host": "1111111111" # 主机编号
},
"xcycle":[ #非机动车
{
"regionid": "12" # 增加区域ID 来源于ROI 用于区分行人检测区域
"regionname": "斑马线" # 增加区域名称
"direction": "01", # 行驶方向编码
"sample_dura": 120, # 采样周期(秒)
"sample_num": 360, # 车流量,辆/采样周期
"velocity": 60, # 流速
"velocity_unit": "km/h", # 流速单位
},
...
],
"pedestrian":[ #行人
{
"regionid": "12" # 增加区域ID 来源于ROI 用于区分行人检测区域
"regionname": "斑马线" # 增加区域名称
"direction": "01", # 行驶方向编码
"sample_dura": 120, # 采样周期(秒)
"sample_num": 360, # 车流量,辆/采样周期
"velocity": 60, # 流速
"velocity_unit": "km/h", # 流速单位
},
...
]
}
}
```
`Response Body:`
```
{
"ecode":200,
"enote":"xxxx"
}
```
### 1.2.6 区域人流密度事件
`Request Body:`
```java
{
"event_cate": "traffic",
"event_type": "pdensity",
# *公共部分, 请参考页首说明*
"event_data": { # 交通流量事件结果
"start_dt": "2017-03-20T12:30:10.123",
"end_dt": "2017-03-20T12:30:10.123",
# 位置
"location": { # 地点信息
"name": "环洋大厦",
"code": "000000",
"department": { # 管辖部门
"name": "中关村支队",
"code": "123456"
},
"direction": {
"code": "01" # 卡口方向编码, 参考'交通字典 -> 卡口方向'
}
"drive_direction": {
"code": "01" # 行驶方向编码, 参考'交通字典 -> 卡口方向'
}
},
# 设备
"device": {
"name": "TrafficCam1",
"code": "11111",
"ip": "192.168.10.168",
"model": "VT-CAM-S2E",
"host": "1111111111" # 主机编号
},
"density":[ #人流密度
{
"regionid": "12" # 增加区域ID 来源于ROI 用于区分行人检测区域
"regionname": "斑马线" # 增加区域名称
"persons":"30", # 区域内人数
"postion_list": [ [100, 200],[]], # 人员位置
"head_list":[ [100, 200],[]], # 人头大小 与 人员位置一一对应
"area":"10.0", #区域面积 单位:平方米
"density":"3", # 人员密度 单位单位面积人数
},
...
]
}
}
```
`Response Body:`
```java
{
"ecode":200,
"enote":"xxxx"
}
```
## 1.3 综治
### 1.3.1 事件
`Request Body:`
```java
{
"event_cate": "behavior",
"event_type": "20", #事件code值
... # 公共部分
}
```
| event_type | name |
| :----------------- | :------------------- |
| 0 | 单向越界 |
| 1 | 双向越界 |
| 2 | 进入区域 |
| 3 | 离开区域 |
| 4 | 打架 |
| 5 | 奔跑 |
| 11 | 蒙面 |
| 13 | 异常声音 |
| 14 | 区域徘徊 |
| 19 | 摩的 |
| 20 | 违章摆摊 |
| 21 | 区域排队长度超过阈值 |
| 22 | 区域人数密度超过阈值 |
| 23 | 异物 |
| 24 | 遗撒 |
| 25 | 车辆倒地 |
| 26 | 行人倒地 |
| 32 | 人群聚集 |
| 33 | 安全帽 |
| baitan | 摆摊 |
| biaozhipaiyichang | 标志牌破损 |
| black | 黑名单匹配成功 |
| bycicleruti | 自行车入楼 |
| changtong | 畅通 |
| cheliangzhuiwei | 车辆追尾 |
| daobantingche | 道板停车 |
| daoluposun | 道路破损 |
| duiji | 堆积 |
| feijidongche | 非机动车上高速 |
| flow_num | 客流数量 |
| fogvisibility | 团雾 |
| guanggaopai | 移动广告牌 |
| guardraildaodi | 护栏倒地 |
| handcartruti | 手推车入楼 |
| hengfu | 横幅 |
| huangtuluolu | 黄土裸露 |
| huanxing | 缓行 |
| jinggaidiushi | 井盖丢失 |
| jishui | 积水 |
| lajiduiji | 垃圾堆积 |
| lajiyichu | 垃圾溢出 |
| laneoverflow | 流量超限 |
| laneoveroccupation | 占有率超限 |
| laneovervelocity | 速度过低 |
| motoruti | 电动车入楼 |
| nixing | 逆行 |
| normal | 检测到人脸 |
| pedestrian | 行人上高速 |
| shigongzhandao | 施工占道 |
| tflow | 车流量 |
| vehicle | 过车事件 |
| weidaimao | 未带帽子 |
| white | 白名单匹配成功 |
| wuliaoduiji | 物料堆积 |
| yichangtingche | 异常停车 |
| yongdu | 拥堵 |
| zhuozhuobuguifan | 着装不规范 |
| zixingcheluanfang | 自行车乱放 |
# 2.交通900w相机
## 2.1.协议组成
### 2.1.1. 协议组成
违章卡口数据接入需要三个消息:注册消息、心跳包消息和抓拍数据上传消息。这三种种消息有共同的消息头部分:VNET、VAS。
​ 注册消息除包含消息头VNET、VAS外还需包括VasRegister信息。
​ 心跳包消息只包含VNET、VAS两部分。
​ 违章卡口数据除包含消息头VNET、VAS外还包括HSCResult、LPRRecord两部分。
​ 所有数据都以二进制数据流的方式发送到文安数据接入平台。不同类型的数据(注册消息、违章卡口数据等)其消息头一样,消息内容根据业务有所不同。
### 2.1.2.VNET说明
VNet协议包含8个字节的头,其中包括VNet数据包长度、校验码。
VNet数据包长度为4字节int类型的网络字节序(大端序)。其代表逻辑包(VNET、VAS及后续的业务数据)的长度。
后面4字节也为int类型的网络字节序(大端序),校验方式为“VNet数据包长度 ^ 2005002005”的计算结果。VNet协议仅对长度进行了校验,并没有校验内容。
除VNet结构中的数据外,其他数据采用小端序进行传输。
### 2.1.3.VAS说明
该部分说明了协议的ID、内容及组织格式等信息。
### 2.1.4.VasRegister说明
该部分代表了注册信息,文安设备接入到其他平台时,该注册消息说明了设备的相关信息。
### 2.1.5.HSCSystemTime说明
这个结构是一个客户端发起的校时请求,服务端返回一个系统时间。
### 2.1.6.HSCResult说明
说明了违章卡口数据接入协议的协议号等信息。
### 2.1.7.LPRRecord 说明
该部分包含了抓拍数据的所有字段内容。
## 2.2. 数据上传逻辑
抓拍设备需建立到接入平台的TCP长连接。当抓拍设备连接到接入平台后,首先数据向接入平台注册设备信息,然后才能够发送违章卡口数据。当设备重连后,仍需重新注册设备信息。
每隔30秒钟,抓拍设备要向接入平台发送一次心跳包。
## 2.3.数据结构体
### 2.3.1 结构体
```c++
#ifndef _TRANSMIT_PROTOCOL_H
#define _TRANSMIT_PROTOCOL_H
#include "SCTrafficDef.h"
#define TRANSMIT_1_1_0_2_EVENT_SIZE 31
typedef struct _DSPLPRRecord_TRANSMIT_1_1_0_2
{
int nDirectionNo;
char sDirectionName[SC_MAX_DEC_WORDS_COUNT];
char sDeviceNo[SC_MAX_DEC_WORDS_COUNT];
char sDeviceName[SC_MAX_DEC_WORDS_COUNT];
char sLocationNo[SC_MAX_DEC_WORDS_COUNT];
char sLocationName[SC_MAX_DEC_WORDS_COUNT];
int nMSNo; //VAID
int nImageW; //图像的实际宽高
int nImageH;
int nResultVersion; //结果版本号。
int nVehicleID; //车辆唯一标识。
int nEventID; //事件标识, 一辆车可能有多个事件。
int nRegionID; //区域标识对应与区域设置里面的标识。
int nLaneNo; //车道号, 与区域设置中的一致。
int nLaneType; //车道类型
int nscObjectType; //物体类型。
int eventType[TRANSMIT_1_1_0_2_EVENT_SIZE]; //违章类型。
ScSystemTime lTimeStart; //开始时间
ScSystemTime lTimeEnd; //结束时间
void* pSnapShotBufList[SC_ResultType_Count]; //照片
int nSnapShotLenList[SC_ResultType_Count]; //照片长度
void* pVideoBuf; //录像内容
int nVideoLen; //录像长度
ScSystemTime SnapShotTimeList[SC_ResultType_Count]; //对应每张图片的时间
ScRect rectFVehicle[SC_ResultType_Count]; //图像上车辆位置的相对坐标(原浮点值*1000)
int intVelocity[SC_ResultType_Count]; //即时速度。
ScSystemTime lTimeRedLightBegin; //红灯开始时间
ScSystemTime lTimeRedLightEnd; //红灯结束时间
int bToSave; //是仅仅显示还是保存。
DSPLPRResult scPlateResult; //车牌信息,当bToBeSaved为0时,车牌仅仅参考,1时为最终保存值。
char csVideoFileName[SC_MAX_PATH]; //违法过程录像, 需要Encoder wmpcdcs8.exe
char sGPSData[SC_MAX_PATH];
DSPLimitPeriod scLimitPeriod[3]; //限行时段数据
float fCarLimitVelocity; //小车限速值,蓝白黑牌为小车
float fTruckLimitVelocity; //大车限速值,黄牌车为大货车
ScLPRRecordType nLPRRecordType ; // 结果类型:一般、前后拍主、从
char sLPRRecordID[SC_MAX_DEC_WORDS_COUNT] ; // 字符串,唯一标识一个结果,用于前后拍时主从相机结果对应
ImagePropertyInfo arrImageInfo[SC_ResultType_Count][16] ; // 图片信息
char szCameraModel[20] ; // 相机型号字段
}DSPLPRRecord_TRANSMIT_1_1_0_2;
typedef struct _DSPLPRRecord_TRANSMIT_1_1_0_4
{
int nDirectionNo;
char sDirectionName[SC_MAX_DEC_WORDS_COUNT];
char sDeviceNo[SC_MAX_DEC_WORDS_COUNT];
char sDeviceName[SC_MAX_DEC_WORDS_COUNT];
char sLocationNo[SC_MAX_DEC_WORDS_COUNT];
char sLocationName[SC_MAX_DEC_WORDS_COUNT];
int nMSNo; //VAID
int nImageW; //图像的实际宽高
int nImageH;
int nResultVersion; //结果版本号。
int nVehicleID; //车辆唯一标识。
int nEventID; //事件标识, 一辆车可能有多个事件。
int nRegionID; //区域标识对应与区域设置里面的标识。
int nLaneNo; //车道号, 与区域设置中的一致。
int nLaneType; //车道类型
int nscObjectType; //物体类型。
int eventType[31]; //违章类型。
ScSystemTime lTimeStart; //开始时间
ScSystemTime lTimeEnd; //结束时间
void* pSnapShotBufList[SC_ResultType_Count]; // 照片
int nSnapShotLenList[SC_ResultType_Count]; //照片长度
ScSystemTime SnapShotTimeList[SC_ResultType_Count]; //对应每张图片的时间
ScRect rectFVehicle[SC_ResultType_Count]; //图像上车辆位置的相对坐标(原浮点值*1000)
int intVelocity[SC_ResultType_Count]; //即时速度。
ScSystemTime lTimeRedLightBegin; //红灯开始时间
ScSystemTime lTimeRedLightEnd; //红灯结束时间
int bToSave; //是仅仅显示还是保存。
DSPLPRResult scPlateResult; //车牌信息,当bToBeSaved为0时,车牌仅仅参考,1时为最终保存值。
char csVideoFileName[SC_MAX_PATH]; //违法过程录像, 需要Encoder wmpcdcs8.exe
char sGPSData[SC_MAX_PATH];
DSPLimitPeriod scLimitPeriod[3]; //限行时段数据
float fCarLimitVelocity; //小车限速值,蓝白黑牌为小车
float fTruckLimitVelocity; //大车限速值,黄牌车为大货车
ScLPRRecordType nLPRRecordType ; // 结果类型:一般、前后拍主、从
char sLPRRecordID[SC_MAX_DEC_WORDS_COUNT] ; // 字符串,唯一标识一个结果,用于前后拍时主从相机结果对应
ImagePropertyInfo arrImageInfo[SC_ResultType_Count][16] ; // 图片信息
char szReserve1[20] ; //预留字段,暂时未赋值
void *pVideoBuf; //短时录像内容
int nVideoLen; //短时录像长度
int nVideoWidth; //短时录像宽度
int nVideoHeight; //短时录像高度
int nVideonFramerate; //短时录像帧率
char szUserID[512]; //用户代码
char szDepartmentID[512]; //管辖部门ID
char szDataSource[512]; //数据来源
char szInputPeople[512]; //录入人
int nReserve;
ScSystemTime stReserve;
}DSPLPRRecord_TRANSMIT_1_1_0_4;
typedef struct _DSPLPRRecord_TRANSMIT_1_1_0_8
{
char Devicetype[16]; //设备类型
char szHostID[32]; //主机编号(可以是一级或NDR的IP信息)
char szHostDeviceType[16]; //主机设备类型
char szIP[16]; //设备IP(前端抓拍机)
char szDeviceModel[32]; //设备型号
char sProjectVersion[64]; //文安产品版本号
char sSoftVersion[32]; //软件版本号
char sHardWareVersion[32]; //硬件版本号
char sAlgVervion[32]; //算法版本号
int nDirectionNo; //方向编号
char sDirectionName[256]; //方向名称
char sDeviceNo[256]; //设备编号
char sDeviceName[256]; //设备名称
char sLocationNo[256]; //地点编号
char sLocationName[256]; //地点名称
int nMSNo; //VAID
int nImageW; //原始图像的实际宽高
int nImageH;
int nResultVersion; //结果版本号。
int nVehicleID; //车辆唯一标识。
int nEventID; //事件标识, 一辆车可能有多个事件。
int nRegionID; //区域标识对应与区域设置里面的标识。
char szLaneNo[16]; //车道号, 与区域设置中的一致。
int nLaneType; //车道类型
char szLaneDescription[32]; //车道描述信息
int nscObjectType; //物体类型。
int eventType; //违章类型。
ScSystemTime lTimeStart; //开始时间
ScSystemTime lTimeEnd; //结束时间
ScSystemTime lTimeRedLightBegin; //红灯开始时间
ScSystemTime lTimeRedLightEnd; //红灯结束时间
int bToSave; //是仅仅显示还是保存。
DSPLPRResult scPlateResult; //车牌信息,当bToBeSaved为0时,车牌仅仅参考,1时为最终保存值。
int intVelocity[6]; //即时速度。
char sGPSData[256];
DSPLimitPeriod scLimitPeriod[3]; //限行时段数据
float fCarLimitVelocity; //小车限速值,蓝白黑牌为小车
float fTruckLimitVelocity; //大车限速值,黄牌车为大货车
void* pSnapShotBufList[6]; // 图片
int nSnapShotLenList[6]; //图片长度
ScSystemTime SnapShotTimeList[6]; //对应每张图片的时间
int nWidths[6]; //图片的宽度
int nHeights[6]; //图片的高度
char szImageType[6][16]; //图片类型(全景1、合成1等等)
ImagePropertyInfo arrImageInfo[6][16] ; // 图片信息
char czPicFileName[6][256]; //图片路径(如果图片只是发布,不发送时使用)
ScRect rectFVehicle[6]; //图像上车辆位置的相对坐标(原浮点值*1000)
ScRect rectFace[6]; //人脸坐标
char szVideoType[8]; //录像类型(avi\mp4等)
void * pVideoBuf; //短时录像内容
int nVideoLen; //短时录像长度
int nVideoWidth; //短时录像宽度
int nVideoHeight; //短时录像高度
int nVideonFramerate; //短时录像帧率
char csVideoFileName[256]; //违法过程录像
ScLPRRecordType nLPRRecordType ; // 结果类型:一般、前后拍主、从
char sLPRRecordID[64] ; // 字符串,唯一标识一个结果,用于前后拍时主从相机结果对应
char szReserve[10][32] ; //预留字段
char szUserID[32]; //用户代码
char szDepartmentID[64]; //管辖部门ID
char szDataSource[128]; //数据来源
char szInputPeople[64]; //录入人
int nReserve;
ScSystemTime stReserve;
}DSPLPRRecord_TRANSMIT_1_1_0_8;
typedef struct _DSPLPRRecord_TRANSMIT_1_1_0_5
{
int nDirectionNo;
char sDirectionName[256];
char sDeviceNo[256];
char sDeviceName[256];
char sLocationNo[256];
char sLocationName[256];
int nMSNo; //VAID
int nImageW; //图像的实际宽高
int nImageH;
int nResultVersion; //结果版本号。
int nVehicleID; //车辆唯一标识。
int nEventID; //事件标识, 一辆车可能有多个事件。
int nRegionID; //区域标识对应与区域设置里面的标识。
int nLaneNo; //车道号, 与区域设置中的一致。
int nLaneType; //车道类型
int nscObjectType; //物体类型。
int eventType[40]; //违章类型。
ScSystemTime lTimeStart; //开始时间
ScSystemTime lTimeEnd; //结束时间
void* pSnapShotBufList[6]; // 照片
int nSnapShotLenList[6]; //照片长度
ScSystemTime SnapShotTimeList[6]; //对应每张图片的时间
ScRect rectFVehicle[6]; //图像上车辆位置的相对坐标(原浮点值*1000)
int intVelocity[6]; //即时速度。
ScSystemTime lTimeRedLightBegin; //红灯开始时间
ScSystemTime lTimeRedLightEnd; //红灯结束时间
int bToSave; //是仅仅显示还是保存。
DSPLPRResult scPlateResult; //车牌信息,当bToBeSaved为0时,车牌仅仅参考,1时为最终保存值。
char csVideoFileName[256]; //违法过程录像, 需要Encoder wmpcdcs8.exe
char sGPSData[256];
DSPLimitPeriod scLimitPeriod[3]; //限行时段数据
float fCarLimitVelocity; //小车限速值,蓝白黑牌为小车
float fTruckLimitVelocity; //大车限速值,黄牌车为大货车
// ADD 新增前后平拍系统 图片信息
ScLPRRecordType nLPRRecordType ; // 结果类型:一般、前后拍主、从
char sLPRRecordID[256] ; // 字符串,唯一标识一个结果,用于前后拍时主从相机结果对应
ImagePropertyInfo arrImageInfo[6][16] ; // 图片信息
char szReserve1[20] ; //预留字段,暂时未赋值
void *pVideoBuf; //短时录像内容
int nVideoLen; //短时录像长度
int nVideoWidth; //短时录像宽度
int nVideoHeight; //短时录像高度
int nVideonFramerate; //短时录像帧率
//add by mengs
char szUserID[512]; //用户代码
char szDepartmentID[512]; //管辖部门ID
char szDataSource[512]; //数据来源
char szInputPeople[512]; //录入人
int nReserve;
ScSystemTime stReserve;
}DSPLPRRecord_TRANSMIT_1_1_0_5;
typedef enum{
enDSPLPRRecord_TRANSMIT_1_1_0_2 = 0,
enDSPLPRRecord_TRANSMIT_1_1_0_4,
enDSPLPRRecord_TRANSMIT_1_1_0_5,
enDSPLPRRecord_TRANSMIT_1_1_0_8,
enSemiStructLPRRecord_1_0_0_1,
enSemiStructLPRRecord_1_0_0_2,//转发原图
enDSPLPRRecord_Max_Cnt
}enumTransmitProtocol;
typedef struct tagTransmitProtocolDescription
{
enumTransmitProtocol enProtocol;
char szName[64];
int nLen;
}TransmitProtocolDescription;
#endif
```
### 2.3.2. VAS
#### 2.3.2.1.文安交通协议版本信息ProtocolDescribeLayer
| 字段类型 | 字段名称 | 字段描述 |
| -------- | --------- | --------------------------------------------- |
| int | nVersion | 版本号,当前为1 |
| int | nPackType | 数据打包格式,1-XML 2-BINARY 3-OTHER。当前为2 |
#### 2.3.2.2文安交通协议消息头信息ProtocolDispatchLayer
| 字段类型 | 字段名称 | 字段描述 |
| -------- | ------------------- | --------------------------- |
| char[64] | szMsgID | 消息ID,唯一 |
| char[32] | szCommand | 消息命令 |
| char[32] | szCategory | 消息类型, 此处为” request” |
| char[32] | szContentStructName | 消息结构体名称 |
| char[32] | szSource | 消息源,可为空 |
| char[32] | szDestination | 消息目的地址,可谓空 |
| char[32] | szReserved | 保留字段,可为空 |
说明:
1、字段szMsgID。该字段为消息ID号,需保证全局唯一。组成方式如下:
生成消息的设备IP-生成时间-七位的自增自然数
如:192.168.1.1-20140909122059754-0000001
2、字段szCommand为消息命令。对于注册消息,命令为“VasRegister”;对于心跳包消息,命令为“Alive”;对于违章抓拍数据消息,命令为“HSCResultCommand”,对于校时信息,命令为“HSCCheckingVasTimeCommand”。
3、字段szContentStructName 为消息结构体名称。对于注册消息,结构体为“VasRegister_V2.0”;对于心跳包消息,结构体名称为“”(空字符串)即可;对于违章抓拍数据消息,结构体为“HSCResultMsgStruct_v1.1”。
### 2.3.3.VasRegister
| 字段类型 | 字段名称 | 字段描述 |
| --------- | -------------- | ------------------------------------------------------------ |
| int | nVaCount | 分析通道数,此处填充为1 |
| int | nLocalPort | 平台反向连接端口号 |
| int | nState | 设备状态,此处为1 |
| char[32] | szVasType | 字符产品类型:相机-CAM,智能终端-ST,NVR-NVR,服务器-SVR,电视墙-VW,解码器-DEC,平台-FLAT,未知-UNK |
| char[64] | szProductModel | 产品型号 |
| char[64] | szDeviceName | 设备名称 |
| char[64] | szDeviceID | 设备ID |
| char[64] | szSerialNum | 设备序列号 |
| char[64] | szNIC | 网卡地址 |
| char[64] | szIP | 设备IP,为抓拍设备IP地址 |
| char[64] | szAnalysisVer | 算法版本号 |
| char[64] | szSoftwareVer | 软件版本号 |
| char[64] | szHardwardVer | 硬件版本号 |
| char[128] | szDescription | 设备描述信息 |
| char[128] | szExtend1 | 扩展字段 1 |
| char[128] | szExtend2 | 扩展字段 2 |
| char[128] | szExtend3 | 扩展字段 3 |
| char[128] | szExtend4 | 扩展字段 4 |
说明:
该数据以结构体VasRegister_MsgStruct_v2_0为基本数据。
### 2.3.4.HSCResult
### 2.3.5.LPRRecord
该数据以DSPLPRRecord_TRANSMIT_1_1_0_8数据为基本数据,其中包含了图片、录像等基本数据
| 字段类型 | 字段名称 | 字段描述 |
| ------------- | ------------- | ------------------------------------------------------------ |
| int | vanum | 版本号,当前为1 |
| int | resulttype | 数据类型。当前为1 |
| unsigned int | nCheckCode | 验证字段,当前不用,可为空 |
| char[32] | szProtocol | 数据协议号,此版本转发协议填写LPR-TRANSMIT-1.1.0.8 |
| int | resultLen | 数据长度 |
| viod* | pResultBuffer | 辅助变量,该指针可以指向结构体,DSPLPRRecord_TRANSMIT_1_1_0_8,注意目前NDR设备发送的数据此字段为无意义的值,LPRRecord接收紧邻排列在本结构体后。 |
#### 2.3.5.1. 文安交通时间ScSystemTime
| 字段类型 | 字段名称 | 字段描述 |
| -------------- | ------------- | -------- |
| unsigned short | wYear | 年 |
| unsigned short | wMonth | 月 |
| unsigned short | wDayOfWeek | 星期 |
| unsigned short | wDay | 日 |
| unsigned short | wHour | 时 |
| unsigned short | wMinute | 分 |
| unsigned short | wSecond | 秒 |
| unsigned short | wMilliseconds | 毫秒 |
#### 2.3.5.2.文安交通矩形坐标ScRect
| 字段类型 | 字段名称 | 字段描述 |
| -------- | -------- | ------------- |
| int | left | 矩形左 横坐标 |
| int | top | 矩形上 纵坐标 |
| int | right | 矩形右 横坐标 |
| int | bottom | 矩形下 纵坐标 |
#### 2.3.5.3.文安交通车牌信息DSPLPRResult
| 字段类型 | 字段名称 | 字段描述 |
| ------------------ | ----------- | ------------------------------------------- |
| int | nCharCount | 车牌字符个数 |
| unsigned short[10] | content | 车牌号码 |
| int[10] | nCharScore | 车牌号码个字符识别分数,可为空 |
| int | nPlateScore | 车牌号码识别分数 |
| int | nPlateColor | 车牌颜色,见附录9.3 |
| int | nPlateType | 车牌类型,见附录9.2 |
| ScRect | rectPlate | 车牌坐标,相对坐标(以1000为基数),见4.4.2 |
| unsigned short[10] | logo | 车标类型 |
| unsigned short[10] | bodyColor | 车身颜色 |
#### 2.3.5.4.文安交通图片属性信息ImagePropertyInfo
| 字段类型 | 字段名称 | 字段描述 |
| -------- | -------- | -------- |
| char[16] | szKey | 属性标签 |
| char[8] | szValue | 属性值 |
#### 2.3.5.5.文安交通抓拍数据信息DSPLPRRecord_TRANSMIT_1_1_0_8
| 字段类型 | 字段名称 | 字段描述 |
| ------------------------ | ------------------- | ---------------------------------------------------------- |
| char[16] | Devicetype | 设备类型 |
| char[32] | szHostID | 主机编号 |
| char[16] | szHostDeviceType | 主机设备类型 |
| char[16] | szIP | 设备IP(前端抓拍机) |
| char[32] | szDeviceModel | 设备型号 |
| char[64] | sProjectVersion | 文安产品版本号 |
| char[32] | sSoftVersion | 软件版本号 |
| char[32] | sHardWareVersion | 硬件版本号 |
| char[32] | sAlgVervion | 算法版本号 |
| int | nDirectionNo | 方向编号 |
| char[256] | sDirectionName | 方向名称 |
| char[256] | sDeviceNo | 设备编号 |
| char[256] | sDeviceName | 设备名称 |
| char[256] | sLocationNo | 地点编号 |
| char[256] | sLocationName | 地点名称 |
| int | nMSNo | VAID |
| int | nImageW | 原始图像的实际宽 |
| int | nImageH | 原始图像的实际高 |
| int | nResultVersion | 结果版本号 |
| int | nVehicleID | 车辆唯一标识 |
| int | nEventID | 事件标识, 一辆车可能有多个事件 |
| int | nRegionID | 区域标识对应与区域设置里面的标识 |
| char[16] | szLaneNo | 车道号, 与区域设置中的一致 |
| int | nLaneType | 车道类型 |
| char[32] | szLaneDescription | 车道描述信息 |
| int | nscObjectType | 物体类型 |
| int | eventType | 违章类型 |
| ScSystemTime | lTimeStart | 开始时间 |
| ScSystemTime | lTimeEnd | 结束时间 |
| ScSystemTime | lTimeRedLightBegin | 红灯开始时间 |
| ScSystemTime | lTimeRedLightEnd | 红灯结束时间 |
| int | bToSave | 是仅仅显示还是保存 |
| DSPLPRResult | scPlateResult | 车牌信息,当bToBeSaved为0时,车牌仅仅参考,1时为最终保存值 |
| int[6] | intVelocity | 即时速度,单位米每小时(m/h),存储在第0位 |
| char[256] | sGPSData | GPS信息 |
| DSPLimitPeriod[3] | scLimitPeriod | 限行时段数据 |
| float | fCarLimitVelocity | 小车限速值,蓝白黑牌为小车 |
| float | fTruckLimitVelocity | 大车限速值,黄牌车为大货车 |
| void *[6] | pSnapShotBufList | 图片 |
| int[6] | nSnapShotLenList | 图片长度 |
| ScSystemTime[6] | SnapShotTimeList | 对应每张图片的时间 |
| int[6] | nWidths | 图片的宽度 |
| int[6] | nHeights | 图片的高度 |
| char[6][16] | szImageType | 图片类型(全景1、合成1等等) |
| ImagePropertyInfo[6][16] | arrImageInfo | 图片信息 |
| char[6][256] | `czPicFileName | 图片路径(如果图片只是发布,不发送时使用) |
| ScRect[6] | rectFVehicle | 图像上车辆位置的相对坐标(原浮点值*1000) |
| ScRect[6] | rectFace | 人脸坐标 |
| char[8] | szVideoType | 录像类型(avi\mp4等) |
| void * | pVideoBuf | 短时录像内容 |
| int | nVideoLen | 短时录像长度 |
| int | nVideoWidth | 短时录像宽度 |
| int | nVideoHeight | 短时录像高度 |
| int | nVideonFramerate | 短时录像帧率 |
| char[256] | csVideoFileName | 违法过程录像 |
| ScLPRRecordType | nLPRRecordType | 结果类型:一般、前后拍主、从 |
| char[64] | sLPRRecordID | 字符串,唯一标识一个结果,用于前后拍时主从相机结果对应 |
| char[10][32] | szReserve | 预留字段 |
| char[32] | szUserID | 用户代码 |
| char[64] | szDepartmentID | 管辖部门ID |
| char[128] | szDataSource | 数据来源 |
| char[64] | szInputPeople | 录入人 |
| int | nReserve | 预留字段 |
| ScSystemTime | stReserve | 预留字段 |
## 2.4.数据类型说明
### 2.4.1基本数据类型
本文中的基本数据类型包括char、int、unsigned int、short int、long、long long、float、double。
​ 其中明码字符串均采用GBK编码。
除本文档中特别说明的地方外,其他各基本字段采用的均是小端模式。以下为各字段的长度(实为32位机器小端模式):
| 数据类型 | 长度(字节) |
| ------------- | ------------ |
| char | 1 |
| int | 4 |
| unsigned int | 4 |
| short int | 2 |
| long | 4 |
| long long | 8 |
| float | 4 |
| double | 8 |
| BOOL | 4 |
### 2.4.2.指针类型
基本数据结构中的各指针长度均为4个字节(实为32位系统平台)。在扁平化的buf结构中,指针当做int类型来用,用于存储相对偏移位置。
### 2.4.3.自定义数据类型
自定义数据类型的长度如下表:
| 数据类型 | 长度(字节) |
| ----------------------------- | ------------ |
| ScSystemTime | 16 |
| ScRect | 16 |
| DSPLPRResult | 132 |
| ImagePropertyInfo | 24 |
| DSPLPRRecord_TRANSMIT_1_1_0_8 | 7540 |
## 2.5.图片数据说明
对于Transmit_1_1_0_8中的图片数据,最多有六个。每个图片信息中的szImageType字段不同,szImageType的取值见附件7.7。
其中的“合成图1”、“合成图2”、“合成图3”为按时间顺序依次抓取的合成图片,“全景1”、“全景2”、“全景3”为按时间顺序依次抓取的全景图片。“特写1”、“特写2”为在其中一张合成图中抠取的车辆特写和车牌特写。且车辆特写和车牌特写必须在同一张合成图中抓取。
全景图与合成图的差别在于合成图已经进行解码、转换等附加的图像操作,接入平台不需要再做处理。
“特写1”、“特写2”的图片buf信息字段,需与抠取特写的合成图中的pSnapShotBufList 字段为同一个对象,在buf数据中需指向相同的地址偏移。
车牌特写相对于对应全景图(用于抠取特写的全景图)的坐标需填充在车牌信息scPlateResult中的rectPlate字段中。在用于抠取特写的合成图需填充,车辆特写在该特写图中的坐标,字段为rectFVehicle。
## 2.6.反馈
### 2.6.1.消息结构体
反馈信息包括Vas和VNet公共头加上消息结构体(总长532字节),消息结构体如下:
struct FeedBackMsg
{
​ int lStatus; // 操作状态
​ char szErrDesc[256]; // 数据, MsgStatusFeedback pData=NULL, 其他为数据
};
FeedBackMsg
| 数据类型 | 长度(字节) |
| --------- | ------------ |
| lStatus | 4 |
| szErrDesc | 256 |
lStatus : 1为成功 0为失败
szErrDesc :失败的描述信息
打包格式同结果打包,Vas信息变更如下:
szCommand : 跟被反馈的消息szCommand 相同
szCategory : "statusfeedback"
szContentStructName : "StatusFeedBackMsg"
校时信息反馈:
​ 前面272字节是vnet+vas,打包方式与上述相同,后面跟一个ScSystemTime结构体,赋值为当前时间,共288字节。另注:也可以返回532字节的普通反馈信息,这样屏蔽校时信息。
## 2.7.客户端与服务端开发指南
### 2.7.1.通信模型
| 客户端操作 | 服务端操作 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| ☞ 发送注册信息<br />☞接收注册反馈<br />☞每30秒发送一次心跳信息,接收反馈<br />☞发送数据<br />☞接收反馈 | ☞接收注册信息,并注册设备<br />☞发送注册反馈<br />☞接收心跳信息,发送反馈<br />☞接收数据处理<br />☞发送数据反馈 |
综合上文协议所述,本协议的网络报文总共有4种:注册报文、心跳报文、数据报文和反馈报文。其中客户端根据要求和需要发送注册、心跳或数据报文,每发一次均接受一次反馈;而服务端负责接受注册、心跳或数据报文,在处理后发送反馈报文。客户端发起报文,由服务端发送反馈客户端接收成功才算一次完整的通信。
注:前面提到的校时协议在某些设备上存在,新开发的客户端无特殊情况无需发送此协议,只需要保证正常的注册、心跳与数据。
### 2.7.2.报文整体内存布局
![image-20200604144121658](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604144121658.png)
### 2.7.3.客户端开发
#### 2.7.3.1. 报文封装
心跳报文,注册报文的结构固定,只需要引用相应的结构体并保持默认的struct对齐就可以直接使用。需要注意填充必要的字段,可空字段需要全部memset为零。
重点在于数据报文的内存排列与偏移量的计算,下面展示LPRRecord的内存布局如何排列:
![image-20200604144542292](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200604144542292.png)
如果紧邻排列,则内存分别如上表格所示,这里需要填充的偏移量有LPRRecord结构内pSnapShotBufList[6]六张图片的偏移量,这里以void *存储,需要将imageBuff_n的初始地址减去LPRRecord的初始地址,然后强制转换为void *存入pSnapShotBufList数组。pSnapShotLenList[6]则分别存储了六张图片的大小(图片可能小于六张,pSnapShotBufList的相应字段置零)。录像内容类似图片将偏移量存储至pVideoBuf即可。
这里一定要注意所有指针都要转换为偏移量。
#### 2.7.3.2.与服务端通信
每个数据包文中VNet长度和校验值必须确认正确并且以大端序发送,如果校验不正确则服务端会忽略之且不发送任何反馈信息,需要客户端自行超时判断。
为了与服务端保持长连接,需要定时发送心跳包,设置一个简单的循环发送线程即可。注意每一次发送消息都要接受反馈以判断通信结果。
### 2.7.4.服务端开发
#### 2.7.4.1.与客户端通信
服务端接受客户端连接后首先接收8个字节的VNet数据,转换字节序后校验和,如果校验失败就关闭这次连接(避免接受无效数据浪费带宽);校验成功后根据VNet中的报文长度接收剩余部分存储至缓冲区。
首先从缓冲区提取出消息头Vas部分,根据消息命令判断是心跳、注册还是数据部分。如果是注册消息则提取相应信息进入注册例程,同时建立相应的计时机制,超时则断开连接;如果是心跳信息则重置计时器,保持与设备的连接。
如果是数据报文,则首先提取HSCResult部分, pResultBuffe有两种处理方式,第一种直接无视其含义,后面结构体紧邻排列,第二种是将pResultBuffer赋值为前面数据包的总长,NDR发送的数据包固定为324字节,这样pResultBuffer就指向了LPRRecord结构体的首地址,解析出LPRRecord结构体后根据resultLen和pResultBuffer指针提取出LPRRecord结构以及图像录像等其余部分,并将这部分缓冲传入到解包例程。
验证通过后开始接收数据包,接收完成后应当立即给客户端反馈消息表明接收成功还是失败(接收超时等网络问题),而不必等待处理结果,即反馈信息不需要通知处理结果。
#### 2.7.4.2.报文解包
相比封装报文而言解包就稍显容易。首先从缓冲区提取出LPRRecord结构,然后根据LPRRecord首地址和图像指针、录像指针将指针字段复位就可以提取相应的字段了。同时注意区分图像类型,“全景x”一般指原始图片,可能需要进行转换,添加字幕等操作;而“合成图x”一般是合成好后的图片,应当不做任何处理直接转存。
## 2.8.附录
### 2.8.1.图片类型
| 代码 | 描述 |
| ---- | ------------- |
| 0 | RGB |
| 1 | YUV420 |
| 2 | BAYER |
| 4 | JPEG |
| 5 | YUV422 |
| 6 | YCbCr_VYUY |
| 7 | GRAY |
| 8 | YUV422PSemi |
| 9 | RGBY |
| 10 | 32BIT |
| 11 | YCbCr422 |
| 12 | YUV420SP_Y_UV |
### 2.8.2.号牌类型
| 代码 | 描述 |
| ---- | ------------------ |
| 0 | 未知号牌 |
| 1 | 大型汽车号牌 |
| 2 | 小型汽车号牌 |
| 3 | 使馆汽车号牌 |
| 4 | 领馆汽车号牌 |
| 5 | 境外汽车号牌 |
| 6 | 外籍汽车号牌 |
| 7 | 摩托车号牌 |
| 8 | 轻便摩托车号牌 |
| 9 | 使馆摩托车号牌 |
| 10 | 领馆摩托车号牌 |
| 11 | 境外摩托车号牌 |
| 12 | 外籍摩托车号牌 |
| 13 | 农用运输车号牌 |
| 14 | 拖拉机号牌 |
| 15 | 挂车号牌 |
| 16 | 教练汽车号牌 |
| 17 | 教练摩托车号牌 |
| 18 | 试验汽车号牌 |
| 19 | 试验摩托车号牌 |
| 20 | 临时入境汽车号牌 |
| 21 | 临时入境摩托车号牌 |
| 22 | 临时行驶车号牌 |
| 23 | 警用汽车号牌 |
| 24 | 警用摩托号牌 |
| 25 | 小型新能源号牌 |
| 26 | 大型新能源号牌 |
| 99 | 其他号牌 |
### 2.8.3.号牌颜色
| 代码 | 描述 |
| ---- | ---------- |
| 0 | 未知 |
| 1 | 黄底黑字 |
| 2 | 蓝底白字 |
| 3 | 黑底白字 |
| 5 | 白底黑字 |
| 6 | 绿底黑字 |
| 7 | 黄绿底黑字 |
| 9 | 其他颜色 |
### 2.8.4.车道类型
| 代码 | 描述 |
| ---- | ------------ |
| 0 | 左转 |
| 1 | 右转 |
| 2 | 直行 |
| 3 | 直左混行 |
| 4 | 直右混行 |
| 5 | 黄线 |
| 6 | 自行车道 |
| 7 | 人行横道 |
| 8 | 公交车道 |
| 9 | 应急车道 |
| 10 | 非机动车道 |
| 11 | 左转弯待停区 |
| 12 | 非大货车车道 |
### 2.8.5车辆类型
| 代码 | 描述 |
| ---- | -------- |
| 0 | 小型车 |
| 1 | 中型车 |
| 2 | 大型车 |
| 3 | 未知车型 |
| 4 | 行人 |
| 5 | 遗撒 |
### 2.8.6.违章类型
| 代码 | 描述 |
| ---- | -------------------------------------- |
| 0 | 正常 |
| 1 | 流量、拥堵时间报警 |
| 2 | 小车走公交车道 |
| 3 | 异常停车 |
| 4 | 禁停区内停车 |
| 5 | 压实线或者黄线 |
| 6 | 逆行 |
| 7 | 违章掉头 |
| 8 | 直行闯红灯 |
| 9 | 左转闯红灯 |
| 10 | 右转闯红灯 |
| 11 | 左右转超过转弯限制线,可能为直行闯红灯 |
| 12 | 机动车占用非机动车道 |
| 13 | 非法改变车道属性,不能右转的车道右转了 |
| 14 | 非法改变车道属性,不能左转的车道左转了 |
| 15 | 行人 |
| 16 | 遗撒 |
| 17 | 交通事故:撞车、翻车、驶出车道 |
| 18 | 绿灯期间,超高速行驶 |
| 19 | 绿灯期间,超低速行驶 |
| 20 | 绿灯期间突然降速行驶 |
| 21 | 超速 |
| 22 | 紧急停车带停车 |
| 23 | 大货车禁行 |
| 24 | 限时单行 |
| 25 | 压白线 |
| 26 | 跨线变道 |
| 27 | 禁止左转 |
| 28 | 禁止右转 |
| 29 | 路口滞留 |
| 30 | 绿灯滞留 |
| 31 | 限号 |
| 32 | 外地车限行 |
| 36 | 未系安全带 |
| 37 | 黄标车禁行 |
| 40 | 缓行 |
| 41 | 畅通 |
| 42 | 直行闯红灯 |
| 43 | 左转闯红灯 |
| 44 | 右转闯红灯 |
| 45 | 超速百分之十到二十 |
| 46 | 超速百分之二十到五十 |
| 47 | 超速百分之五十到七十 |
| 48 | 超速百分之七十以上 |
| 49 | 区间超速百分之十到二十 |
| 50 | 区间超速百分之二十到五十 |
| 51 | 区间超速百分之五十到七十 |
| 52 | 区间超速百分之七十以上 |
| 53 | 黑名单报警 |
| 54 | 大弯小转检测 |
| 55 | 左转机动车未让直行车辆先行 |
| 56 | 不按规定未依次交替驶入 |
| 57 | 不按规定使用远光灯 |
| 58 | 行人闯红灯 |
| 59 | 危险品车辆 |
| 60 | 右转未让非机动车 |
| 61 | 非机动车逆行 |
### 2.8.7.图片内容
| 字符串 | 描述 |
| ------- | ---------------------- |
| 合成图1 | 抓拍车辆的第一张合成图 |
| 合成图2 | 抓拍车辆的第二张合成图 |
| 合成图3 | 抓拍车辆的第三张合成图 |
| 全景1 | 抓拍车辆的第一张全景图 |
| 全景2 | 抓拍车辆的第二张全景图 |
| 全景3 | 抓拍车辆的第三张全景图 |
| 特写1 | 车辆特写 |
| 特写2 | 车牌特写 |
### 2.8.8.车标类型
| 系统代码 | 默认名称 | 备注信息 |
| -------- | -------- | -------- |
| 0 | 未知 | |
| 1 | 大众 | |
| 2 | 现代 | |
| 3 | 丰田 | |
| 4 | 本田 | |
| 5 | 长安 | |
| 6 | 五菱 | |
| 7 | 别克 | |
| 8 | 日产 | |
| 9 | 雪铁龙 | |
| 10 | 奥迪 | |
| 11 | 奇瑞 | |
| 12 | 夏利 | |
| 13 | 起亚 | |
| 14 | 福特 | |
| 15 | 雪佛兰 | |
| 16 | 比亚迪 | |
| 17 | 长城 | |
| 18 | 吉利 | |
| 19 | 铃木 | |
| 20 | 东风风神 | |
| 21 | 马自达 | |
| 22 | 斯柯达 | |
| 23 | 一汽 | |
| 24 | 三菱 | |
| 25 | 宝马 | |
| 26 | 奔驰 | |
| 27 | 标致 | |
| 28 | 海马 | |
| 29 | 哈飞 | |
| 30 | 奔腾 | |
| 31 | 江淮 | |
| 32 | 金杯 | |
| 33 | 中华 | |
| 34 | 昌河 | |
| 35 | 荣威 | |
| 36 | 沃尔沃 | |
| 37 | 帝豪 | |
| 38 | 斯巴鲁 | |
| 39 | 东南 | |
| 40 | 路虎 | |
| 41 | 福田 | |
| 42 | 雷克萨斯 | |
| 43 | 思铭 | |
| 44 | 全球鹰 | |
| 45 | 黄海 | |
| 46 | 纳智捷 | |
| 47 | 欧宝 | |
| 48 | 开瑞 | |
| 49 | 英菲尼迪 | |
| 50 | 众泰 | |
| 51 | 青年莲花 | |
| 52 | 雷诺 | |
| 53 | 凯迪拉克 | |
| 54 | 厦门金龙 | |
| 55 | Jeep | |
| 56 | 双环 | |
| 57 | 陆风 | |
| 58 | 福迪 | |
| 59 | 北汽制造 | |
| 60 | 宝骏 | |
| 61 | 力帆 | |
| 62 | 野马 | |
| 63 | 北京汽车 | |
| 64 | MG | |
| 65 | 中兴 | |
| 66 | 启辰 | |
| 67 | 菲亚特 | |
| 68 | 英伦 | |
| 69 | 江南奥拓 | |
| 70 | 理念 | |
| 71 | 广汽 | |
| 72 | DS | |
| 73 | 华泰 | |
| 74 | 致观 | |
| 75 | 哈弗 | |
| 76 | 江铃 | |
| 77 | 永源 | |
| 78 | 吉奥 | |
| 79 | 瑞麒 | |
| 80 | 保时捷 | |
| 81 | 东风 | |
| 82 | 依维柯 | |
| 83 | 猎豹 | |
| 84 | 宾利 | |
| 85 | 红旗 | |
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!