| 设备 TCP 网络通信协议 |
| 2023/6/8 |
本文档主要描述与相机通信过程中的协议内容,通信模式、通信包结构说明,以及具体的协议类型,协议数据等。
目录
- 通信模式 4
- 通信包结构 4
- 长连接协议 5
- 短连接协议 24
- 设置开关量输出 1 请求 24
- 设置开关量输出 1 应答 24
- 设置开关量输出 2 请求 25
- 设置开关量输出 2 应答 25
- 抓拍(不做车牌识别) 26
- 抓拍(不做车牌识别)应答 26
- 软触发 27
- 软触发应答 27
- RS485 透传串口数据请求 28
- RS485 透传串口数据请求应答 28
- 读出黑白名单请求 29
- 读出黑白名单应答 29
- 添加黑白名单请求 30
- 添加黑白名单应答 30
- 删除黑白名单请求 31
- 删除黑白名单应答 31
- 删除所有黑白名单请求 32
- 删除所有黑白名单应答 32
- 修改黑白名单请求 33
- 修改黑白名单应答 33
- 查找黑白名单请求 34
- 查找黑白名单应答 34
- 设置黑白名单参数请求 35
- 设置黑白名单参数应答 36
- 获取黑白名单参数请求 37
- 获取黑白名单参数应答 37
- RS232 透传串口数据请求 39
- RS232 透传串口数据请求应答 39
- 获取相机 4G 信息请求 40
- 获取相机 4G 信息应答 40
- 设置音量请求 41
- 设置音量请求应答 41
- 获取音量请求 42
- 获取音量请求应答 42
- 读出用户数据 43
- 读出用户数据应答 43
- 获取相机时间 44
- 获取相机时间应答 44
- 设置相机时间 46
- 设置相机时间应答 47
- 获取相机 UID 48
- 获取相机 UID 应答 48
- 获取 HTTP POST 参数请求(模式 5) 49
- 获取 HTTP POST 参数请求(模式 5)应答 49
- 设置 HTTP POST 参数请求(模式 5) 52
- 设置 HTTP POST 参数请求(模式 5)应答 54
- 获取 IO 输入状态 55
- 获取 IO 输入状态应答 55
- 设置开关量输出配置参数请求(onvif 协议) 56
- 设置开关量输出配置参数应答 57
- 以太网协议,设备搜索及跨网段修改 IP 58
修订记录
| 修订日期 | 修订版本 | 修订说明 |
| 2018-08-08 | V1.0.11 |
|
| 2018-11-14 | V1.0.12 |
|
| 2019-05-20 | V1.0.13 |
|
| 2019-09-06 | V1.0.14 |
|
| 2019-09-18 | V1.0.14 |
|
| 2019-09-24 | V1.0.15 |
|
| 2021-06-16 | V1.0.15 |
|
| 2022-08-31 | V1.0.16 |
|
| 2022-09-06 | V1.0.16 |
|
| 2023-04-27 | V1.0.17 |
|
| 2023-06-08 | V1.0.18 | 4. 增加设置开关量输出配置参数的协议 |
| 2023-07-28 | V1.0.19 | 1.更新车牌类型 |
通信模式
TCP协议
![图片[1]-华夏车牌识别相机设备TCP网络通信协议-停车技术员](https://blog.sdlinka.com/wp-content/uploads/2025/11/word-image-4576-1.webp)
服务端
(车牌识别设备)
![图片[2]-华夏车牌识别相机设备TCP网络通信协议-停车技术员](https://blog.sdlinka.com/wp-content/uploads/2025/11/word-image-4576-2.webp)
客户端
客户端与车牌识别设备(服务器)之间通信采用 TCP 协议,端口号:8200。打开道闸及只抓拍的端口号为:8117。
通信包结构
数据在 TCP 连接上传输采用包头加包体的格式
数据包头
包头 32 个字节,数据结构定义如下:可以参考引用 ice_com_type.h 头文件
| typedef unsigned int | ICE_U32; | ||
| typedef struct | |||
| { | |||
| ICE_U32 u32Size; | //!< | 数据包长度 | |
| ICE_U32 u32Type; | //!< | 类型 | |
| ICE_U32 u32Status; | //!< | 状态 | |
| ICE_U32 u32Channel; | //!< | 通道号 | |
| ICE_U32 u32Time; | //!< | 时间 | |
| ICE_U32 u32Date; | //!< | 日期 | |
| ICE_U32 u32Id; | //!< | 标识 | |
| ICE_U32 u32Level; | //!< | 警报级别 | |
} ICE_OPER_DATA_S;
通讯包数据描述
命令格式:
| 包头(32 个字节) | 包体 | |||||||
| 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 命令长度-32字节 |
| 数据包长度(包头
+包体) |
类型 | 状态 | 通道号 | 时间 | 日期 | 标识 | 警报级别 | 命令附加段 |
长连接协议
大致流程如下:
![图片[3]-华夏车牌识别相机设备TCP网络通信协议-停车技术员](https://blog.sdlinka.com/wp-content/uploads/2025/11/word-image-4576-3.webp)
注:协议为长连接,连接成功后,相机端识别数据或者接收到串口数据,即上报给客户端。若要检测相机是否在线,可使用每隔一段时间,发送请求报警数据的请求,来进行检测。
客户端请求接口
报警数据请求
当客户端需要相机端推送数据时,需要向 IPC 设备 8200 端口号发起连接,并发送u32Size 为 32, u32Type 为 0x1007 的数据包。
注意:无需包体
- 请求使用通道 0 发送车牌识别结果(车牌识别结果不拆包)
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
协议类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节序号 | 4 字节标识 |
| 32 | 0x1007 | 0 | 0 | 0 | 0 | 0 | 0 |
- 请求使用通道 1 发送车牌识别结果(车牌识别结果拆包发送)
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
协议类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节序号 | 4 字节标识 |
| 32 | 0x1007 | 0 | 1 | 0 | 0 | 0 | 0 |
- 请求使用通道 1 发送车牌识别结果(车牌识别结果拆包发送),并且需要重传功能
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
协议类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节序号 | 4 字节标识 |
| 32 | 0x1007 | 1 | 1 | 0 | 0 | 0 | 0 |
报警数据应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x1008 的应答,表示请求成功。注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
协议类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节序号 | 4 字节标识 |
| 32 | 0x1008 | 1 | 0 | 0 | 0 | 0 | 0 |
报警数据请求(无需密码,无图片数据)
当客户端需要请求车牌识别结果时,需要向IPC设备8200端口号发起连接,并发送u32Size为32,u32Type为 0x1047的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | ||||
| 4 字节
数据包长度 |
4 字节
协议类型 |
4 字节状态 | 4 字节通道号 | 16 字节密码 |
| 32 | 0x1047 | 0 | 0 | 0 |
报警数据应答(无需密码,无图片数据)
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x1048 的应答,表示请求成功。注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
协议类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节序号 | 4 字节标识 |
| 32 | 0x1048 | 1 | 0 | 0 | 0 | 0 | 0 |
服务端推送接口
新旧协议说明
包头中,“通道号”值为 0 表示老版协议,“通道号”值为 1 表示新版协议,关于新版协议的说明如下:
- 新版协议,相机推送数据采用分包发送的方式。每次发送数据会拆成小包,小包前面有两个字节
0x7e5a,小包结束有两个字节 0x5a7e。一个小包格式为:7e 5a + 包头 + 包体 + 5a 7e
- 包头
| 包头(32 个字节) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节序号 | 4 字节标识 |
| 32+包体长度 | 协议类型 | 状态 | 通道号 | 时间 | 0 | 序号 | 标识 |
- 包头中“状态”字段的值&0x80 不为 0,表示是拆包数据的第一个小包。 包头中“状态”字段的值&0x40 不为 0,表示是拆包数据的最后一个小包。
包头中“状态”字段的值&0xC0 不为 0,表示起始包及结束包,表示只有一包数据。
- 包头中“标识”字段,从开始包开始,是连续递增的,这个“标识”字段不连续就说明丢包了。
车牌识别数据上报
发送报警数据请求,收到报警数据应答后,并且没有断开 tcp 连接时,相机端识别到车牌后,向客户端发送车牌识别数据。
协议类型:0x2002
需要图片的完整包体为(可参考 ice_vdc_result.h):
| 完整包体 | |||||||||||||||||||||
| 136
字 节 |
4
字 节 |
16
字 节 |
4
字 节 |
75
字 节 |
1 字节 | 28
字 节 |
16
字 节 |
12
字 节 |
4
字 节 |
4
字 节 |
32
字 节 |
32
字 节 |
4
字 节 |
160
字 节 |
2
字 节 |
2
字 节 |
4
字 节 |
N
字 节 |
2
字 节 |
2
字 节 |
M
字 节 |
| 预留 | 报警触发类型 | 实时数据抓拍时
间 |
车辆流水号 | 预留 | 是否虚假车牌 | 预留 | 离线数据抓拍时
间 |
预留 | 车辆方向 | 车辆速度 | 车辆颜色 | 车牌颜色 | 是否存在车牌 | 车牌信息 | 图片宽度 | 图片高度 | 图片长度 N | 抓拍图数据 | 数据类型 | 数据长度 M | 数据 |
| 2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
| 年 | 月 | 星
期几 |
日 | 时 | 分 | 秒 | 毫
秒 |
车牌信息:
| 16 字
节 |
92 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
32 字
节 |
| 车牌
号 |
预留 | 车牌
置信度 |
预留 | 车牌
颜色 |
车牌
类型 |
车身
颜色 |
预留 |
可参考结构体:
typedef struct
{
ICE_S32 s32EventCode; ICE_S32 s32LandId;
//!< 事件码
//!< 车道ID
#ifdef _WIN64
ICE_CHAR cFileName[120];
//!< 文件名
#else
ICE_CHAR cFileName[124]; //!< 文件名
#endif
ICE_VBR_RESULT_S *pstVbrResult; //!< 车款结果,需要重新计算指针位置,请参考Demo
ICE_VDC_ALARM_TYPE s32AlarmType; //!< 报警触发类型
ICE_SYSTEMTIME_S stLiveCapTime; //!< 实时数据抓拍时间
ICE_U32 u32SerialNum; //!< 车辆流水号
ICE_U32 u32PlateWidth; //!< 实际车辆宽度
ICE_U32 u32ExtSnapPixel; //!< 抓拍图外osd像素高度
ICE_Phone_Mac_List* pPhoneMacList; //!< 接收的终端mac列表
#ifndef _WIN64
ICE_CHAR cPhoneMacListReserve[4]; //!< mac列表位指针兼容预留 #endif
ICE_U32 u32PictureHashID; //!< 图片哈希ID
ICE_U32 u32Encrypt; //!< 车牌号码是否加密
ICE_U8 u8PlateTea; //!< 车牌号码加密的最后一个字符
| ICE_CHAR cReserve[50]; | //!< | 预留 |
| ICE_U8 u8FalsePlate; | //!< | 是否虚假车牌 |
| ICE_S32 s32TripWireEventCode;
绊线触发;:绊线触发,但使用当前图像抠图) |
//!< | 绊线事件码(:无事件;:缓存图像;: |
| ICE_S32 s32VehicleIntensity; ICE_CHAR cVehicleType[12];
ICE_VCR_VEHICLECOLOR_E enVehicleColor; |
//!<
//!< |
车身亮度
//!< 车辆类型(字符串方式)车身颜色 |
| ICE_VDC_VEHICLETYPE_E s32VehicleType; | //!< | 车辆类型 |
| ICE_SYSTEMTIME_S stCapTime; | //!< | 抓拍时间 |
| ICE_S32 s32HaveCloseUp; | //!< | 是否有特写图像 |
| ICE_RECT_S stVehilceRect; | //!< | 车辆外框 |
| ICE_VDC_VERHICLE_DIR_E enDirect; | //!< | 车辆方向 |
| ICE_FLOAT fSpeed; | //!< | 车辆速度(单位:千米/小时) |
| ICE_CHAR cVehicleColor[32]; | //!< | 车辆颜色 |
| ICE_CHAR cPlateColor[32]; | //!< | 车牌颜色 |
| ICE_S32 s32HavePlate; | //!< | 是否存在车牌 |
| ICE_VLPR_OUTPUT_S stPlateInfo; | //!< | 车牌信息 |
| ICE_S16 s16PicWidth; | //!< | 图片宽度 |
| ICE_S16 s16PicHeight; | //!< | 图片高度 |
| ICE_S32 s32PicDataLen; | //!< | 图片大小 |
| ICE_S8 as8PictureData[1024*1024]; | //!< | 图片数据 |
}ICE_VDC_PICTRUE_INFO_BUFFER_S;
车牌信息:
ICE_VLPR_OUTPUT_S 数据结构存储是相关车牌的数据信息,数据结构的定义请参考 ice_vlpr_result.h
typedef struct
{
ICE_S8 ICE_RECT_S ICE_S32 ICE_S8 ICE_FLOAT ICE_FLOAT ICE_S32
as8PlateNum[ICE_VLPR_PLATE_BUFLEN];
stPlateRect; s32PlateContrast;
astReserve0[40]; aflPlateCharConfid[ICE_VLPR_PLATE_CHAR_NUM];
flConfidence; s32PlateIntensity;
//!< 车牌号
//!< 车牌矩形框;
//!< 车牌对比度;
//!< 预留字段
//!< 车牌字符置信度
//!< 车牌置信度
//!< 车牌亮度
ICE_PLATECOLOR_E ePlateColor;
ICE_PLATETYPE_E ePlateType; ICE_VEHICLECOLOR_E eVehicleColor;
//!< 车牌颜色
//!< 车牌类型
//!< 车身颜色
ICE_FLOAT
ICE_FLOAT ICE_U8 ICE_S8
ICE_RECT_4P_S ICE_S8
ICE_S8
ICE_U32
}ICE_VLPR_OUTPUT_S;
flPlateAngleH;
flPlateAngleV; u8PlateColorRate; s8CharNum; stRealPlateRect; astReserve;
sPlateFmt; u32FrameId;
//!< 车牌水平倾斜角度
//!< 车牌竖直倾斜角度
//!< 颜色匹配程度;
//!< 预留参数
不带图片的完整包体数据为(可参考 ice_vdc_result.h):
| 13
6 字 节 |
4
字节 |
16 字节 | 108
字节 |
16 字节 | 12 字节 | 4 字节 | 4 字节 | 32 字节 | 32 字节 | 4 字节 | 160
字节 |
2
字节 |
2
字节 |
4
字节 |
4 字节 |
| 预留 | 报警触发类
型 |
实时数据抓拍时间 | 预留 | 离 线 数 据 抓 拍 时间 | 预留 | 车 辆 方向 | 车 辆 速度 | 车 辆 颜色 | 车 牌 颜色 | 是 否 存 在 车牌 | 车牌信息 | 图片宽度 | 图片高度 | 图片长度 N | 抓 拍 图 数 据 指 针 |
| 2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
| 年 | 月 | 星
期几 |
日 | 时 | 分 | 秒 | 毫
秒 |
| 16 字
节 |
92 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
32 字
节 |
| 车牌
号 |
预留 | 车牌
置信度 |
预留 | 车牌
颜色 |
车牌
类型 |
车身
颜色 |
预留 |
可参考结构体:
typedef struct
{
ICE_S32 s32EventCode;
ICE_S32
#ifdef _WIN64
s32LandId;
//!< 事件码
//!< 车道ID
ICE_CHAR cFileName[120];
#else
ICE_CHAR cFileName[124]; #endif
ICE_VBR_RESULT_S *pstVbrResult;
考Demo
//!< 文件名
//!< 文件名
//!< 车款结果,需要重新计算指针位置,请参
ICE_VDC_ALARM_TYPE s32AlarmType;
ICE_SYSTEMTIME_S stLiveCapTime; ICE_U32 u32SerialNum;
ICE_U32 u32PlateWidth; ICE_U32 u32ExtSnapPixel;
ICE_Phone_Mac_List* pPhoneMacList; #ifndef _WIN64
ICE_CHAR cPhoneMacListReserve[4]; #endif
//!< 报警触发类型
//!< 实时数据抓拍时间
//!< 车辆流水号
//!< 实际车辆宽度
//!< 抓拍图外osd像素高度
//!< 接收的终端mac列表
//!< mac列表位指针兼容预留
ICE_U32 u32PictureHashID;
ICE_U32 u32Encrypt; ICE_U8 u8PlateTea; ICE_CHAR cReserve[50]; ICE_U8 u8FalsePlate;
ICE_S32 s32TripWireEventCode;
绊线触发;:绊线触发,但使用当前图像抠图) ICE_S32 s32VehicleIntensity; ICE_CHAR cVehicleType[12];
ICE_VCR_VEHICLECOLOR_E enVehicleColor; ICE_VDC_VEHICLETYPE_E s32VehicleType; ICE_SYSTEMTIME_S stCapTime;
是离线数据)
//!< 图片哈希ID
//!< 车牌号码是否加密
//!< 车牌号码加密后的最后一个字节
//!< 预留
//!< 是否虚假车牌
//!< 绊线事件码(:无事件;:缓存图像;:
//!< 车身亮度
//!< 车辆类型(字符串方式)
//!< 车身颜色
//!< 车辆类型
//!< 离线数据抓拍时间(数据不为0,则表明
ICE_S32 s32HaveCloseUp; //!< 是否有特写图像
ICE_RECT_S stVehilceRect; //!< 车辆外框
ICE_VDC_VERHICLE_DIR_E enDirect; //!< 车辆方向
ICE_FLOAT fSpeed; //!< 车辆速度(单位:千米/小时)
ICE_CHAR cVehicleColor[32]; //!< 车辆颜色
ICE_CHAR cPlateColor[32]; //!< 车牌颜色
ICE_S32 s32HavePlate; //!< 是否存在车牌
ICE_VLPR_OUTPUT_S stPlateInfo;
ICE_S16 s16PicWidth;
//!< 车牌信息
//!< 图片宽度
ICE_S16 s16PicHeight;
ICE_S32 s32PicDataLen; ICE_S8 *ps8PictureData;
//!< 图片高度
//!< 图片大小
//!< 图片数据
}ICE_VDC_PICTRUE_INFO_S;
- 报警触发类型
| 数值 | 含义 |
| 0 | 实时_硬触发+临时车辆 |
| 1 | 实时_视频触发+临时车辆 |
| 2 | 实时_软触发+临时车辆 |
| 3 | 实时_硬触发+白名单 |
| 4 | 实时_视频触发+白名单 |
| 5 | 实时_软触发+白名单 |
| 6 | 实时_硬触发+黑名单 |
| 7 | 实时_视频触发+黑名单 |
| 8 | 实时_软触发+黑名单 |
| 9 | 脱机_硬触发+临时车辆 |
| 10 | 脱机_视频触发+临时车辆 |
| 11 | 脱机_软触发+临时车辆 |
| 12 | 脱机_硬触发+白名单 |
| 13 | 脱机_视频触发+白名单 |
| 14 | 脱机_软触发+白名单 |
| 15 | 脱机_硬触发+黑名单 |
| 16 | 脱机_视频触发+黑名单 |
| 17 | 脱机_软触发+黑名单 |
| 18 | 实时_硬触发+过期白名单 |
| 19 | 实时_视频触发+过期白名单 |
| 20 | 实时_软触发+过期白名单 |
| 21 | 脱机_硬触发+过期白名单 |
| 22 | 脱机_视频触发+过期白名单 |
| 23 | 脱机_软触发+过期白名单 |
- 车辆方向
| 数值 | 含义 |
| 0 | 车头方向 |
| 1 | 车尾方向 |
| 2 | 车头和车尾方向 |
- 车牌类型
| 数值 | 含义 |
| 0 | 不确定的 |
| 1 | 蓝牌车 |
| 2 | 单层黄牌车 |
| 4 | 警车 |
| 8 | 武警车辆 |
| 16 | 双层黄牌 |
| 32 | 摩托车 |
| 64 | 教练车 |
| 128 | 军车 |
| 256 | 个性化车 |
| 512 | 港澳车 |
| 1024 | 使馆车 |
| 2048 | 老式车牌 |
| 4096 | 民航车牌 |
| 8192 | 新能源车牌 |
| 0x00004000 | 新能源车牌大车 |
| 0x00008000 | 应急车 |
| 0x00010000 | 机场车牌 |
| 0x00020000 | 电字车牌 |
| 0x00040000 | 厂内车牌 |
| 0x00080000 | 厂/场内车牌(竖) |
| 0x00100000 | 粤+4位数字 |
| 0x01000000 | 澳门车牌 |
| 0x02000000 | 香港车牌 |
| 0x10000001 | 2+2模型 |
| 0x10000002 | 2+3模型 |
| 0x10000004 | 3+2模型 |
| 0x10000008 | 3+3模型 |
| 0x10000010 | 3+4模型 |
| 0x10000020 | 3+2模型 |
| 0x10000040 | 2+3模型 |
| 0x10000080 | 3+3模型 |
| 0x10000100 | 2+4模型 |
| 0x10000200 | 4+2模型 |
| 0x10000400 | 3+4模型 |
| 0x10001000 | 台湾使馆模型 |
| 0x10002000 | 台湾外牌模型 |
| 0x10004000 | 台湾军牌模型 |
| 0x10004001 | 台湾计程车 |
| 0x10004002 | 台湾大客 |
- 车身颜色
| 数值 | 含义 |
| 0 | 未知 |
| 1 | 红色 |
| 2 | 绿色 |
| 3 | 蓝色 |
| 4 | 黄色 |
| 5 | 白色 |
| 6 | 灰色 |
| 7 | 黑色 |
| 8 | 紫色 |
| 9 | 棕色 |
| 10 | 粉色 |
车辆特征码相机版本对应值为:
| 数值 | 含义 |
| -1 | 未知 |
| 0 | 黑色 |
| 1 | 蓝色 |
| 2 | 灰色 |
| 3 | 棕色 |
| 4 | 绿色 |
| 5 | 夜间深色 |
| 6 | 紫色 |
| 7 | 红色 |
| 8 | 白色 |
| 9 | 黄色 |
ICE_VLPR_OUTPUT_S 数据结构存储是相关车牌的数据信息,数据结构的定义请参考 ice_vlpr_result.h
为了节约网络带宽,IPC 设备只会发送 as8PictureData 前 s32PicDataLen 个字节,所以实际的包体长度取决于抓拍图的大小 s32PicDataLen,会小于数据结构 ICE_VD_PICTRUE_INFO_BUFFER_S 的大小。
当车牌识别为有效车牌时(s32HavePlate 为 1),以上结构体后面会附加发送一张车牌特写图: as8PictureData + s32PicDataLen 个字节后面紧跟 4 个字节,这 4 个字节组成的整数(前 2 个字节组成的整数(数据类型)必须为 0 + 表示车牌特写图的长度,例如 N);然后 4 字节后面会继续发送 N 个字节的车牌特写图。总的数据包大小会增加 4 + N 个字节。
当识别到车标时,有车牌特写图时会在车牌特写图后面紧跟 4 个字节(前 2 个字节组成的整数(数据类型)必须为 1 + 后 2 个字节组成的整数表示 N 字节的大小)+N 个字节(存放车款结构体内容),无车牌特写 图时紧跟在 as8PictureData + s32PicDataLen 后面 4 个字节 + N 个字节。
解析车牌特写图和车款的方法如下,注意得到的车标为 utf-8 编码格式。
车牌识别数据上报应答
当使用相机使用分包发送并且需要重传功能时(3.1.1 报警数据请求情况 C)(通道号值为 1 为拆包发送是,如何为拆包发送?,如何判断收到的报警数据是拆包发送的?),当数据接收完全后,发送车牌数据应答包。若数据接收不完全,则不发送;相机未收到确认包,则会重传车牌识别数据(不带图片)。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
协议类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节序号 | 4 字节标识 |
| 32 | 0x100F | 0 | 0 | 0 | 0 | 值为接收到的数据的包头的 u32Time
字段 |
0 |
![图片[4]-华夏车牌识别相机设备TCP网络通信协议-停车技术员](https://blog.sdlinka.com/wp-content/uploads/2025/11/word-image-4576-4.webp)
车牌数据快速上报
发送报警数据请求,收到报警数据应答后,并且没有断开 tcp 连接时,相机端识别到车牌后,向客户端发送报警数据。
协议类型: 0x2003完整包体为:
| 13
6 字节 |
4
字节 |
16 字节 | 4 字
节 |
104
字节 |
16 字
节 |
12 字
节 |
4 字
节 |
4 字
节 |
32 字
节 |
32 字
节 |
4 字
节 |
160
字节 |
2
字节 |
2
字节 |
4
字节 |
4 字
节 |
| 预
留 |
报
警触发类型 |
实时数据
抓拍时间 |
车 辆
流 水 号 |
预留 | 离 线
数 据 抓 拍 时间 |
预留 | 车 辆
方向 |
车 辆
速度 |
车 辆
颜色 |
车 牌
颜色 |
是 否
存 在 车牌 |
车
牌信息 |
图
片宽度 |
图
片高度 |
图
片长度 N |
抓 拍
图 数 据 指 针 |
| 2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
2
字节 |
| 年 | 月 | 星
期几 |
日 | 时 | 分 | 秒 | 毫
秒 |
| 16 字
节 |
92 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
32 字
节 |
| 车牌
号 |
预留 | 车牌
置信度 |
预留 | 车牌
颜色 |
车牌
类型 |
车身
颜色 |
预留 |
可参考结构体:
typedef struct
{
ICE_S32 s32EventCode;
ICE_S32
#ifdef _WIN64
s32LandId;
//!< 事件码
//!< 车道ID
ICE_CHAR cFileName[120];
#else
ICE_CHAR cFileName[124]; #endif
ICE_VBR_RESULT_S *pstVbrResult;
//!< 文件名
//!< 文件名
ICE_VDC_ALARM_TYPE s32AlarmType;
ICE_SYSTEMTIME_S stLiveCapTime; ICE_U32 u32SerialNum;
//!< 车款结果
//!< 报警触发类型
//!< 实时数据抓拍时间
//!< 车辆流水号
ICE_U32 u32PlateWidth;
ICE_U32 u32ExtSnapPixel; ICE_Phone_Mac_List* pPhoneMacList;
#ifndef _WIN64
ICE_CHAR cPhoneMacListReserve[4]; #endif
//!< 实际车辆宽度
//!< 抓拍图外osd像素高度
//!< 接收的终端mac列表
//!< mac列表位指针兼容预留
ICE_U32 u32PictureHashID; //!< 图片哈希ID
ICE_U32 u32Encrypt; //!< 车牌号码是否加密
ICE_U8 u8PlateTea; //!< 车牌号码Tea加密后的最后一个字节
ICE_CHAR cReserve[41]; //!< 预留
ICE_S16 s16FeatureNum; //!< 特征码维数
ICE_FLOAT pReserve; //!< 特征码
ICE_U8 uReserve[2]; // !< 预留
ICE_U8 u8FalsePlateFileter; //!< 虚假车牌是否过滤
ICE_U8 u8FalsePlate; //!< 是否虚假车牌
ICE_S32 s32TripWireEventCode; //!< 绊线事件码(:无事件;:缓存图像;:绊线触发;:绊线触发,但使用当前图像抠图)
}ICE_VDC_PICTRUE_INFO_S;
| ICE_S32 s32VehicleIntensity; | //!< | 车身亮度 |
| ICE_CHAR cVehicleType[12]; | //!< | 车辆类型(字符串方式) |
| ICE_VCR_VEHICLECOLOR_E enVehicleColor; | //!< | 车身颜色 |
| ICE_VDC_VEHICLETYPE_E s32VehicleType; | //!< | 车辆类型 |
| ICE_SYSTEMTIME_S stCapTime; | //!< | 抓拍时间 |
| ICE_S32 s32HaveCloseUp; | //!< | 是否有特写图像 |
| ICE_RECT_S stVehilceRect; | //!< | 车辆外框 |
| ICE_VDC_VERHICLE_DIR_E enDirect; | //!< | 车辆方向 |
| ICE_FLOAT fSpeed; | //!< | 车辆速度(单位:千米/小时) |
| ICE_CHAR cVehicleColor[32]; | //!< | 车辆颜色 |
| ICE_CHAR cPlateColor[32]; | //!< | 车牌颜色 |
| ICE_S32 s32HavePlate; | //!< | 是否存在车牌 |
| ICE_VLPR_OUTPUT_S stPlateInfo; | //!< | 车牌信息 |
| ICE_S16 s16PicWidth; | //!< | 图片宽度 |
| ICE_S16 s16PicHeight; | //!< | 图片高度 |
| ICE_S32 s32PicDataLen; | //!< | 图片大小 |
| ICE_S8 *ps8PictureData; | //!< | 图片数据 |
接收 RS485 透明串口数据
接收透明串口数据,接收端口为 8200,包体为接收到的透明串口数据。
协议类型:0x2100包体为:串口数据
接收 RS232 透明串口数据
接收透明串口数据,接收端口为 8200,包体为接收到的透明串口数据。
协议类型:0x20ff
包体数据为:串口数据
接收 IO 输入状态变化数据
接收透明串口数据,接收端口为 8200,包体为接收到的 IO 状态数据。
协议类型:0x20fe包体数据为:
| 包体(4 字节) | |||
| 1 字节 | 1 字节 | 1 字节 | 1 字节 |
| IO 输入 1 状态 | IO 输入 2 状态 | IO 输入 3 状态 | IO 输入 4 状态 |
短连接协议
设置开关量输出 1 请求
当客户端需要请求设置开关量输出 1 时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x5065 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5065 | 0 | 0 | 0 | 0 | 0 | 0 |
设置开关量输出 1 应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x5066 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收到应答后,断开 TCP 连接。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5066 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
设置开关量输出 2 请求
当客户端需要请求设置开关量输出 2 时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x5137 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5137 | 0 | 0 | 0 | 0 | 0 | 0 |
设置开关量输出 2 应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x5138 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收到应答后,断开 TCP 连接。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5138 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
抓拍(不做车牌识别)
当客户端需要请求抓拍(不做车牌识别)时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32,u32Type 为 0x1033 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x1033 | 0 | 0 | 0 | 0 | 0 | 0 |
抓拍(不做车牌识别)应答
IPC 设备收到请求后会回复 u32Size 为:32+图片长度,u32Type 为 0x1034 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。成功后可以再接收 IPC 设备发送的图片数据。如果使用短连接,数据接收完成后,断开 TCP 连接;如果使用长连接,则不要断开 TCP 连接。
| 包头(32 个字节) | 包体 | |||||||
| 4 字节
数 据 包 长 度 |
4 字节 命 令 类
型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 图片数据长度
N 字节 |
| 32+ 图片数
据长度 N |
0x1034 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 | 图片数据 |
软触发
当客户端需要请求软触发时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32,u32Type 为 0x1005 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x1005 | 0 | 0 | 0 | 0 | 0 | 0 |
软触发应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x1006 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。如果使用短连接,接收到应答后,断开 TCP 连接;如果使用长连接,接收到应答后,不要断开 TCP 连接。
注意:无需包体
| 包头(32 个字节) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x1006 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
RS485 透传串口数据请求
当客户端发送透传串口数据请求时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为(32+串口数据的长度),u32Type 为 0x1037 的数据包。
| 包头(32 个字节) | 包体 | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 串口数据数据长度
N 字节 |
| 32+串口数据
长度 N |
0x1037 | 0 | 0 | 0 | 0 | 0 | 0 | 串口数据 |
RS485 透传串口数据请求应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x1038 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收到应答后,断开 TCP 连接。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x1038 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
读出黑白名单请求
当客户端需要请求白名单时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32,u32Type 为 0x5105 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5105 | 0 | 0 | 0 | 0 | 0 | 0 |
读出黑白名单应答
IPC 设备收到请求后会回复 u32Size 为:32+黑白名单数据长度,u32Type 为 0x5106 的应答,表示请求成功。成功后可以再接收 IPC 设备发送的所有黑白名单数据。数据接收完成后,断开 TCP 连接。
车牌号是 GBK 编码。
黑白名单项格式为:车牌号码+TAB 键+起始有效期+TAB 键+截止有效期+ TAB 键+起始时间+ TAB 键+截止时间+TAB 键+白名单类型(B/W)+回车键
| 包头(32 个字节) | 包体 | |||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 黑白名单数据长度
N 字节 |
| 32+ 黑 白 名单数据
长度 N |
0x5106 | 0 | 0 | 0 | 0 | 0 | 0 | 黑白名单数据 |
添加黑白名单请求
当客户端需要请求添加黑白名单时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32+135, u32Type 为 0x5111 的数据包。包体为数据结构,如下:
#define WHITELIST_VALID_TIME_LEN 10
typedef struct{
char plate_number[16]; //车牌号 char valid_sdate[WHITELIST_VALID_TIME_LEN+1]; //开始日期 char valid_edate[WHITELIST_VALID_TIME_LEN+1]; //截止日期 char valid_stime[WHITELIST_VALID_TIME_LEN+1]; //开始时间 char valid_etime[WHITELIST_VALID_TIME_LEN+1]; //截止时间
char type[WHITELIST_VALID_TIME_LEN+1]; //名单类型(’W’白名单 ‘B’ 黑名单)
char reserved[64]; //预留字段
}WHITELIST_ITEM;
| 包头(32 个字节) | |||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32+135 | 0x5111 | 0 | 0 | 0 | 0 | 0 | 0 |
| 包体(135 个字节) | |||||||
| 16 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 64 字节 | |
| 车牌号 | 开始日期 | 截止日期 | 开始时间 | 截止时间 | 名单类型 | 预留 | |
添加黑白名单应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x5112 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收到应答后,断开 TCP 连接。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5112 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
删除黑白名单请求
当客户端需要请求删除黑白名单时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32+135, u32Type 为 0x5113 的数据包。包体为数据结构,详见黑白名单数据结构
注意:只需知道车牌号就可以进行删除。
| 包头(32 个字节) | |||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32+135 | 0x5113 | 0 | 0 | 0 | 0 | 0 | 0 |
| 包体(135 个字节) | |||||||
| 16 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 64 字节 | |
| 车牌号 | 空 | 空 | 空 | 空 | 空 | 空 | |
删除黑白名单应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x5114 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收到应答后,断开 TCP 连接。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5114 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
删除所有黑白名单请求
当客户端需要请求删除所有黑白名单时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x5119 的数据包。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5119 | 0 | 0 | 0 | 0 | 0 | 0 |
注意:无需包体
删除所有黑白名单应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x5120 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收到应答后,断开 TCP 连接。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5120 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
修改黑白名单请求
当客户端需要请求修改黑白名单时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32+135, u32Type 为 0x5115 的数据包。包体为数据结构,详见黑白名单数据结构
| 包头(32 个字节) | |||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32+135 | 0x5115 | 0 | 0 | 0 | 0 | 0 | 0 |
| 包体(135 个字节) | |||||||
| 16 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 64 字节 | |
| 车牌号 | 开始日期 | 截止日期 | 开始时间 | 截止时间 | 名单类型 | 预留 | |
修改黑白名单应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x5116 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收请求后,断开 TCP 连接。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5116 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
查找黑白名单请求
当客户端需要请求查找黑白名单时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32+135, u32Type 为 0x5117 的数据包。包体为数据结构,详见黑白名单数据结构
注意:只需知道车牌号即可以进行查找。
| 包头(32 个字节) | |||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32+135 | 0x5117 | 0 | 0 | 0 | 0 | 0 | 0 |
| 包体(135 个字节) | |||||||
| 16 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 64 字节 | |
| 车牌号 | 空 | 空 | 空 | 空 | 空 | 空 | |
查找黑白名单应答
IPC 设备收到请求后会回复 u32Size 为 32+135,u32Type 为 0x5118 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收到返回的白名单项,包体为数据结构,详见黑白名单数据结 构 。 接 收 完成后,断开 TCP 连接。
| 包头(32 个字节) | |||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32+135 | 0x5118 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
| 包体(135 个字节) | |||||||
| 16 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 11 字节 | 64 字节 | |
| 0 | 开始日期 | 截止日期 | 开始时间 | 截止时间 | 名单类型 | 预留 | |
设置黑白名单参数请求
当客户端需要请求设置黑白名单参数时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32+132,u32Type 为 0x5095 的数据包。包体为数据结构,如下:
typedef struct
{
int mode; //0 表示断网后关联开闸,1 表示实时关联开闸,2 不关联开闸
int match; //白名单匹配相似
int black_mode; //黑名单关联道闸模式,0 不关联开闸 1,1 表示实时关联开闸
int black_match; //黑名单匹配相似
int temp_mode; //临时车关联道闸模式,0 不关联开闸 1,1 表示实时关联开闸
int ignoreHZ_flag;//忽略汉字标志,0 不忽略,1 忽略
int allow_unmatch_chars_cnt;// 运行不匹配的字符个数范围【0~3】
int new_version; // 黑白名单参数配置新旧标志, 新:1, 旧:0
int Jing_mode; //警车模式关联道闸模式,0 不关联开闸 1,1 表示实时关联开闸 int Army_mode; //军车模式关联道闸模式,0 不关联开闸 1,1 表示实时关联开闸 int Antifake_mode; //防虚假车牌模式,0 不关联开闸 1,1 表示实时关联开闸 int NewEnergy_mode; //新能源车牌模式,0 不关联开闸 1,1 表示实时关联开闸 int EmergencyMode; //应急车牌模式,0 不关联开闸 1,1 表示实时关联开闸 char reserved[80];
} WhiteList_Param;
| 包头(32 个字节) | 包体
(132 个 字节) |
|||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 132 字节 |
| 32+132 | 0x5095 | 0 | 0 | 0 | 0 | 0 | 0 | 黑白名单
参数 |
包体说明:
| 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
80
字节 |
| 白 名 单 关 联 模 式 | 白 名 单 匹 配 相 似度 | 黑 名 单 关 联 道 闸 模 式 | 黑 名 单 匹 配 相 似 | 临 时 车 关 联 道 闸 模 式 | 忽 略 汉 字 标志 | 运行
不匹配的字符个数 |
黑白
名单参数配置新旧标志 |
警车
模式 |
军车
模式 |
防虚
假车牌模式 |
新能
源车牌模式 |
应急
车牌模式 |
预留
参数 |
设置黑白名单参数应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x5096 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收请求后,断开 TCP 连接。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5096 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
获取黑白名单参数请求
当客户端需要请求获取黑白名单参数时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x5097 的数据包。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5097 | 0 | 0 | 0 | 0 | 0 | 0 |
获取黑白名单参数应答
IPC 设备收到请求后会回复 u32Size 为 32+132,u32Type 为 0x5098 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收完数据后,断开 TCP 连接。包体为数据结构,如下:
typedef struct
{
int mode; //0 表示断网后关联开闸,1 表示实时关联开闸,2 不关联开闸
int match; //白名单匹配相似
int black_mode; //黑名单关联道闸模式,0 不关联开闸 1,1 表示实时关联开闸
int black_match; //黑名单匹配相似
int temp_mode; //临时车关联道闸模式,0 不关联开闸 1,1 表示实时关联开闸
int ignoreHZ_flag;//忽略汉字标志,0 不忽略,1 忽略
int allow_unmatch_chars_cnt;// 运行不匹配的字符个数范围【0~3】
int new_version; // 黑白名单参数配置新旧标志, 新:1, 旧:0
int Jing_mode; //警车模式关联道闸模式,0 不关联开闸 1,1 表示实时关联开闸 int Army_mode; //军车模式关联道闸模式,0 不关联开闸 1,1 表示实时关联开闸 int Antifake_mode; //防虚假车牌模式,0 不关联开闸 1,1 表示实时关联开闸 int NewEnergy_mode; //新能源车牌模式,0 不关联开闸 1,1 表示实时关联开闸 int EmergencyMode; //应急车牌模式,0 不关联开闸 1,1 表示实时关联开闸 char reserved[80];
} WhiteList_Param;
| 包头(32 个字节) | 包体
(132 个 字节) |
|||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 132 字节 |
| 32+132 | 0x5098 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 | 黑 白 名
单参数 |
包体说明:
| 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
4 字
节 |
80
字节 |
| 白 名 单 关 联 模 式 | 白 名 单 匹 配 相 似度 | 黑 名 单 关 联 道 闸 模 式 | 黑 名 单 匹 配 相 似 | 临 时 车 关 联 道 闸 模 式 | 忽 略 汉 字 标志 | 运行
不匹配的字符个数 |
黑白
名单参数配置新旧标志 |
警车
模式 |
军车
模式 |
防虚
假车牌模式 |
新能
源车牌模式 |
应急
车牌模式 |
预留
参数 |
RS232 透传串口数据请求
当客户端发送透传串口数据请求时,需要向IPC设备8117端口号发起连接,并发送u32Size为(32+串口数据的长度),u32Type为 0x1043的数据包。
| 包头(32 个字节) | 包体 | |||||||
| 4 字节
数 据 包 长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 串口数据数据长度
N 字节 |
| 32+ 串口数
据长度 N |
0x1043 | 0 | 0 | 0 | 0 | 0 | 0 | 串口数据 |
RS232 透传串口数据请求应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x1044 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收到应答后,断开 TCP 连接。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x1044 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
获取相机 4G 信息请求
当客户端需要请求获取相机 4G 信息时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x5376 的数据包。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5376 | 0 | 0 | 0 | 0 | 0 | 0 |
获取相机 4G 信息应答
IPC 设备收到请求后会回复 u32Size 为 32+5,u32Type 为 0x5377 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收完数据后,断开 TCP 连接。包体为数据结构,如下:
//4G信息结构体 typedef struct
{
ICE_U8 u8selnettype; //连接方式: 0表示优先有线连接1表示优先G ICE_U8 u8dialingtype; //拨号方式: 0表示自动拨号1表示手动 ICE_U8 u8signal; //信号强度: 0 脱网 1 差 2 中3 强 ICE_U8 u8networkflag; //联网标签: 0未连接1连接.
ICE_U8 operators; //运营商: 0表示未知1表示中国移动2表示中国电信3表示中国联通
}ICE_4G_INFO;
| 包头(32 个字节) | 包体 | |||||||||||
| 4 字节数 据
包 长 度 |
4 字节命令类型 | 4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 1
字节 |
1
字节 |
1
字节 |
1
字节 |
1
字节 |
| 32+5 | 0x5377 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 | 连接方
式 |
拨号方
式 |
信号强
度 |
联网标
签 |
运营商 |
设置音量请求
当客户端需要请求设置相机音量时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32+24, u32Type 为 0x5356 的数据包。包体数据结构详情如下:
typedef struct
{
int InVolume; int OutVolume;
//输入音量,范围0-10
//输出音量,范围0-10
int as32Reserved[4]; //预留参数
} ICE_TALK_BACK_VOLUME_PARAM;
| 包头(32 个字节) | 包体(24 字节) | |||||||||
| 4 字节 数 据 包
长度 |
4 字节
命 令 类 型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 4 字节 | 4 字节 | 16 字节 |
| 32+24 | 0x5356 | 0 | 0 | 0 | 0 | 0 | 0 | 输入音量 | 输出音量 | 预留 |
设置音量请求应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x5357 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收完数据后,断开 TCP 连接。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5357 | 状态
(1 表示成功, 0 表示失败) |
0 | 0 | 0 | 0 | 0 |
获取音量请求
当客户端需要请求设置相机音量时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x5358 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5358 | 0 | 0 | 0 | 0 | 0 | 0 |
获取音量请求应答
IPC 设备收到请求后会回复 u32Size 为 32+24,u32Type 为 0x5359 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收完数据后,断开 TCP 连接。包体数据结构具体如下:
typedef struct
{
int InVolume; int OutVolume;
//输入音量,范围0-10
//输出音量,范围0-10
int as32Reserved[4]; //预留参数
} ICE_TALK_BACK_VOLUME_PARAM;
| 包头(32 个字节) | 包体(24 字节) | |||||||||
| 4 字节 数 据 包
长度 |
4 字节
命 令 类 型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 4 字节 | 4 字节 | 16 字节 |
| 32+24 | 0x5359 | 0 | 0 | 0 | 0 | 0 | 0 | 输入音量 | 输出音量 | 预留 |
读出用户数据
当客户端需要请求读出用户数据时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x5101 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5101 | 0 | 0 | 0 | 0 | 0 | 0 |
读出用户数据应答
IPC 设备收到请求后会回复 u32Size 为:32+用户数据长度,u32Type 为 0x5102 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。成功后可以再接收 IPC 设备发送的用户数据。数据接收完成后,断开 TCP 连接。
| 包头(32 个字节) | 包体 | |||||||
| 4 字节
数 据 包 长 度 |
4 字节 命 令 类
型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 用户数据长度
N 字节 |
| 32+ 用户数
据长度 N |
0x5102 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 | 用户数据 |
获取相机时间
当客户端需要请求获取相机时间时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x53C0 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x53C0 | 0 | 0 | 0 | 0 | 0 | 0 |
获取相机时间应答
IPC 设备收到请求后会回复 u32Size 为:32+应答 JSON 数据长度,u32Type 为 0x53C1 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。成功后可以再接收 IPC 设备发送的用户数据。数据接收完成后,断开 TCP 连接。
| 包头(32 个字节) | 包体 | |||||||
| 4 字节
数 据 包 长 度 |
4 字节 命 令 类
型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 应答 JSON数据 |
| 32+ 应 答 JSON 数据
长度 |
0x53C1 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 | JSON 数据 |
字段说明
| 字段项 | 类型 | 必填项 | 说明 | 备注 |
| reqSrcIp | string | 是 | 请求源 IP 地址 | |
| reqSrcDesc | string | 是 | 请求源描述 | |
| datetime | json
array |
是 | 本地时间信息 | |
| year | int | 是 | 年 | |
| mon | int | 是 | 月 | |
| day | int | 是 | 日 | |
| hour | int | 是 | 时 | |
| min | int | 是 | 分 | |
| second | int | 是 | 秒 |
示例
{
“reqSrcIp”:”192.168.55.100″,
“reqSrcDesc”:”HX-CAM”, “localTimeInfo”:{
“year”:2021,
“mon”:6,
“day”:16,
“hour”:10,
“min”:17, “second”:57
}
}
设置相机时间
当客户端需要请求设置相机时间时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x53BE 的数据包。
| 包头(32 个字节)(无需包体) | 包体 | |||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 请求 JSON数据 |
| 32+ 请 求 JSON 数
据长度 |
0x53BE | 0 | 0 | 0 | 0 | 0 | 0 | JSON 数据 |
字段说明
| 字段项 | 类型 | 必填项 | 说明 | 备注 |
| reqSrcIp | string | 是 | 请求源 IP 地址 | |
| reqSrcDesc | string | 是 | 请求源描述 | |
| datetime | json
array |
是 | 本地时间信息 | |
| year | int | 是 | 年 | |
| mon | int | 是 | 月 | |
| day | int | 是 | 日 | |
| hour | int | 是 | 时 | |
| min | int | 是 | 分 | |
| second | int | 是 | 秒 |
示例
{
“reqSrcIp”:”192.168.5.230″,
“reqSrcDesc”:”your-name”, “localTimeInfo”:{
“year”:2021,
“mon”:6,
“day”:16,
“hour”:10,
“min”:17, “second”:57
}
}
设置相机时间应答
IPC 设备收到请求后会回复 u32Size 为 32,u32Type 为 0x53BF 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收完数据后,断开 TCP 连接。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长 度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x53BF | 状态
(1 表示成功, 0 表示失败) |
0 | 0 | 0 | 0 | 0 |
获取相机 UID
当客户端需要请求获取相机 UID 时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32, u32Type 为 0x5362 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5362 | 0 | 0 | 0 | 0 | 0 | 0 |
获取相机 UID 应答
IPC 设备收到请求后会回复 u32Size 为:32+UID 信息长度,u32Type 为 0x5363 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。成功后可以再接收 IPC 设备发送的用户数据。数据接收完成后,断开 TCP 连接。包体为数据结构,如下:
typedef struct
{
unsigned char ucUID[32];//UID
unsigned char ucReserved[32];//预留参数
}UID_PARAM;
| 包头(32 个字节) | 包体(64 字节) | ||||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 | 32 字节 | 32 字节 |
| 32+64 | 0x5363 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 | UID | 预留 |
获取 HTTP POST 参数请求(模式 5)
当客户端需要请求获取相机 HTTP POST 模式 5 参数时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32,u32Type 为 0x5382 的数据包。
注意:无需包体
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5382 | 0 | 0 | 0 | 0 | 0x5B9B9B9B
(请求标志) |
0 |
获取 HTTP POST 参数请求(模式 5)应答
IPC 设备收到请求后会回复 u32Size 为:32 字节+HTTP POST 结构体数据长度(464 字节)+扩展参数长度, u32Type 为 0x5383 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。
成功后可以再接收 IPC 设备发送的 HTTP POST 结构体数据。HTTP POST 结构体数据接收完成后,剩余长度
=总的数据长度-包头长度(32 字节)-接收到的 HTTP POST 结构体长度,如果剩余长度>0,说明有扩展参数,再接收扩展参数。
数据接收完成后,断开 TCP 连接。HTTP POST 结构体,如下:
typedef struct
{
int identify; //新POST配置标记,固定字符串”POEX”
int httpPostEn; //是否打开http post 功能,0:不打开,1:打开
int mode; //模式,固定取值:5
int sslEn; //SSL使能,1:使能,0:不使能 int sslPort; //SSL端口
int bakServerEn; //是否启用备用服务器,0:不启用,1:启用
int serverPostMode; //主备服务器都有效时推送模式:0=全推送,1=主优先(主推不成功再推备) int serverPort; //服务器访问端口
char serverIpStr[32]; //服务器IP地址 char serverDomian[64]; //服务器域名
char bakServerIpStr[32]; //备用服务器IP地址 char bakServerDomian[64]; //备用服务器域名
char path[64]; //路径,会结合出入口方向标志,停车场序号处理 char parkIdStr[64]; //停车场ID,字符串,只支持英文、数字、-
int maxSendCnt; //发送最大次数, 1-3
int snapFull;// 是否发送全景图;0:不发送,1发送
int snapCloseup;// 是否发送车牌特写图;0:不发送,1发送 int camIdType; //ID号,0:使用相机MAC地址,1:使用相机UUID int directionFalg; //出口入口方向标志,0:入口,1:出口
int offlinePostEn; //断网续传使能。0:不使能,1:使能 int interval; //心跳间隔1~30s,0表示无心跳
int autoAlarmOutEn; //入口自动开闸使能,0:不使能,1:使能
int autoAlarmOutMode;//入口自动开闸。模式1=识别成功开闸,模式2=全部开闸,模式3=反馈开闸 int ioInPostEn; //输入IO状态上报使能,0:不使能,1:使能
char ioInNum[4]; //指定上报输入IO,真有效,ioInNum[0]对应输入IO1, ioInNum[1]=IO2,ioInNum[2]=IO3,ioInNum[3]=IO4
char iUnderwayExt; //是否进行扩展,0:不进行,1:进行 char reserve[63]; //预留主参数
int extParamSize; //ICE_HTTP_POST_NEW_PARAM 为主参数,辅助参数全部放在后面,每个模式如有需要,均可配套辅助参数,达到不动主参数,同时又支持额外定制
}ICE_HTTP_POST_NEW_PARAM;
| 包头(32 个字节) | |||||||
| 4 字节
数 据 包 长 度 |
4 字节 命 令 类
型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32+464+ 扩
展 参 数 长 度 |
0x5383 | 状态 1 成功
0 失败 |
0 | 0 | 0 | 0x5A9A9A9A
( 应 答 标 志) |
0 |
| 包体(464 字节+扩展参数长度) | |||||||||||||
| 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 32 字节 | 64 字节 | 32 字节 | 64 字节 | 64 字节 | 64 字节 |
| 新 POST 配置 标 记 ,固 定 字 符串 “POEX”
( 0x58454 f50) |
是 否
打 开 http post功能 |
工作模式,固定值: 5 | SSL
使能 |
SSL
端口 |
是否 启用 备用 服务 器 | 主备服务器都有效时推送模式 | 服务器访问端口 | 服务器 IP 地址 | 服务 器域 名 | 备用 服务 器 IP地址 | 备用 服务 器域 名 | 路径 | 停车 场 ID |
包体表格续:
| 包体(464 字节+扩展参数长度) | ||||||||||||||
| 4 字节 | 4 字节 | 4 字节 | 4
字节 |
4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 1 字节 | 63
字节 |
4 字节 | 扩 展 参 数
( N字 节) |
| 发 送
最 大次数 |
是否 发送 全景 图 | 是否 发送 车牌 特写
图 |
ID
号 |
出口 入口 方向 标志 | 断网 续传 使能 | 心跳 间隔 | 入口 自动 开闸 使能 | 入口 自动 开闸 模式 | 输 入
IO 状态上报使能 |
指定 上报 输入 IO | 是否 进行 扩展 | 预留 | 辅助 参数 长度 | 扩展 参数 |
扩展参数内容说明:
{
“newDomainPath”: {
“domain”: “service.tigmall.com”, “path”: “/parking/count”
}
}
注:只有“是否进行扩展”字段为 1 时,才会有扩展参数内容。
扩展参数内容主要针对 HTTP POST 结构体中的“服务器域名”和“路径”进行长度扩展。结构体中的服务器域名和路径只支持最大 63 字节,扩展参数支持最大 126 字节。
设置 HTTP POST 参数请求(模式 5)
当客户端需要请求设置 HTTP POST 参数时,需要向IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32字节+464 字节+扩展参数长度,u32Type 为 0x5380 的数据包。包体为 HTTP POST 结构体数据+扩展参数, HTTP POST 结构体如下:
typedef struct
{
int identify; //新POST配置标记,固定字符串”POEX”
int httpPostEn; //是否打开http post 功能,0:不打开,1:打开
int mode; //工作模式,固定取值:5
int sslEn; //SSL使能,1:使能,0:不使能 int sslPort; //SSL端口
int bakServerEn; //是否启用备用服务器,0:不启用,1:启用
int serverPostMode; //主备服务器都有效时推送模式:0=全推送,1=主优先(主推不成功再推备) int serverPort; //服务器访问端口
char serverIpStr[32]; //服务器IP地址 char serverDomian[64]; //服务器域名
char bakServerIpStr[32]; //备用服务器IP地址 char bakServerDomian[64]; //备用服务器域名
char path[64]; //路径,会结合出入口方向标志,停车场序号处理 char parkIdStr[64]; //停车场ID,字符串,只支持英文、数字、-
int maxSendCnt; //发送最大次数, 范围:1-3
int snapFull;// 是否发送全景图;0:不发送,1发送
int snapCloseup;// 是否发送车牌特写图;0:不发送,1发送 int camIdType; //ID号,0:使用相机MAC地址,1:使用相机UUID int directionFalg; //出口入口方向标志,0:入口,1:出口
int offlinePostEn; //断网续传使能。0:不使能,1:使能 int interval; //心跳间隔1~30s,0表示无心跳
int autoAlarmOutEn; //入口自动开闸使能,0:不使能,1:使能
int autoAlarmOutMode;//入口自动开闸。模式1:识别成功开闸,模式2:全部开闸,模式3:反馈开闸 int ioInPostEn; //输入IO状态上报使能,0:不使能,1:使能
char ioInNum[4]; //指定上报输入IO,真有效,ioInNum[0]对应输入IO1, ioInNum[1]=IO2,ioInNum[2]=IO3,ioInNum[3]=IO4
char iUnderwayExt; //是否进行扩展,0:不进行,1:进行 char reserve[63]; //预留主参数
int extParamSize; //ICE_HTTP_POST_NEW_PARAM 为主参数,辅助参数全部放在后面,每个模式如有需要,均可配套辅助参数,达到不动主参数,同时又支持额外定制
}ICE_HTTP_POST_NEW_PARAM;
| 包头(32 个字节) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32+464+扩展
参数长度 |
0x5383 | 0 | 0 | 0 | 0 | 0x5B9B9B9B
( 请 求 标志) |
0 |
| 包体(464 字节+扩展参数长度) | |||||||||||||
| 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 32 字节 | 64 字节 | 32 字节 | 64 字节 | 64 字节 | 64 字节 |
| 新 POST 配置 标 记 ,固 定 字 符串 “POEX”
( 0x58454 f50) |
是 否
打 开 http post功能 |
工作模式,固定值: 5 | SSL
使能 |
SSL
端口 |
是否 启用 备用 服务 器 | 主备服务器都有效时推送模式 | 服务器访问端口 | 服务器 IP 地址 | 服务 器域 名 | 备用 服务 器 IP地址 | 备用 服务 器域 名 | 路径 | 停车 场 ID |
包体表格续:
| 包体(464 字节+扩展参数长度) | ||||||||||||||
| 4 字节 | 4 字节 | 4 字节 | 4
字节 |
4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 4 字节 | 1 字节 | 63
字节 |
4 字节 | 扩 展 参 数
( N字 节) |
| 发 送
最 大次数 |
是否 发送 全景 图 | 是否 发送 车牌
特写 图 |
ID
号 |
出口 入口 方向 标志 | 断网 续传 使能 | 心跳 间隔 | 入口 自动 开闸 使能 | 入口 自动 开闸 模式 | 输 入
IO 状态上报使能 |
指定 上报 输入 IO | 是否 进行 扩展 | 预留 | 辅助 参数 长度 | 扩展 参数 |
扩展参数内容说明:
{
“ver”:1, “newDomainPath”: {
“domain”: “service.tigmall.com”, “path”: “/parking/count”
}
}
注:只有“是否进行扩展”字段为 1 时,并且“服务器域名”和“路径”长度大于 63 时,才需要发送扩展参数内容。
扩展参数内容主要针对 HTTP POST 结构体中的“服务器域名”和“路径”进行长度扩展。结构体中的服务器域名和路径只支持最大 63 字节,扩展参数支持最大 126 字节。
设置 HTTP POST 参数请求(模式 5)应答
IPC 设备收到请求后会回复 u32Size 为 32 字节,u32Type 为 0x5381 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收请求后,断开 TCP 连接。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x5381 | 状态 1 成功
0 失败 |
0 | 0 | 0 | 0x5A9A9A9A
( 应 答 标志) |
0 |
获取 IO 输入状态
当客户端需要请求获取相机 IO 输入状态时,需要向 IPC 设备 8117 端口号发起连接,并发送 u32Size 为 32,u32Type 为 0x1045 的数据包。
| 包头(32 个字节)(无需包体) | |||||||
| 4 字节
数据包长度 |
4 字节
命令类型 |
4 字节状态 | 4 字节通道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节级别 |
| 32 | 0x1045 | 0 | 0 | 0 | 0 | 0 | 0 |
获取 IO 输入状态应答
IPC 设备收到请求后会回复 u32Size 为 32+4,u32Type 为 0x1046 的应答,并且状态字段为 1 表示请求成功,状态字段为 0 表示请求失败。接收完数据后,断开 TCP 连接。
| 包头(32 个字节) | |||||||
| 4 字节数 据
包 长 度 |
4 字节命令类型 | 4 字节状态 | 4 字节通 道号 | 4 字节时间 | 4 字节日期 | 4 字节标识 | 4 字节
级别 |
| 32+4 | 0x1046 | 1 成功
0 失败 |
0 | 0 | 0 | 0 | 0 |
| 包体(4 字节) | |||
| 1 字节 | 1 字节 | 1 字节 | 1 字节 |
| IO 输入 1 状态 | IO 输入 2 状态 | IO 输入 3 状态 | IO 输入 4 状态 |
设置开关量输出配置参数请求(onvif 协议)
当客户端需要请求设置相机开关量输出配置时,使用 onvif 协议,端口为:8080。名称空间说明
| 名称空间 | 说明 | 备注 |
| tds:RelayOutputToken | 请求命令
开关量输出 1: RelayOutput 开关量输出 2: RelayOutput2 开关量输出 3: RelayOutput3 开关量输出 4: RelayOutput4 |
|
| DelayTime | 输出时长,范围为-1,1~10 秒,
-1 表示不恢复。 时长为-1,内容为: PT-1S 时长为 1,内容为: PT1S |
设置道闸常开,时长为-1 |
| IdleState | 相机状态
常开:open 常闭:close |
示例:
POST / HTTP/1.1
Content-Type: application/soap+xml;charset=utf-8; Host: 192.168.10.231:8080
Content-Length: 761
<?xml version=”1.0″ encoding=”UTF-8″?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=”http://www.w3.org/2003/05/soap-envelope” xmlns:SOAP-ENC=”http://www.w3.org/2003/05/soap-encoding” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“http://www.w3.org/2001/XMLSchema” xmlns:wsa5=”http://www.w3.org/2005/08/addressing” xmlns:tt=”http://www.onvif.org/ver10/schema” xmlns:tds=“http://www.onvif.org/ver10/device/wsdl”>
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<tds:SetRelayOutputSettings>
<tds:RelayOutputToken>RelayOutput</tds:RelayOutputToken>
<tds:Properties>
<Mode>Monostable</Mode>
<DelayTime>PT-1S</DelayTime>
<IdleState>open</IdleState>
</tds:Properties>
</tds:SetRelayOutputSettings>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
设置开关量输出配置参数应答
IPC 设备收到请求后修改配置,并回复。回复内容含 200 OK 表示成功。接收完数据,断开连接。回复成功示例:
HTTP/1.1 200 OK
Server: ice/1.0
Content-Type: application/soap+xml;charset=utf-8 Content-Length: 617
<?xml version=”1.0″ encoding=”UTF-8″?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=”http://www.w3.org/2003/05/soap-envelope” xmlns:SOAP-ENC=”http://www.w3.org/2003/05/soap-encoding” xmlns:xsi=”http://www.w3.org/2001/XMLSchema–instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:wsa5=”http://www.w3.org/2005/08/addressing” xmlns:tt=”http://www.onvif.org/ver10/schema”
xmlns:tds=“http://www.onvif.org/ver10/device/wsdl”>
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<tds:SetRelayOutputSettingsResponse>
</tds:SetRelayOutputSettingsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
以太网协议,设备搜索及跨网段修改 IP
设备搜索
客户端发送广播,协议类型为 0xF0FF;相机收到广播后,回复协议类型为 0xF1FF 的数据包。广播协议:
| 以太网首部 | ||
| 6 字节 | 6 字节 | 2 字节 |
| 目的地址(0xFF 0xFF 0xFF 0xFF 0xFF 0xFF) | 原地址(电脑网卡的物理地址) | (类型)0xF0FF |
接收相机端回应:
| 以太网首部 | 数据 | ||
| 6 字节 | 6 字节 | 2 字节 | N 字节 |
| 目的地址(原发送的电脑网卡的物理地址) | 原地址(相机的物理地址) | (类型)0xF1FF | 数据 |
数据格式为:
| 4 字节 | 60 字节 | (接收到的长度-78)字节 |
| 相机 IP | 预留 | 软件及算法信息 |
通过 mac 地址获取相机 IP,掩码和网关
客户端发送协议类型为 0xF8FF 的数据给相机端,相机端回复协议类型为 0xF8FF 的数据包。客户端发出的数据包:
| 以太网首部 | ||
| 6 字节 | 6 字节 | 2 字节 |
| 目的地址(相机的物理地址) | 原地址(电脑网卡的物理地址) | (类型)0xF8FF |
接收相机端回应:
| 以太网首部 | 数据 | ||
| 6 字节 | 6 字节 | 2 字节 | N 字节 |
| 目的地址(原发送的电脑网卡的物理地址) | 原地址(相机的物理地址) | (类型)0xF8FF | 数据 |
数据格式为:
| 2 字节 | 4 字节 | 4 字节 | 4 字节 | M 字节 |
| 数据长度 | 相机 ip | 子网掩码 | 网关 | (M 为数据长度-12)预留数据 |
跨网段修改 IP
客户端发送协议类型为 0xF2FF 的数据包给相机端,相机端无回复。定义如下:客户端发出的数据包:
| 以太网首部 | 数据 | ||
| 6 字节 | 6 字节 | 2 字节 | 12 字节 |
| 目的地址(相机的物理地址) | 原地址(电脑网卡的物理地址) | (类型)0xF2FF | 数据 |
数据格式为:
| 4 字节 | 4 字节 | 4 字节 |
| 相机 ip | 子网掩码 | 网关 |
本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
如果用于其他用途,请购买正版支持作者,谢谢!若您认为「BLOG.SDLINKA.COM」发布的内容若侵犯到您的权益,请联系站长进行删除处理。
本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。



暂无评论内容