300万高清车牌识别一体机Http推送
搭建PHP服务器,阿里云虚拟Web空间有限制频繁发送数据的策略,WAMP在Windows下即可。分别建立路径:
/devicemanagement/php/receivedeviceinfo.php;
/devicemanagement/php/plateresult.php;
/devicemanagement/php/gio.php;
/devicemanagement/php/serial.php
300万高清车牌识别一体机设置见图:
plateresult.php源代码
<?php $doc = file_get_contents("php://input");$fp = fopen("snap_shot.txt", "w"); if(!$fp){return; } $flag=fwrite($fp, $doc); //$flag=fwrite($fp, $jsondecode['AlarmInfoPlate']['result']['PlateResult']['imagePath']); if(!$flag) { fclose($fp);return; } fclose($fp);$jsondecode = json_decode($doc,true);if($jsondecode == null){return; }// 小图片 if(isset($jsondecode['AlarmInfoPlate']['result']['PlateResult']['imageFragmentFile'])) {$small_image = $jsondecode['AlarmInfoPlate']['result']['PlateResult']['imageFragmentFile'];if( $small_image != null){$fs_image = fopen("smallimage.jpg", "w");if(!$fs_image){return;}$simage_decoded = base64_decode($small_image);$flag2=fwrite($fs_image, $simage_decoded); fclose($fs_image);} }// 大图片 if(isset($jsondecode['AlarmInfoPlate']['result']['PlateResult']['imageFile'])) {$image = $jsondecode['AlarmInfoPlate']['result']['PlateResult']['imageFile'];if( $image != null){$fp_image = fopen("image.jpg", "w");if(!$fp_image){return;}$image_decoded = base64_decode($image);$flag=fwrite($fp_image, $image_decoded); fclose($fp_image);} }$license = $jsondecode['AlarmInfoPlate']['result']['PlateResult']['license']; $fp_license = fopen("license.txt", "w"); //将W改为a参数 追加保存日志, \r\n 换行 if($fp_license ) { $flag=fwrite($fp_license , $license ); fclose($fp_license); }// 发送开闸命令 //echo '{"Response_AlarmInfoPlate":{"info":"ok","content":"...","is_pay":"true"}}';?>
receivedeviceinfo.php源代码 服务器返回给相机心跳包, 是否在线
<?phpecho '{"heartbeat":{"countid":158,"timeStamp":{"Timeval":{"sec":1571932096,"usec":0}},"serialno":"e0fade1063f0fe93"}}';?>
两个相机,相隔几秒多次发送数据,排除相同的车号,可以利用session判断
<?php
date_default_timezone_set('PRC'); // 中国时区
$timechuo = date('YmdHis');
$license = $_GET["license"];
session_start();
$_SESSION['name'][$license][]=$timechuo;
//unset($_SESSION['license']);
$nameArray=$_SESSION['name'];
//var_dump($chehaoArray[$license]);
//echo json_encode($nameArray);
if( count($nameArray[$license])==1){
echo "<br>只有一个时间,执行任务";
}
if( count($nameArray[$license])>1){
if ($timechuo-$nameArray[$license][count($nameArray[$license])-2]>15){
echo "<br>时间大于15秒,执行任务";
}else{
echo "<br>有两个时间,但相邻时间未超过15秒,放弃<br>";
}
}
相机文档:
相机识别到车号后向服务器推送JSON格式数据,利用PHP 的函数file_get_contents("php://input");接收处理逻辑
{"AlarmInfoPlate":{"channel":0,"deviceName":"default","ipaddr":"192.168.0.100","result":{"PlateResult":{"bright":0,"carBright":0,"carColor":0,"colorType":0,"colorValue":0,"confidence":0,"direction":0,"license":"_无_","location":{"RECT":{"bottom":0,"left":0,"right":0,"top":0}},"timeStamp":{"Timeval":{"sec":1441815171,"usec":672241}},"timeUsed":0,"triggerType":1,"type":0}},"serialno":"e10b2d6c8c07b422361457935b518642"}}
说明: 字段名 |
含义 |
|
AlarmInfoPlate |
推送结果为车牌识别结果 |
|
serialno |
设备序列号 |
|
channel |
默认通道号(预留) |
|
deviceName |
设备名称 |
|
ipaddr |
设备ip地址 |
|
result |
实际数据 |
|
PlateResult |
车牌识别信息 |
|
license |
车牌号字符串,如“京AAAAAA” |
|
colorValue |
(预留) |
|
colorType |
车牌颜色 1:蓝色、2:黄色、3:白色、4:黑色、5:绿色、6:黄绿色 |
|
type |
车牌类型 0:未知车牌:、1:蓝牌小汽车、2::黑牌小汽车、3:单排黄牌、4:双排黄牌、 5:警车车牌、6:武警车牌、7:双层武警车牌、8:单排军车牌、9:双排军车牌、11:新能源小车、12:新能源大车、13:使馆牌、14:领馆牌、15:民航牌 |
|
confidence |
识别结果可行度 1-100 |
|
bright |
(预留) |
|
direction |
车的行进方向(预留) |
|
location |
车牌在图片中位置 |
|
RECT |
位置为矩形区域; left\right\top\bottom:车牌在图片中位置 |
|
timeUsed |
识别所用时间(预留) |
|
carBright |
车身亮度(预留) |
|
carColor |
车身颜色(预留) |
|
timeStamp |
识别结果对应帧的时间戳 |
|
Timeval |
时间戳结构体类型 |
|
sec/usec |
从1970年1月1日到对应帧的秒和毫秒 |
|
triggerType |
当前结果的触发类型:由以下值取并的结果:1:手动抓拍、2:视频抓拍、3:线圈抓拍 |
|
imageFile, imageFileLen |
开启发送图片后,加入"imageFile" :base64编码的图像数据,"imageFileLen" : 图像数据实际长度,这两项内容。 |
|
imageFragmentFile, imageFragmentFileLen |
开启发送小图片后,加入" imageFragmentFile " :base64编码的图像数据," imageFragmentFileLen " : 图像数据实际长度,这两项内容. |
中心服务器回复JSON数据,
{"Response_AlarmInfoPlate":{"info":"ok",//回复ok开闸停止当前车牌信息重传(重传停止控制)"content":"retransfer_stop",//回复retransfer_stop停止当前车牌信息重传(重传停止控制)"is_pay":"true",//回复串口数据可以发送到相应串口“serialData”:[{“serialChannel”:0,“data”:”…”,“dataLen”:123},//数据1,可以有或者没有,收到后将发送到对应串口{“serialChannel”:1,“data”:”…”,“dataLen”:123}//数据2,可以有或者没有,收到后将发送到对应串口]}}
端口触发信息推送
当开启时,当有车检器输入有变化时,会推送json格式数据,内容如下:
{"AlarmGioIn":{"deviceName":"default","ipaddr":"192.168.0.100","result":{"TriggerResult":{"source":0,"value":0}},"serialno":"e10b2d6c8c07b422361457935b518642"}}
其中,TriggerResult中source=0代表是输入1,source=1代表输入2,value表示触发时输入的状态,其他参数的含义和车牌识别结果推送中相同。
中心服务器回复内容:任意内容。
串口数据推送:
//推送串口接收到的数据{“SerialData”:{"channel":0,//通道号,当前为0"serialno":"e10b2d6c8c07b422361457935b518642",//设备序列号"ipaddr":"192.168.0.100"//设备ip“serialChannel”:0,//串口的通道号,通道0为485口1,通道1为485口2“data“:"MTEyMzQ1Njc4OQ==",//串口数据,采用base64编码“dataLen”:10//串口数据实际长度}}
中心服务器回复内容:
{"Response_SerialData":{"info":"ok",//暂时没有实际意义//回复串口数据可以发送到相应串口“serialData”:[{“serialChannel”:0,“data”:”…”,“dataLen”:123},//数据1,可以有或者没有,收到后将发送到对应串口{“serialChannel”:1,“data”:”…”,“dataLen”:123}//数据2,可以有或者没有,收到后将发送到对应串口]}}
心跳包发送
当开启时,会按指定间隔时间,发送心跳包:
{"Heartbeat":{"countid":1,"timeStamp":{"Timeval":{"sec":1441815171,"usec":672241}},"serialno":"e10b2d6c8c07b422361457935b518642"}}
对于心跳包,中心服务器可回复,可不回复 内容:
{"Response_Heartbeat":{"info":"ok",//回复ok开闸//回复串口数据可以发送到相应串口“serialData”:[{“serialChannel”:0,“data”:”…”,“dataLen”:123},//数据1,可以有或者没有,收到后将发送到对应串口{“serialChannel”:1,“data”:”…”,“dataLen”:123}//数据2,可以有或者没有,收到后将发送到对应串口],"shutoff":"ok",//回复ok关闸,可以有或者没有"snapnow":"yes",//回复yes相机抓拍,可以有或者没有}}
1,当超时时间大于心跳时间时,http 连接为长连接
2,重传使能时,重传停止条件为相机端收到车牌信息应答中有”info”:”ok”或者 “content”:“retransfer_stop”
白名单发送 中心请求白名单
{“whiteList”:{“queryNumList”:5000 //请求名单数量,不能为0,最大1000“listPosition”:0 //请求名单的位置}}
相机回应
{“Response_whiteList”:{“totalList”:5000,“queryNumList”:5000,
“listPosition”:0 //从0开始
“data”:[{“carnum”:”粤B88888”,“startime”:”20181029165012”,“endtime”:”20181105165012”},...]}"serialno" : "e10b2d6c8c07b422361457935b518642"}
中心添加白名单,一次可添加最多2000条
{“addWhiteList”:{“add_data”:[{“carnum”:”粤B88888”,“startime”:”20181029165012”,“endtime”:”20181105165012”},...]}}
相机回应
{“addWhiteList”:{“reponse”:”ok”"serialno" : "e10b2d6c8c07b422361457935b518642"}}
中心删除白名单,一次可删除最多10条
{“deleteWhiteList”:{“del_data”:[{“carnum”:“粤B88888”},...]}}
相机回应
{“deleteWhiteList”:{“reponse”:”ok”,"serialno" : "e10b2d6c8c07b422361457935b518642"}}
中心删除全部白名单
{“deleteWhiteListAll”:1}
相机回应
{“deleteWhiteListAll”:{“reponse”:”ok”,"serialno" : "e10b2d6c8c07b422361457935b518642"}}
另一个相机参数
https://www.cnblogs.com/zclaude/p/9781645.html
300万高清车牌识别一体机Http推送相关推荐
- g460 bios 白名单_深睛高清车牌识别相机白名单,智能管理车辆进出_深睛车牌识别...
深睛车牌识别一体机将车牌识别结果跟白名单列表匹配,如果存在于白名单列表,并且符合用户设置的规则(比如时间.特殊车牌等),做出开闸行为. 白名单功能一般用于包月或者包年车,以及内部车,如果符合白名单规则 ...
- 车牌识别系统连不上服务器怎么办,高清车牌识别系统常见故障解决方案
车牌 1.大型汽车号牌:黄底黑字黑框线.中型(含)以上载客.载货汽车和专项作业车:半挂牵引车:电车.前号牌后号牌2.挂车号牌:黄底黑字黑框线.全挂车和不与牵引车固定使用的半挂车.前号牌后号牌3.小型汽 ...
- ocr识别技术-车牌识别一体机的核心关键
关键核心 车牌识别一体机.车牌识别相机.ocr车牌识别 车牌识别相机的应用背景 随着智慧城市的建设,智慧停车场概念进入了大家的视野.传统的停车场管理主要通过给进入停车场的车辆分发IC卡,容易被复制盗用 ...
- 文通车牌识别一体机的优势
开车上路最怕堵车与停车,尤其是停车难着实让人头疼,而智能停车场大受欢迎,出入停车场都不用停车刷卡了,避免了停车场进出口塞车现象的发生,当然这得益于车牌识别一体机,小小神器为何有如此强大功能?在优秀品质 ...
- 连接相机无法识别_车牌识别一体机在汽修门店安装中要注意的事项
针对车牌识别一体机在汽修门店的安装注意事项 目前市场大方向上,不管是汽车4s店做的:门店差异化服务,还是汽修门店做的:会员检测等系统功能都需要用到车牌识别,那让工人每人拿个手机识别车牌肯定是不现实的, ...
- 海康车牌识别一体机控制道闸起落杆(java版)
在开发过程中发现海康的文档中没有对起落杆做很多说明, 也是走了一些弯路 下一篇文章我会把车牌识别一体机的语音播报和LED屏幕显示代码粘贴处理(海康对这一块没有说明,而且有一个更大的坑,详见下一篇) 起 ...
- 车牌识别一体机二次开发
车牌识别一体机挂接分为两种挂接方式:动态库方式挂接和协议方式挂接. 1.动态库方式挂接:动态库方式挂接支持6种开发语言(VC++.Delphi.C#.VB.NET.Linux.Java). 动态库方式 ...
- android图像识别二次开发包,车牌识别一体机二次开发包sdk详细介绍
原标题:车牌识别一体机二次开发包sdk详细介绍 无论是车辆管理系统,洗车房,二手车交易,汽车4S店,称重系统还是考勤系统均能和易泊完美结合. 通过易泊车牌识别一体机抓拍识别车牌号码,将识别的车牌信息传 ...
- 荣耀X20 SE评测:6400万高清美拍 2000元以下真香现场
不久前荣耀召开了新机发布会,正式推出了全新的荣耀50系列机型,其中荣耀50.荣耀50 Pro目前已上市开售,获得了非常不错的市场表现,而定位稍低的荣耀50 SE虽目前还在预售中,但同样吸引了不少用户的 ...
- php中控车牌识别push协议,车牌识别一体机的RS485小接口——实现透明传输!
通常情况下,数据传输给外接设备是通过网线来完成的,当然也可以通过RS485进行传输.RS485,一个小小的通讯接口,却发挥着巨大的作用. 车牌识别相机通过RS485透明传输,可以将网络下发的数据进行转 ...
最新文章
- beeline 将查询的数据导出来_滴滴大数据安全权限实践
- AMS重要的数据结构解析(二):TaskRecord
- MySQL-主从复制监控
- SpringMVC控制器接收不了PUT提交的参数的解决方案
- 数据eda_关于分类和有序数据的EDA
- java input是关键字吗_java 关键字transient
- remove Host from VMware cluster
- excel 制作dashboard_【实例分享】勤哲Excel服务器做影视制作企业管理系统
- 基于DL的目标检测技术:R-CNN、Fast R-CNN、Faster R-CNN
- springboot企业级进销存管理系统
- 城市消防远程监控系统
- win10和win7哪个好用_Win10和Win7到底哪个好用(真实评测)
- mysql根据字母和数字进行排序
- 平均年薪20W,自动化测试工程师这么吃香?
- 祝CSDN2021牛气冲天祝我也拨云散雾
- fudge函数C语言,C语言程序设计-中国大学mooc-题库零氪
- From Big to Small
- 搭建一个代码在线编辑预览工具
- 【笔记】从 Paxos 到 Zookeeper:第七章 Zookeeper 技术内幕之客户端
- Github拉代码太慢怎么办?