You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.9 KiB
4.9 KiB
OxUDP门禁控制系统集成完成说明
完成的功能
1. 核心UDP门禁控制类
- OxUDP.java: 基于原生UDP Socket实现的门禁控制核心类
- 支持设备信息查询和更新(
initUDP
函数) - 支持门禁状态轮询(每秒查询一次)
- 支持A门(进门)和B门(出门)开启控制
- 支持门关闭时间设置
- 完整的错误处理和重连机制
- 支持设备信息查询和更新(
2. 使用示例和集成类
- OxUDPUsageExample.java: 详细的使用示例和集成指导
- UDPTestActivity.java: 独立的UDP功能测试界面
3. 人脸识别界面集成
已成功将UDP门禁控制集成到 OXFaceOnlineActivity.java 中:
初始化部分
- 在
onCreate()
方法中添加UDP初始化 - 在
onResume()
中启动门禁状态轮询 - 在
onPause()
中停止轮询 - 在
onDestroy()
中清理资源
人脸识别成功处理
在 checkResultOnline()
方法中,人脸识别成功后:
- 进场场景:开启A门(进门)
- 离场场景:开启B门(出门)
- 支持网络异常时仅开启门禁(不进行网络校验)
UDP配置参数
根据您提供的参数,系统已配置:
// UDP连接配置
private static final String UDP_IP = "192.168.1.123"; // MJ AB中控
private static final int UDP_SEND_PORT = 60000; // 发送端口
// 门禁命令配置
private String udp_device_cmd = "17 94 00 00 ..."; // 设备查询命令
private String udp_state_cmd = "17 20 00 00 ..."; // 状态查询命令
private String udp_open_a_cmd = "17 40 00 00 ..."; // A门开启命令
private String udp_open_b_cmd = "17 40 00 00 ..."; // B门开启命令
private String udp_gate_a_close_time_cmd = "17 80 00 00 ..."; // A门时间设置命令
工作流程
1. 初始化阶段
- 应用启动时初始化UDP连接
- 发送设备查询命令获取设备信息
- 使用返回的设备信息更新所有命令的4-7位参数
- 开始门禁状态轮询(每1秒一次)
2. 人脸识别阶段
- 用户在人脸识别界面前站立
- 系统持续进行人脸检测和活体检测
- 人脸识别成功后获取base64图像数据
3. 门禁控制阶段
根据场景自动判断:
-
进场场景:
- 执行订单核销网络请求(如果网络可用)
- 发送A门开启命令(进门)
- 记录日志:"进场场景人脸识别成功,开启A门(进门)"
-
离场场景:
- 执行离场校验网络请求(如果网络可用)
- 发送B门开启命令(出门)
- 记录日志:"离场场景人脸识别成功,开启B门(出门)"
4. 状态监控
- 实时监控门禁状态(开启/关闭)
- 监控UDP通信状态
- 自动处理网络异常和重连
关键特性
1. 智能场景判断
- 使用
VenueSceneUtils.isLeaveScene()
判断进场/离场 - 自动选择对应的门禁操作
2. 网络异常处理
- 网络可用:执行完整的网络校验 + 门禁开启
- 网络异常:仅执行门禁开启,确保用户可以通行
3. 完整的日志记录
- 每个关键操作都有详细日志
- 便于后续问题排查和系统维护
4. 资源管理
- 自动管理UDP连接和轮询任务
- 在Activity生命周期中正确启动和停止服务
测试建议
1. 独立UDP测试
可以使用 UDPTestActivity
进行独立的UDP功能测试:
- 在AndroidManifest.xml中注册Activity
- 启动测试界面
- 测试客户端连接、消息发送等功能
2. 集成测试
- 确保设备与UDP服务器(192.168.1.123:60000)网络连通
- 启动人脸识别界面
- 观察日志中的UDP初始化和轮询信息
- 进行人脸识别测试,观察门禁开启效果
3. 网络异常测试
- 断开网络连接
- 进行人脸识别
- 验证门禁是否仍能正常开启
日志关键词
在logcat中可以搜索以下关键词查看UDP相关日志:
OxUDP
: UDP核心功能日志UDPManagerExample
: UDP使用示例日志OXFaceOnlineActivity
: 人脸识别界面集成日志UDP门禁控制
: 门禁控制相关日志进场场景人脸识别成功
: 进门开启A门离场场景人脸识别成功
: 出门开启B门
配置调整
如需调整配置,可修改以下文件:
- UDP连接参数:
OxUDP.java
中的常量定义 - 轮询频率:
POLLING_INTERVAL
常量(默认1000ms) - 超时时间:
UDP_TIMEOUT
常量(默认3000ms) - 门关闭时间:
udp_gate_a_close_time
变量(默认2秒)
总结
UDP门禁控制系统已完全集成到现有的人脸识别项目中,实现了:
- ✅ 设备信息自动查询和命令更新
- ✅ 实时门禁状态轮询
- ✅ 人脸识别成功后自动开门
- ✅ 智能场景判断(进门/出门)
- ✅ 网络异常时的容错处理
- ✅ 完整的资源管理和错误处理
系统现在可以在用户进入人脸识别界面后自动连接UDP服务器,持续轮询门禁状态,并在人脸识别成功后自动执行相应的开门操作。