文章摘要
还在为车辆识别系统对接效率低、功能局限而烦恼?华夏车牌识别相机HTTP POST模式5最新版1.12协议全面升级,不仅支持车牌识别结果、心跳检测、IO事件等核心数据推送,更提供加密验证、RS485透传、一体机屏显控制等进阶功能。从自动开闸到语音播报,从白名单管理到断网续传,一套协议解决所有停车场管理需求。想要知道如何一次性完成开闸、显示和播报?如何优化服务器应答机制?
— 此摘要由停车技术员AI分析文章内容生成

出入口车牌识别相机

HTTP POST 功能模式 5 说明

V1.12

版本记录

版本 时间 说明
V1.0 20190315 初始版本
V1.1 20190318 增加HTTP POST 对接常见问题章节
V1.2 20190319 增加如何控制软触发问题说明
V1.3 20190320 删除推送IO 事件章节字段说明中无用的interval 心跳间隔字段说明
V1.4 20190809 修改相机端参数配置章节:

  1. 主服务器配置增加示例说明
  2. 备用服务器配置的增加只支持 IP 地址方式的说明修改http 服务器应答章节:
  3. 增加http 应答例子

修改HttpPost 对接常见问题章节:

  1. 增加服务器应答后相机无反应问题说明
V1.5 20191111
  1. 修改推送识别结果内容,增加车辆子品牌字段;
  2. 修改所有推送类型,加上应答说明;
  3. 修改Http 服务器应答,增加IO2 的操作。
V1.6 20200414 增加RS485 接收数据上报接口
V1.7 20201106 修改应答接口名单部分易引起误解的描述
V1.8 20220413 增加 485 上报数据字段说明

增加加密验证接口

V1.9 20220602 修改加密相关接口设备 IP 和设备ID 字段名
V1.10 20230213 POST 推送接口全部加上协议版本号字段

加密验证不成功时,推送结果增加指示字段

V1.11 20230222 版本号字段更新到 1.11

增加定制一体机屏显控制支持

V1.12 20240130 版本号字段更新到 1.12,所有推送接口

推送识别结果增加车牌类型

目录

  1. HttpPost 处理流程 1
  2. 相机端参数配置 1
  3. 模式 5 说明 3
    1. 推送识别结果内容 3
    2. 推送心跳 4
    3. 推送 IO 事件 5
    4. 推送 RS485 接收数据事件 5
    5. 推送加密验证 6
    6. Http 服务器应答 7
  4. 类型定义 10
    1. 车牌类型定义 10
  5. HttpPost 对接常见问题 11
    1. Http 服务器是 ssl 连接的,如何使相机支持 ssl 11
    2. 服务器收不到相机推送的识别结果 11
    3. 如何控制开闸 11
    4. 如何控制显示屏显示 11
    5. 控制开闸、显示和语音播报可以一次完成吗 12
    6. 如何操作相机白名单 12
    7. 如何控制软触发 12
    8. 服务器应答后相机无反应 12

HttpPost 处理流程

图片[1]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[2]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[3]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[4]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[5]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[6]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[7]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[8]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[9]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[10]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[11]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员 图片[12]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员

HTTP服务器

道闸

LED显示屏

相机

控制卡

车辆

喇叭

图 1 HttpPost 推送流程示例图

相机端参数配置

图片[13]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员

图 2 HttpPost 参数配置界面

表 1 HttpPost 参数配置项说明

参数配置项 配置说明 备注
打开 http post 功能 http post 功能的总开关
工作模式 不同模式代表不同的 http post 只提供模式 2 和模式 5 对接,
推送协议格式,目前最新支持是模

式 5

模式 2 还能使用,但后续不再支

持新功能定制,推荐使用模式 5

停车场 ID 用于标识不同的停车场 模式 2 只能输入数字;

模式 5 可以输入数字与字母。

服务器地址、端口、路径 Http 主服务器网络配置,以及推送的路径。服务器地址可以是 IP

地址方式,也可以是域名方式

示例: www.test.com:1000/ais

192.168.55.200:8000/postdir

ssl 连接 使用 SSL 方式连接的开关
发送最大次数 给 Http 服务器推送结果失败时,

最大的重发次数

入口自动开闸 入口开闸自动控制开关。

开关打开后,有 3 种自动控制方式可选:

  1. 识别成功开闸
  2. 全部开闸
  3. 反馈开闸
识别成功开闸,指识别出车牌才开闸;

全部开闸,指只要有识别,不管是有牌车还是无牌车,都开闸;

反馈开闸,指根据 Http 服务器的

反馈结果来开闸。

发送全景图 推送结果大图的开关
发送车牌特写图 推送车牌区域小图的开关
启用备用服务器 备用服务器开关
备用服务器地址 Http 备用服务器地址,只能输入备用服务器的 IP 地址不支持域名方式同时无需输入端口和推送路径,端口和推送路径使用主服务

器的配置

示例: 192.168.55.201
主备服务器推送模式 有两种: 1)全推送

2)主优先

全推送指主备服务器都推送; 主优先指主服务器推送不成功才

推送备用服务器。

断网续传 断网后结果存储于 SD 卡,网络恢复后会重新向Http 服务器推送结

必须相机插有 SD 卡此功能才生效
心跳周期 心跳推送的时间间隔,单位秒。 关闭心跳特殊说明:

模式 5 关闭心跳通过设置值为 0;模式 2 关闭心跳通过关闭断网续

传开关。

IO 事件上报 IO 推送开关
IO 类型 选择需要上报的输入 IO 不同产品型号,IO 数量不同
camid 类型 相机 ID 的类型配置 支持 mac 地址和 uid 两种方式,

不同机型,uid 不一定支持。

模式 5 说明

推送识别结果内容

推送例子

POST <post_path> HTTP/1.1

Host: <post_server_ip>:<post_server_port> Content-Type: application/x-www-form-urlencoded Content-Length: <content_len>

type=online&mode=5&proto_ver=1.12&plate_num= 京

A12345&plate_color= 蓝 色

&plate_type=1&plate_val=true&confidence=25& car_logo= 丰田 & car_sublogo= 卡罗拉

&car_color= 白 色 &vehicle_type= 轿 车 &start_time=1436509947&park_id=2&cam_id=0001aa00000d&cam_ip=192.168.55.100&vdc_ty pe=in&is_whitelist=true&rigger_type=video&encrypt_verify=true&picture=<BASE64 全 景

图>&closeup_pic=<BASE64 车牌特写图>

推送内容字段说明

字段项 说明 备注
type 固定 online 或offline online 表示正常在线传输结果,

offline 表示断网续传结果

mode 协议模式,数字表示 模式 5 以上才有此字段
proto_ver 协议版本号 本文档对应固定为 1.12
plate_num 车牌号码,UTF8 编码
plate_color 车牌底色,UTF8 编码
plate_type 车牌类型,整形数字表示 详见 4.1 车牌类型定义
plate_val 虚假车牌信息,true 表示真牌,false 表示虚假

车牌

confidence 置信度,范围:0-28
car_logo 车辆品牌,UTF8 编码
car_sublogo 车辆子品牌,UTF8 编码
car_color 车辆颜色,UTF8 编码
vehicle_type 车辆类型,UTF8 编码
start_time 车牌识别时间,1970/01/01 到现在的秒数目
park_id 车场 ID,最大支持 60 个字符 只支持英文、数字
cam_id 相机 ID 相机 ID 号根据配置决定是使用

MAC 还是 UID

cam_ip 相机 IP
vdc_type 出入口类型,in 表示入口,out 表示出口
is_whitelist 是否是白名单车辆,true 表示白名单,false 表

示非白名单

triger_type video 表示视频触发,hwtriger 表示地感触发,
swtriger 表示软触发
encrypt_verify 加密相机验证是否成功, true 表示验证通过,

false 表示验证不通过

非必填
picture 全景图,BASE64 编码 为避免Http 传输时URL 编码意外改变图片的 BASE64 编码,作了特殊的替换:‘+’替换为’-‘,’/’替

换为’_’,’=’替换为’.’

closeup_pic 车牌特写图,BASE64 编码 为避免Http 传输时URL 编码意外改变图片的 BASE64 编码,作了特殊的替换:‘+’替换为’-‘,’/’替

换为’_’,’=’替换为’.’

推送应答

参考 Http 服务器应答章节。

推送心跳

推送例子

POST <post_path> HTTP/1.1

Host: <post_server_ip>:<post_server_port> Content-Type: application/x-www-form-urlencoded Content-Length: <content_len>

type=heartbeat&mode=5&proto_ver=1.12&interval=10&park_id=2&cam_id=0001aa00000d&ca m_ip=192.168.55.100

推送内容字段说明

字段项 说明 备注
type 固定 heartbeat 表示是心跳
mode 协议模式,数字表示 模式 5 以上才有此字段
proto_ver 协议版本号 本文档对应固定为 1.12
interval 心跳间隔,单位秒
park_id 车场 ID,最大支持 60 个字符 只支持英文、数字
cam_id 相机 ID 相机 ID 号根据配置决定是使用

MAC 还是 UID

cam_ip 相机 IP

推送应答

参考 Http 服务器应答章节。

推送IO 事件

推送例子

POST <post_path> HTTP/1.1

Host: <post_server_ip>:<post_server_port> Content-Type: application/x-www-form-urlencoded Content-Length: <content_len>

type=ioinput&mode=5&proto_ver=1.12&park_id=2&cam_id=0001aa00000d&vehicle_type=轿车 &ionum=1&iostatus=0&start_time=1436509947

推送内容字段说明

字段项 说明 备注
type 固定 ioinput 表示是 IO 事件上报
mode 协议模式,数字表示 模式 5 以上才有此字段
proto_ver 协议版本号 本文档对应固定为 1.12
park_id 车场 ID,最大支持 60 个字符 只支持英文、数字
cam_id 相机 ID 相机 ID 号根据配置决定是使用

MAC 还是 UID

vehicle_type 车辆类型,UTF8 编码
ionum 输入 IO 口 不同型号设备,IO 数量不同,输入 IO 口取值范围不同,如二输入

设备是 1-2,四输入设备是 1-4

iostatus IO 状态,0/1
start_time 状态变化时间,1970/01/01 到现在的秒数目

推送应答

参考 Http 服务器应答章节。

推送 RS485 接收数据事件

推送例子

POST <post_path> HTTP/1.1

Host: <post_server_ip>:<post_server_port> Content-Type: application/x-www-form-urlencoded Content-Length: <content_len>

type=rs485datain&mode=5&proto_ver=1.12&park_id=2&cam_id=0001aa00000d&cam_ip=192.1 68.55.100&start_time=1436509947&num=2&data_type=hex2string&data=AA55010322BF

推送内容字段说明

字段项 说明 备注
type 固定 rs485datain 表示是 RS485 接收数据事件上报
mode 协议模式,数字表示 模式 5 以上才有此字段
proto_ver 协议版本号 本文档对应固定为 1.12
park_id 车场 ID,最大支持 60 个字符 只支持英文、数字
cam_id 相机 ID 相机 ID 号根据配置决定是使用

MAC 还是 UID

cam_ip 相机 IP
start_time 状态变化时间,1970/01/01 到现在的秒数目
num 固定 2 最低配版本相机上不支持该功能
data_type 数据编码类型

hex2string:表示是十六进制数据直接转成字符串形式

只支持 hex2string
data 按 data_type 编码后的 RS485 数据 hex2string 数据类型时,1 字节 16 进制数据会转成 2 个字符,如

0xAF 会转成 2 个字符”AF”

推送应答

参考 Http 服务器应答章节。

推送加密验证

推送例子

POST <post_path> HTTP/1.1

Host: <post_server_ip>:<post_server_port> Content-Type: application/x-www-form-urlencoded Content-Length: <content_len>

type=encrypt_verify&mode=5&proto_ver=1.12&cam_id=0001aa00000d&cam_ip=192.168.55.10 0&cam_time=2022/4/18 15:08:13&action=conn&tmp_str=171abuehhds6833454rfdbhewsf&version=1.0

推送内容字段说明

字段项 说明 备注
type 固定 encrypt_verify 表示加密验证上报
mode 协议模式,数字表示 模式 5 以上才有此字段
proto_ver 协议版本号,POST 协议版本 本文档对应固定为 1.12
cam_id 相机 ID 相机 ID 号根据配置决定是使用

MAC 还是 UID

cam_ip 相机 IP
cam_time 相机时间字符串,格式:2022/4/18 15:08:13
action 动作 conn 表示连接验证
tmp_str 随机串 最长 120 个字符,长度不定
version 加密验证版本号,格式:<大版本>.<小版本> 本版本对应加密方式 1.0

推送应答

参考 Http 服务器应答章节。

Http 服务器应答

Http 应答例子

HTTP/1.1 200

Content-Type:application/json;charset=utf-8 Content-Length:81

{“error_num”:0,”error_str”:”noerror”,”gpio_data”:[{“ionum”:”io1″,”action”:”on”}]}

以上为应答IO 开闸的例子

应答数据 JSON 内容全面例子

注意:下面例子为了文档说明特意把 JSON 格式化展开,实际应答时是不带换行和对齐的压缩 JSON 内容。

{

“error_num”:0, “error_str”:”error info”,

“gpio_data” :

[

{

“ionum”:”io1″,

“action” : “on”

},

{

“ionum”:”io2″,

“action” : “on”

}

],

“rs485_data” : [

{

“encodetype” : “hex2string”,

“data” : “AA55016400260009010002004343434343C5F0AF”

},

{

“encodetype” : “hex2string”,

“data” : “AA551F6400220009D4C1423132333435012AA6AF”

},

{

“encodetype” : “base64”,

“data” : “qlUBZAAmAAkBAAIAQ0NDQ0PF8K8=”

}

],

“triger_data” :

{

“action” : “on”

},

“whitelist_data” : [

{

“Action” : “add”, “PlateNumber” : “粤 B12345”, “Type” : “W”,

“Start” : “2019/01/01 00:00:00”, “End” : “2019/12/31 23:59:59”

},

{

“Action” : “add”, “PlateNumber” : “粤 B12346”, “Type” : “W”,

“Start” : “2019/01/01 00:00:00”, “End” : “2019/12/31 23:59:59”

}

],

“encrypt_verify_rsp” :

{

“sign_str” : “2836XDKSHWUESD”

},

“mlled_data”: {

“show_info”: {

“line_info”: [{

“line_num”: 2,

“line_next”: “请缴费 5 元”, “text_color”: “green”

},{

“line_num”: 3, “line_text”: “津 A12345”, “text_color”: “red”

}

],

“QRcode_info”: {

“url”: “http://xxx.com/pay/d9r58732020092“, “color”: “red”

}

},

“voice_info”: {

“voice_ttstext”: “津A12345+停车 40 分钟+收费 5 元+请扫码缴费”

}

}

}

应答数据 JSON 内容字段说明

字段项 类型 必填项 说明 备注
error_num int 错误码,0 表示无错误,其它

表示有错误

错误码客户自定义
error_str string 错误码说明 说明由客户自定义
encrypt_verify_rsp json 加密验证数据
sign_str string 签名串
gpio_data json 开闸 GPIO 数据
ionum string 输出 IO 口,”io1″固定开闸用,

“io2″为其它用途

action string 输出动作,”on”为开闸
rs485_data json RS485 透传数据
encodetype string 待透传数据的编码类型。 hex2string:表示是十六进制数据直接转成字符串形式 base64:表示是十六进制数据直接进行 BASE64 编码得到的

字符串

推荐使用 hex2string 编码类型。
data string 待透传的数据
triger_data json 软件触发数据
action string 软触发动作,”on”为触发
whitelist_data json 名单数据
Action string 名单动作。

add:表示增加 1 个名单;

update:表示更改 1 个名单;

delete:表示删除 1 个名单;

deleteAll:表示清空所有名单。

PlateNumber string 车牌号码,UTF8 编码
Type string 名单类型。

W:表示白名单;

B:表示黑名单。

Start string 起始时间。

格式:”年/月/日 时:分:秒”

End string 结束时间。

格式:”年/月/日 时:分:秒”

mlled_data json mlled 一体机数据 ML 一体机定制,普通相机

无效

show_info json 屏显信息
line_info jsonarray 行信息
line_num int 行号,从 1 起
line_text string 行内容 UTF8 编码,最长 120byte
text_color string 行内容颜色 red/green/yellow
QRcode_info json 二维码信息
url string 二维码内容 最长 120byte
color string 二维码颜色 red/green/yellow
voice_info json 语音信息
voice_ttstext string tts 语音内容,用+号分隔 UTF8 编码,最长 120byte

类型定义

车牌类型定义

//车牌类型定义 typedef enum

{

ICE_PLATE_UNCERTAIN = 0, //!< 不确定的
ICE_PLATE_BLUE = 1, //!< 蓝牌车
ICE_PLATE_YELLOW = 2, //!< 单层黄牌车
ICE_PLATE_POLICE = 4, //!< 警车
ICE_PLATE_WUJING = 8, //!< 武警车辆
ICE_PLATE_DBYELLOW = 16, //!< 双层黄牌
ICE_PLATE_MOTOR = 32, //!< 摩托车
ICE_PLATE_INSTRUCTIONCAR = 64, //!< 教练车
ICE_PLATE_MILITARY = 128, //!< 军车
ICE_PLATE_PERSONAL = 256, //!< 个性化车
ICE_PLATE_GANGAO = 512, //!< 港澳车(粤 Z 开头)
ICE_PLATE_EMBASSY = 1024, //!< 使馆车
ICE_PLATE_NONGLARE = 2048, //!< 老式车牌(不反光)
ICE_PLATE_AVIATION = 4096, //!< 民航车牌
ICE_PLATE_NEWENERGY = 8192, //!< 新能源车牌

ICE_PLATE_NEWENERGYBIG = 0x00004000,//!< 新能源车牌大车 ICE_PLATE_EMERGENCY = 0x00008000,//!< 应急车 ICE_PLATE_AIRPORT = 0x00010000,//!< 机场车牌

ICE_PLATE_DIAN = 0x00020000,//!< 电字车牌

ICE_PLATE_CHANG = 0x00040000,//!< 厂内车牌

ICE_PLATE_CHANG_V = 0x00080000,//!< 厂/场内车牌(竖) ICE_PLATE_YUEDDDD = 0x00100000,//!< 粤+4 位数字

ICE_PLATE_MACAU = 0x01000000, //!< 澳门本地车牌

ICE_PLATE_HONGKONG = 0x02000000, //!< 香港本地车牌

} ICE_PLATE_TYPE;

HttpPost 对接常见问题

Http 服务器是 ssl 连接的,如何使相机支持 ssl

把相机参数配置中的”ssl 连接“勾选中,默认使用 ssl 端口 443 与 Http 服务器连接。

服务器收不到相机推送的识别结果

可能原因有很多,可从以下几个方面检查:

1、http post 配置使能,服务器网络地址、端口、路径配置正确;

2、相机与服务器网络通路正常,局域网内是否有 IP 冲突,对于外网服务器相机网关和 DNS

是否设置正确;

3、服务器收到相机推送心跳后,要正确回复相机,否则相机进入 http 离线状态,有结果也不会推送。

如何控制开闸

在应答的 content 内容中,加上控制开闸的 json 字段信息,如:

{“error_num”:0,”error_str”:”noerror”,”gpio_data”:[{“ionum”:”io1″,”action”:”on”}]}

如何控制显示屏显示

服务器要根据项目上实际使用的显示屏控制卡协议,组织好待发送的 RS485 数据,通过应答下发给相机,相机收到后会将数据从硬件 RS485 口发送出去,实现 RS485 透传功能。

例如待透传的RS485 数据是”AA5509307208BEEF“,则应答回复内容如下:

{“error_num”:0,”error_str”:”noerror”,”rs485_data”:[{“encodetype”:”hex2string”,”data”:”AA5509

307208BEEF”}]}

控制开闸、显示和语音播报可以一次完成吗

可以,在应答内容中通过 JSON 的组合,可以一次性执行多个操作。例如

第一行显示控制数据是”AA550901010707BEEF“第二行显示控制数据是”AA550902020606BEEF”语音播报控制数据是”AA550603030404BEEF” 应答内容如下:

{“error_num”:0,”error_str”:”noerror”,”gpio_data”:[{“ionum”:”io1″,”action”:”on”}],”rs485_data”:[

{“encodetype”:”hex2string”,”data”:”AA550901010707BEEF”},{“encodetype”:”hex2string”,”data”: “AA550902020606BEEF”},{“encodetype”:”hex2string”,”data”:”AA550603030404BEEF”}]}

如何操作相机白名单

通过应答的JSON 内容,可对相机白名单进行增加、修改、删除、清空操作。

具体通过 Action 字段区分,操作相机白名单可以批量操作,通过 JSON 数组方式把所有的名单组织好,应答下发给相机即可。

注意事项:

白名单操作,特别是批量操作,会占用相机比较长的时间处理,所以不推荐在推送结果、推送 IO 事件上应答,而是在推送心跳的应答中下发。

如何控制软触发

在应答的 content 内容中,加上控制软触发的 json 字段信息,如:

{“error_num”:0,”error_str”:”noerror”,”triger_data”:{“action”:”on”}}

相机收到应答后,会执行软触发,抓拍并识别。

服务器应答后相机无反应

在抓包确保了服务器确实把数据回复相机后,相机无反应,重点检查:

  1. 应答 http 格式是否标准,应该是<http 头>+<content 数据>,应答格式应如下:

HTTP/1.1 200

Content-Type:application/json;charset=utf-8 Content-Length:<content data lenght>

<content data>

其中 http 头最少包含这 3 项(大小写敏感):HTTP/1.1 200、Content-Type 和 Content-Length,这是 http 应答必须的,然后 Content-Length 后的冒号“:”前后都不带空格,同时 http 头与 content 数据之间有 2 个换行”rnrn”。

  1. 应答数据 JSON 格式是否按照协议文档说明。
特别声明: 有些内容设置了积分或者小金额收费,参与下方【限时活动】即可免费获取,目的在于增加网站互动性和站点推广,望参与!
版权声明
资源使用声明:本站资源仅供内部学习研究(含软件设计思想与原理学习),严禁用于商业及其他非法用途。学习研究后请自觉删除,请勿传播,未及时删除造成的一切后果由使用者自行承担。
建议您支持正版软件及原创作者,如需商业使用请购买正版授权。
侵权与反馈:厂商技术资源以及网友投稿等内容本站仅提供信息存储空间,不拥有所有权,不承担相关法律责任。若您认为「停车技术员」发布的内容侵犯您的合法权益,或发现云盘链接失效,请及时联系我们,我们将第一时间处理。


分享是美德,转发时请务必附带本文原始链接,感谢您的理解与支持!
© 版权声明
评论 抢沙发

请登录后发表评论

    暂无评论内容