通过php访问串口

时间:2012-07-27 01:35:25

标签: php serial-port

我尝试过使用PHP访问串口,但运气不好。

我已尝试使用fsockopenfopenproc_open等。我无法读取或写入套接字。

示例:

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

1 个答案:

答案 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/