门禁设备联网第一步:网络、电源、响铃配置那些事
说实话,前面几篇都在聊"怎么跟设备说上话"——协议长啥样、生物模板怎么传。但落地时第一个坎往往更朴素:设备得先连上网、供上电、到点能打铃,不然协议写得再漂亮也白搭。
协议里其实给了一整套设备侧的配置命令,我刚上手时心想"不就是配个 IP 嘛",结果在SetEthernet的Port字段上卡了半天。后面的坑慢慢说。
一、先说联网:设备自身网卡怎么配
协议把网络配置分了两条路,有线无线各一摊。
走有线用SetEthernet:
<?xml version="1.0"?><Message><Request>SetEthernet</Request><DHCP>Yes/No</DHCP><IP>192.168.1.102</IP><Subnet>255.255.255.0</Subnet><DefaultGateway>192.168.1.1</DefaultGateway><Port>5005</Port></Message>走无线用SetWiFi,比有线多了 SSID 和密钥:
<?xml version="1.0"?><Message><Request>SetWiFi</Request><Use>Yes/No</Use><SSID>xxxx</SSID><Key>xxxxxx</Key><DHCP>Yes/No</DHCP><IP>192.168.2.225</IP><Subnet>255.255.255.0</Subnet><DefaultGateway>192.168.2.1</DefaultGateway><Port>5005</Port></Message>读回来的话,对应有GetEthernetSetting/GetWiFiSetting。设备回的报文里还会带_from_dhcp后缀的字段(比如<IP_from_dhcp>、<Subnet_from_dhcp>),那是它实际从 DHCP 拿到的地址,方便你确认配置到底生效没。
说句题外话,这个Port默认是 5005,我一开始还以为是"服务器端口",后来才反应过来——它配的是设备自身网络接口的端口。设备作为 WebSocket 客户端去连服务器时,服务器地址是在设备菜单里单独设的(就是ws://或wss://那个 URL),不在这条命令里。这点搞混了就会瞎调半天。
二、电源管理:SetPowerSetting是个意外之喜
我本来以为电源就一个开关,结果这命令里藏着定时计划:
<?xml version="1.0"?><Message><Request>SetPowerSetting</Request><wakeup_delay>0</wakeup_delay><idle_time_for_sleep>0</idle_time_for_sleep><RestartInfoCount>12</RestartInfoCount><no_0>0, 0, 0, 0</no_0><no_1>0, 0, 0, 0</no_1>...<no_11>0, 0, 0, 0</no_11></Message>wakeup_delay是唤醒延时,idle_time_for_sleep是无操作多久进睡眠。RestartInfoCount=12说明有 12 个定时重启槽(no_0到no_11),每组 4 个逗号分隔值。
这里得坦白一句:这 4 个值具体代表啥,协议文档没展开注释(不像下面的响铃那样标了 valid/type/hour/minute),所以我不敢瞎猜。你们接的时候最好先用GetPowerSetting读回实际的结构,看清楚每槽四值到底对应星期/开关/时刻的哪几项,再动笔写。
三、响铃:SetBellTime挺实在
门禁接在工厂、学校,到点打铃是刚需。这条命令设计得挺清楚:
<?xml version="1.0"?><Message><Request>SetBellTime</Request><BellRingTimes>3</BellRingTimes><BellCount>24</BellCount><Bell_0>0, 0, 0, 0</Bell_0><!-- valid, type, hour, minute --><Bell_1>0, 0, 0, 0</Bell_1>...<Bell_23>0, 0, 0, 0</Bell_23></Message>BellCount=24,也就是一天 24 个时段都能设铃(Bell_0~Bell_23),每个时段 4 个值:valid(是否启用)、type(类型)、hour、minute。读回来用GetBellTime。
几个容易翻车的地方(我替你们踩过/见过)
Port是设备自身端口,不是服务器端口。服务器 URL 在设备菜单里设,别在这条命令里找。- WiFi 的
Key明文写在报文里。意味着走ws://明文时密钥会裸奔,必须用wss://。这条其实跟下一篇安全篇连着,先记着。 no_那 12 组定时计划,4 值语义协议没写死,别想当然填,先Get读回实际结构。- 电源、响铃这类功能不是所有机型都有(示例里是 F500 机型),接之前确认你那台设备支不支持,否则
Set回去给你个Invalid Param别懵。 - 改网络配置有可能让设备短暂断连(尤其改 IP 时),远程操作留好现场兜底,别把自己锁在外面。
联网、供电、打铃,看着是"苦力活",但项目能不能稳,往往就栽在这些最基础的配置上。
下一篇聊点更有意思的——部门权限和时段门禁,那才是门禁系统的灵魂。
本文基于 M50 人脸终端 WebSocket SDK 协议文档整理,命令字段以文档原文为准。更多门禁对接实战,可关注 weicontrol.cn 相关内容。