php 智能家居,基于Laravel+Swoole开发智能家居后端

本文介绍了基于Laravel和Swoole开发智能家居后端的关键技术,包括16进制ASCII码协议的解析、协议创建、硬件通信以及事件处理。作者分享了在PHP中解析16进制ASCII码的方法,以及使用Swoole进行TCP/IP通信的挑战和解决方案,并探讨了系统的鲁棒性问题。
摘要由CSDN通过智能技术生成

在上一篇Laravel如何优雅的使用Swoole中我已经大概谈到了Laravel结合Swoole的用法。今天,我参与的智能家居项目基本上已经结束了Web服务器及android端的开发(熬了个通宵突击把剩下的做了,好累), 趁热来聊聊基于Laravel+Swoole开发智能家居后端的关键技术点。

16进制ASCII码协议的解析##

b25e8b46bd02

硬件结构图

硬件我不谈,我只需要关心数据解析。如何基于Swoole如果在php中解析16进制的ascii码,这种文章还比较少呢。但核心的部分还是可以整理出来的,关键用到的就是chr()、hexdec()、bin2hex()这3个函数,网上还提到了用pack()、unpack(),因为前面3个函数以及很好的解决了问题,所以就没有继续深入。我建议在这里Php Manual官网先熟悉下这几个函数。

chr()函数从不同的 ASCII 值返回字符,hexdec() 函数把十六进制转换为十进制。通常结合这两个函数把16进制字符串转换为ASCII字符串,理解起来有点绕。

例如: echo chr(hexdec('fe'));//输出的就是下位机能认识的16进制的FE,大小写不敏感

bin2hex()函数把 ASCII 字符的字符串转换为十六进制值,用于从Swoole中读取数据的转换。

例如:$buffer = str_split(bin2hex($data), 2);//$data是Swoole中OnReceive事件传递的值

在解析协议时,上例中的$buffer数组中,存放了协议的每一位。那么怎么解析呢࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值