PHP COM口与DIO的连接

标签 php windows port

我正在尝试用 PHP 连接称重机。

我已经使用 super 终端进行了测试,它工作正常。

但是当我将 PHP 代码与 fopendio_open 一起使用时,它会被执行,但是当 fgetsdio_read 为调用后,它挂起并且不显示任何内容。

Fopen 示例

exec('mode com2: BAUD=2400 PARITY=N data=8 stop=1 xon=on');

$fp = fopen("COM2:", "r");
if (!$fp) {
  echo "Uh-oh. Port not opened.";
} else {
  echo fgets($fp);
  fclose($fp);
}

DIO 示例

exec('mode COM2: baud=2400 data=8 stop=1 parity=n xon=off to=on');
$fd = dio_open('COM2:', O_RDONLY | O_NONBLOCK, 0644);
echo dio_read($fd, 256); 

我无法尝试这两种方法来收集任何有用的输出。

我需要 inpout32.dll 文件才能连接吗?

php_iol.dll 的作用是什么,我也需要这个文件?

最佳答案

Windows下PHP无法读取串口。在 Linux 系统上则不然,在 Linux 系统上使用常见的 PHP 文件系统函数从 COM 端口读取数据没有问题。

这些文件系统函数也是处理 DIO extension 的首选方法:

The use of the DIO functions should be considered only when direct control of a device is needed. In all other cases, the standard filesystem functions are more than adequate.

当您将 DIO 示例报告为“不工作”时,您需要跟踪错误。请参阅:

接下来,您需要首先找到一个有效的 POSIX 示例,因为 DIO 不是 super 终端,而是 POSIX 风格。

或者,存在一些软件可以通过网络代理 COM 端口(例如 GPL'ed serproxy )。这可能会解决您与操作系统的集成问题,但我很确定您运气不好。

比较:

关于PHP COM口与DIO的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23589702/

相关文章:

python - 如何在文件夹中导入python文件?

windows - 无法从 Windows 中的 makefile 运行 'start' 命令

linux - 杀死端口的 Bash 脚本

php - PHP 中的 "imagettfbbox()"是如何工作的?

javascript - 将背景颜色保存/检索到数据库

header 重定向后,javascript 警告框未显示在 php 上

windows - 如何在 perl 中从当前工作目录后移一级

nginx - nginx大量端口转发

docker - 通过 Docker 在 localhost 上使用 SSL 运行 jenkins

javascript - Ajax PHP 查询根据日期检索数据