通过php访问串行端口

通过php访问串行端口,php,serial-port,Php,Serial Port,我试着用PHP访问串行端口,但运气不太好 我尝试过使用fsockopen、fopen、proc\u open等。我无法读取或写入套接字 例如: $fp = fopen("/dev/ttyUSB0", "w+"); fwrite("enable"); echo fread($fp, 1024); 我在过去曾多次遇到过这种情况。曾为Cisco 2811创建管理界面。这可能适用于您的IOS版本,尽管我不确定您的IOS版本(假设是Cisco,因为您的fwrite();通过控制台) 首先查看您的用户是否

我试着用PHP访问串行端口,但运气不太好

我尝试过使用
fsockopen
fopen
proc\u open
等。我无法读取或写入套接字

例如:

$fp = fopen("/dev/ttyUSB0", "w+");
fwrite("enable");
echo fread($fp, 1024);

我在过去曾多次遇到过这种情况。曾为Cisco 2811创建管理界面。这可能适用于您的IOS版本,尽管我不确定您的IOS版本(假设是Cisco,因为您的
fwrite();
通过控制台)

首先查看您的用户是否有权访问该设备。这可以通过
screen/dev/ttyUSB0
轻松完成。运行命令,要分离,请按ctrl+a,然后按d

我最常用家庭来做这样的事情

以下是一个例子:

$stream = stream_socket_client("udg:///dev/ttyUSB0", $errno, $errstr, 30);
fwrite($stream, "enable");

while(true){
    $line = stream_get_contents( $stream );
    if($line == 'exit'){
        break;
    }
}
默认情况下,
stream\u socket\u client
以阻塞模式启动,因此无需手动切换

如果您不介意安装扩展,您可以做的另一件事是扩展。它拥有的功能,允许您设置波特率和所有的好东西


您甚至可以查看此项目:

执行脚本的用户是否在该设备上具有写入权限
ls-l/dev/ttyUSB0
如果安装UUCP软件包,
cu/dev/ttyUSB0
tip/dev/ttyUSB0
是否按预期工作?(
screen
也可以进行串行操作,如果您无法轻松访问UUCP…)我从未访问过php中的串行端口,但您不应该设置波特率、奇偶校验、停止位等。。不知怎么的?我要走的是直达路线。非常感谢。