我尝试使用 PHP 访问串行端口,但运气不佳。
我试过使用fsockopen
, fopen
,proc_open
等。我无法读取或写入套接字。
例子:
$fp = fopen("/dev/ttyUSB0", "w+");
fwrite("enable");
echo fread($fp, 1024);
我尝试使用 PHP 访问串行端口,但运气不佳。
我试过使用fsockopen
, fopen
,proc_open
等。我无法读取或写入套接字。
例子:
$fp = fopen("/dev/ttyUSB0", "w+");
fwrite("enable");
echo fread($fp, 1024);
我过去曾多次遇到这种情况。曾经为 Cisco 2811 创建管理界面。这可能对您有用,尽管我不确定您的 IOS 版本(假设 Cisco 因为您的fwrite();
通过控制台)。
查看您的用户是否可以先访问该设备。很容易,这可以用screen /dev/ttyUSB0
. 运行你的命令,分离,然后ctrl+a
按d
。
我最常将stream_*
家庭用于此类事情。
这是一个例子:
$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_socket_client
以阻止模式启动,因此您无需手动切换它。
如果您不介意安装扩展程序,您可以做的另一件事是DirectIO
扩展程序。它具有允许您设置波特率和所有好东西的功能,例如这里。
你甚至可以看看这个项目:http ://code.google.com/p/php-serial/source/browse/trunk/