我正在尝试连接称重机与PHP。
我已经用超级终端测试过了,它运行得很好。
但是,当我在fopen或dio_open中使用PHP时,它会被执行,但是当调用fgets或dio_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的角色是什么,这个文件我也需要吗?
发布于 2014-05-11 07:03:19
在Windows下,PHP无法从串口读取。Linux系统上的情况并非如此,在Linux系统上,使用常见的PHP文件系统函数从COM端口读取没有问题。
这些文件系统函数也是DIO延拓的首选方法。
只有在需要直接控制设备时才应考虑DIO功能的使用。在所有其他情况下,标准的文件系统功能都是足够的。
当您将DIO示例报告为“不工作”时,您需要跟踪错误。请参见:
接下来,您需要首先找到一个实用的POSIX示例,因为DIO不是超级终端,而是POSIX样式。
或者,有一些软件可以通过网络代理COM端口(例如GPL‘’ed 服务器代理)。这可能会解决您与操作系统的集成问题,但是我很肯定您不走运。
与以下比较:
https://stackoverflow.com/questions/23589702
复制相似问题