出入口车牌识别相机
HTTP POST 功能模式 5 说明
V1.12
版本记录
| 版本 | 时间 | 说明 |
| V1.0 | 20190315 | 初始版本 |
| V1.1 | 20190318 | 增加HTTP POST 对接常见问题章节 |
| V1.2 | 20190319 | 增加如何控制软触发问题说明 |
| V1.3 | 20190320 | 删除推送IO 事件章节字段说明中无用的interval 心跳间隔字段说明 |
| V1.4 | 20190809 | 修改相机端参数配置章节:
修改HttpPost 对接常见问题章节:
|
| V1.5 | 20191111 |
|
| 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,所有推送接口
推送识别结果增加车牌类型 |
目录
HttpPost 处理流程
![图片[12]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员](https://blog.sdlinka.com/wp-content/uploads/2025/11/word-image-4550-12.webp)
HTTP服务器
道闸
LED显示屏
相机
控制卡
车辆
喇叭
图 1 HttpPost 推送流程示例图
相机端参数配置
![图片[13]-华夏车牌识别相机HTTP POST 功能模式5说明-停车技术员](https://blog.sdlinka.com/wp-content/uploads/2025/11/word-image-4550-13.webp)
图 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 种自动控制方式可选:
|
识别成功开闸,指识别出车牌才开闸;
全部开闸,指只要有识别,不管是有牌车还是无牌车,都开闸; 反馈开闸,指根据 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”}}
相机收到应答后,会执行软触发,抓拍并识别。
服务器应答后相机无反应
在抓包确保了服务器确实把数据回复相机后,相机无反应,重点检查:
- 应答 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”。
- 应答数据 JSON 格式是否按照协议文档说明。
本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
如果用于其他用途,请购买正版支持作者,谢谢!若您认为「BLOG.SDLINKA.COM」发布的内容若侵犯到您的权益,请联系站长进行删除处理。
本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。



暂无评论内容