臻识/华夏/芊熠/信路通/大华/海康威视车牌识别相机对接

臻识车牌识别相机对接(mqtt协议):
华夏车牌识别相机对接(mqtt协议):
芊熠车牌识别相机对接(mqtt协议):

大华车牌识别相机对接(mqtt协议):

海康威视车牌识别相机对接(otap协议):

车牌识别一体机

MQTT协议开发文档

本手册可能包含技术上不准确的地方或文字错误,欢迎您的纠正。

本手册内容将做定期的更新,更新内容将在本手册的新版本中加入。

我们随时会改进或更新本手册中描述的产品或程序。

版本变更记录

版本号

拟制日期

版本描述

存档编号

1.0.5

  1.  掉线数据缓存

2021-9-30

1.0.4

  1. Io口和485数据上传

2021-5-25

1.0.3

1.支持mqtt+oss

2020-11-11

1.0.1

1. 发布第一个版本

2020-01-04

  • MQTT程序打包
  1. 修改对应包里面的配置文件server_conf.json,将mqtt账户信息填入配置中,如果需要oss上传图片功能,需填入oss账户信息。

{

"server_ip": "yfptos.cn",        // mqtt服务器地址

"server_port": 1883,            // mqtt服务器端口

"mqtt_user_name": "Ca_VZ",     // mqtt用户名

"mqtt_password": "x511!8",      // mqtt 密码

"white_list_mode": 0,           // 白名单模式 0脱机启用, 1启用 2不启用

"oss_endpoint":"",              // oss账号信息(对应阿里云oss的信息)

"oss_access_key_id":"",

"oss_access_key_secret":"",

"oss_bucket_name":"",

"send_plate_result":1,           // 是否发送车牌结果

"send_big_image":0,            // 是否传大图

"send_plate_image":0,          // 是否传小图

"parking_lot_id":0              // 停车场id

}

  1. 打包程序

配置后server_conf.json文件后,启动pack_tool下的PatcketTool.exe程序,点击”添加文件”打包mqtt程序

  1. 在网页中升级打包好的程序UserApp.bin文件,支持mqtt功能

  1. 升级后就支持mqtt功能了

  相机发布mqtt消息的topic为:"/device/push/result"

  相机订阅mqtt消息的topic为:"/device/" + device_sn + "/command"  (device_sn为设备序列号)

车牌识别结果推送

oss图片路径命名规则:

/picture/停车场ID/摄像机SN/日期/当前小时(两位数)/日期_时分秒_随机三位数.jpg

场景图片:/picture/10102/00D150220100081/20200110/14/20200110_144346_632.jpg

车牌图片:/picture/10102/00D150220100081/20200110/14/20200110_144346_632_plate.jpg

数据内容:JSON格式(车牌汉字utf8编码)

{

"AlarmInfoPlate" : {

"channel" : 0,

"deviceName" : "IVS",

"ipaddr" : "192.168.1.100",

"result" : {

"PlateResult" : {

            // 红色字体部分扩展信息

"plate_true_width" : 80,

"plate_distance" : 40,

"is_fake_plate" : 1,

"car_location" :

            {

"RECT" : {

"bottom" : 545,

"left" : 871,

"right" : 1365,

"top" : 391

               }

            },

"car_brand" :

            {

"brand" : 6

"year" : 2018

"type" : 1

            },

"feature_Code" : "asf", // 扩展信息结束

"bright" : 0,

"carBright" : 0,

"carColor" : 0,

"colorType" : 0,

"colorValue" : 0,

"confidence" : 0,

"direction" : 0,

"imagePath" : "/picture/10102/00D150220100081/20200110/14/20200110_144346_632.jpg",

"license" : "_无_",

"location" : {

"RECT" : {

"bottom" : 0,

"left" : 0,

"right" : 0,

"top" : 0

               }

            },

"timeStamp" : {

"Timeval" : {

"decday" : 8,

"dechour" : 10,

"decmin" : 26,

"decmon" : 6,

"decsec" : 28,

"decyear" : 2018,

"sec" : 1441815171,

"usec" : 672241

               }

            },

"timeUsed" : 0,

"triggerType" : 4,

"type" : 0,

"plateid" : 123

         }

      },

"serialno" : "eff50e18-e3d3862b"

   }

}

说明:

字段名称

类型

取值范围

是否必须

描述

AlarmInfoPlate

json

推送结果为车牌识别结果

serialno

string

设备序列号,设备唯一

channel

int

[0, 100]

默认通道号(预留)

deviceName

string

设备名称

ipaddr

string

设备ip地址

result

json

实际数据

PlateResult

json

车牌识别结果信息

license

string

车牌号字符串,如“京AAAAAA”

colorValue

int

[0, 32]

(预留)

colorType

int

[0, 5]

车牌颜色 0:未知、1:蓝色、2:黄色、3:白色、4:黑色、5:绿色

type

int

[0, 19]

车牌类型 0:未知车牌:、1:蓝牌小汽车、2::黑牌小汽车、3:单排黄牌、4:双排黄牌、 5:警车车牌、6:武警车牌、7:个性化车牌、8:单排军车牌、9:双排军车牌、10:使馆车牌、11:香港进出中国大陆车牌、12:农用车牌、13:教练车牌、14:澳门进出中国大陆车牌、15:双层武警车牌、16:武警总队车牌、17:双层武警总队车牌、18:民航车牌、19:新能源车牌

confidence

int

[0, 100]

识别结果可信度 1-100

bright

int

亮度评价(预留)

direction

int

[0, 4]

车的行进方向,0:未知,1:左,2:右,3:上, 4:下

location

json

车牌在图片中位置

RECT

json

位置为矩形区域;left\right\top\bottom:车牌在图片中位置

timeUsed

int

识别所用时间

carBright

int

车身亮度(预留)

carColor

int

车身颜色(预留)

timeStamp

json

识别结果对应帧的时间戳

Timeval

json

时间戳结构体类型

sec

uint32

从1970年1月1日到对应帧的秒

dechour

int

[0, 60]

时间,小时

decmin

Int

[0, 60]

时间分钟

decsec

Int

[0, 60]

时间,秒

decday

Int

[0, 31]

时间,天

decmon

Int

[0, 12]

时间,月

decyear

Int

[0, 2038]

时间,年

usec

uint32

从1970年1月1日到对应帧的毫秒

triggerType

int

[1, 8]

当前结果的触发类型:1:自动触发类型、2:外部输入触发(IO输入)、4:软件触发(SDK)、8:虚拟线圈触发

imagePath

string

识别大图片的路径

plateid

unsigned int

识别结果车牌ID

plate_true_width

int

[10, 1000]

车牌真实宽度

plate_distance

int

[0, 1000]

车牌距离

is_fake_plate

int

[0, 1]

是否伪车牌,0:真实车牌,1:伪车牌

car_location

车头位置

car_brand

车辆品牌

brand

int

[0, 128]

车辆品牌

year

int

[0, 65535]

车辆年份

type

int

[0, 128]

车辆类型

feature_Code

string

长度[0, 20]

车辆特征码

IO口触发信息推送

 开启了外部输入1触发或者2触发,输入有变化时,会推送json格式数据,内容如下:

数据内容:JSON格式(utf8编码)

{   

"AlarmGioIn" :

    {      

"deviceName" : "IVS",      

"ipaddr" : "192.168.109.40",      

"result" :

        {         

"TriggerResult" :

            {

"source" : 3,            .

"value" : 1

            }      

        },     

"serialno" : "d85b1269-8f942256"

    }

}

其中,TriggerResult中:

source=0代表是IO输入1;

source=1代表是IO输入2;

source=2代表是IO输入3;

source=3代表输入TCP 触发输入;

source=4代表是IO输入4;

value表示触发时输入的状态;

其他参数的含义和车牌识别结果推送中相同。

串口数据推送

在相机收到485数据时,会主动推送485数据;

数据内容:JSON格式(utf8编码)

{

"SerialData":{

"channel" : 0, //   通道号,当前为0

"serialno" : "cead13eb-1a198cd7", //设备序列号

"ipaddr" : "192.168.1.100", //  设备ip

"deviceName" : "IVS",       // 设备名称

"serialChannel" : 0, //串口的通道号,通道0为485口1,通道1根据跳线方式为485口2或者232

"data": "Y2guY29tFw==",//串口数据,采用base64编码

"dataLen" : 7//串口数据实际长度

    }

}

三、业务处理

1. 云端业务系统可主动发送指令给mqtt服务器,服务器会转发到相机端,相机执行指令;

2. 相机执行指令后,会返回执行结果。如下所示,开闸命令的结果返回200代表成功,其他值代表失败,失败信息会显示到error_msg字段中。如果发送命令带了msgId,相机端会返回同样的id,用于判断此条开闸命令是否执行成功。

{

"cmd":"info",

"msgId":"2020-4-10 16:23:24 454",

"error_msg":"success",

"ipaddr":"192.168.6.112"

"serialno":"843b0b0c-c6ee1db1",

"state_code":"200"

}

3.1控制IO开闸

{

"Response_AlarmInfoPlate":

    {

"info":"ok",//回复ok开闸

"msgId":"2020-4-10 16:23:24 454",

"delay":1000,// 继电器闭合时间(0-5000)毫秒

"channelNum":0// ....其他数据

    }

}

3.2控制串口推送485数据

可一次下发多条485指令,每条485之间相机会间隔200ms执行,避免485数据粘包。

{

"Response_AlarmInfoPlate":

    {

"serialData" :[

            {

"serialChannel":0,

"data" : "...",

"dataLen" : 123

            },

            { //数据1,可以有或者没有,收到后将发送到对应串口

"serialChannel":1,

"data" : "....",

"dataLen" : 123

            }//数据2,可以有或者没有,收到后将发送到对应串口

        ]

// ....其他数据

    }

}

3.3手动触发识别

{

"Response_AlarmInfoPlate":

    {

"manualTrigger" : "ok",//回复ok进行手动触发

// ....其他数据

    }

}

3.4设置相机时间

时间格式必须为下面所示,不然不会执行成功。

{

"Response_AlarmInfoPlate":

{

"cmd":"set_datetime",

"datetime":"2019-03-07 13:01:02"

}

}

3.5白名单操作

注意最多操作5条白名单数据;

  1.命令使用JSON格式,格式如下

    {

"Response_AlarmInfoPlate": {

        ...// 其他数据

"white_list_operate":{

"operate_type" : 0,

"white_list_data":

                [

                    {

"plate": "A12345",

"enable": 1,

"need_alarm": 1,

"enable_time": "2018-01-01 11:11:11",

"overdue_time": "2018-01-01 11:11:11"

                    },

                    {

"plate": "A12345",

"enable": 1,

"need_alarm": 1,

"enable_time": "2018-01-01 11:11:11",

"overdue_time": "2018-01-01 11:11:11"

                    }

                ]

            }

        }

    }

  2. 字段含义如下:

字段名称

类型

取值范围

是否必须

描述

operate_type

int

[0,1]

操作类型(0:增加,1:删除)

white_list_data

个数[1, 5]

白名单数组:单次操作,最大支持5条

plate

string

长度[7, 15]

车牌(GB2312)

enable

int

[0, 1]

当前名单是否有效(0:无效, 1,:有效)

need_alarm

int

[0, 1]

当前名单是否为黑名单(0:否,1:黑名单)

enable_time

string

固定格式、固定长度:19

当前名单生效时间,如:2018-01-01 11:11:11

overdue_time

string

固定格式、固定长度:19

当前名单过期时间,如:2018-01-01 11:11:11

3.消息示例:

同时增加两条白名单数据(多条数据,格式一致):

第一条没有白名单有效时间,则默认白名单永久有效;

第二条有白名单有效时间,表示当前白名单在这个时间段内有效;

{

"Response_AlarmInfoPlate": {

    ...// 其他数据

"white_list_operate":{

"operate_type" : 0,

"white_list_data":

            [

                {

"plate": "京A12345",

"enable": 1,

"need_alarm": 0

                },

                {

"plate": "川A12345",

"enable": 1,

"need_alarm": 0,

"enable_time": "2018-01-01 11:11:11",

"overdue_time": "2019-01-01 11:11:11"

                }

            ]

        }

    }

}

  1. 删除两白名单的消息示例:

{

"Response_AlarmInfoPlate": {

   ...// 其他数据

"white_list_operate":{

"operate_type" : 1,

"white_list_data":

           [

               {

"plate": "京A12345"

               },

               {

"plate": "川A12345"

               }

           ]

       }

   }

}

  1. 删除全部白名单的消息示例:

{

"Response_AlarmInfoPlate": {

    ...// 其他数据

"white_list_operate":{

"operate_type" : 1,

"white_list_data":

            [

                {

"plate": ""

                }

            ]

        }

    }

}

3.6 控制相机截图

{

"Response_AlarmInfoPlate":

    {

"TriggerImage":"ok",//ok截图

"msgId":"2020-4-10 16:23:24 454",

    }

}

截图命令回复:

{

"cmd":"TriggerImage",

"msgId":"2020-4-10 16:23:24 454",

"error_msg":"success",

"ipaddr":"192.168.6.112"

"serialno":"843b0b0c-c6ee1db1",

"oss_path":"/picture/12/843b0b0c-c6ee1db1/20200905/14/144346_632.jpg",

"state_code":"200"

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值