5

PHPでシリアルポートにアクセスして遊んでみましたが、あまりうまくいきませんでした。

fsockopen、、などfopenを使ってみましproc_openた。ソケットの読み取りや書き込みができません。

例:

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

1 に答える 1

3

私は過去に何度もこれに遭遇しました。かつてはCisco2811の管理インターフェイスを作成していました。これはあなたのIOSバージョンがわかりませんが、あなたの場合はうまくいくかもしれません(あなたのfwrite();スルーコンソールのためにCiscoを想定しています)。

ユーザーが最初にデバイスにアクセスできるかどうかを確認します。簡単に、これはで行うことができます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は、ブロッキングモードで起動するため、手動で切り替える必要はありません。

拡張機能をインストールしてもかまわない場合にできるもう1つのことは、DirectIO拡張機能です。それはあなたがボーレートとすべてのグッズを設定することを可能にする機能を持っています、ここの例

あなたもこのプロジェクトを見ることができます:http ://code.google.com/p/php-serial/source/browse/trunk/

于 2012-07-27T02:06:15.943 に答える