15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > php5.6 如何使用dio?

php5.6 如何使用dio?

时间:2023-11-05 05:00:01 | 来源:网站运营

时间:2023-11-05 05:00:01 来源:网站运营

php5.6 如何使用dio?:
DIO,`Direct I/O functions`,是一套PHP扩展,读取IO设备的。它是依赖 C 的 fread 和 fopen,所以不需要装什么系统扩展
我用DIO读过串口rs232的数据,非常简单。它的数据流是这样的:

外设 => 串口 (USB)=> 驱动 => (C语言库) => DIO扩展 => PHP这里的外设可以是树莓派、RFID读卡器等任意设备,可以看到,需要安装的仅仅两个

  1. 串口转USB驱动,这个在你找到对应usb厂家的驱动安装即可;
  2. DIO扩展

DIO如何安装

  1. 在 pecl 搜索 dio,第一个就是,下载对应系统最新版本(跟驱动版本没有关系);
  2. phpize,php-config,make,make install 一套流程走下来;
  3. OK!

如何读取

php的读取也非常简单,要相信前人的智慧,github的项目比较多不是特别好辨认,我一般是上packagist搜索,看星星和下载量。

我用的是mdlayher/serial,不过composer国内支持不是很好,特附上github链接;

PHP class utilizing Direct IO to interact with a RS232 serial port
是不是相当的直观,下面是我的一段读取代码

<?php require_once __DIR__ . "/vendor/autoload.php"; use /serial/serial as serial; // Open serial connection $serial = new serial("/dev/tty.usbserial", O_RDONLY | O_NONBLOCK | O_NOCTTY); // Set connection options $options = array( "baud" => 9600, "bits" => 8, "stop" => 1, "parity" => 0, ); $serial->set_options($options); while(1) { $id = $serial->read(24); // 去掉第一位,标示ACK,ascii码值为6 $val = 6; for($i=1 ; $i<strlen($id); $i++) { $val = $val . '_' . dechex(ord($id[$i])); } echo strlen($id).": ".$val."/n"; }


试过几个库,效果都不是很好,要么是漏数据,要么是阻塞的,这个是我尝试后最好用的一个

关键词:使用

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭