我尝试过使用PHP访问串口,但运气不好。
我已尝试使用fsockopen
,fopen
,proc_open
等。我无法读取或写入套接字。
示例:
$fp = fopen("/dev/ttyUSB0", "w+");
fwrite("enable");
echo fread($fp, 1024);
答案 0 :(得分:3)
我过去曾多次遇到这种情况。曾经为Cisco 2811创建管理界面。虽然我不确定您的IOS版本(假设您的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
扩展程序。它具有允许您设置波特率和所有好处的功能example here。
您甚至可以查看此项目:http://code.google.com/p/php-serial/source/browse/trunk/