gateway发送16进制序列

0

有个设备收发数据均使用16进制数据,我用gateway来发送16进制数据时,设备没有任何消息返回。


前台发送一段16进制序列,比如 55AA0002000A0C 。


我在网上查了很多发送16进制数据的方法,第一种发送数据前用hex2bin($data)将16进制数据转换成二进制发送;第二种则是pack("H*",$data);第三种是尝试将序列分解成2个一组的数组,然后使用chr(hexdec($data[$i]))的方式循环发送,这3种方法用gateway发送之后,设备都没有反应。之后我尝试用我自己写的一个tcp socket的demo来用这3种方法发送,设备都能成功返回数据。


这是怎么回事?有什么办法解决吗

已邀请:

敖德萨

赞同来自:

你发送简单的数据 你硬件那边能收到数据吗? 就比如你发送123456这样简单的数据过去看看你的硬件能否接收到数据 我用你说的第一中就可以 你看看你的web端后服务器端和你的终端是否能互通

six

赞同来自:

1、gateway 用tcp协议。
2、接收数据的时候在Events.php里的onMessage里接收
3、改Events.php里的代码要执行 php start.php reload重新加载才能生效
4、改start_gateway.php的代码要 php start.php restart重启才生效


注意这几点就不会有问题了

要回复问题请先登录注册