2012-07-27 17 views
5

私はPHPでシリアルポートにアクセスして遊んでみましたが、大したことはありませんでした。PHP経由でシリアルポートにアクセス

私はfsockopenfopenproc_openなどを試してみました。私はソケットに読み書きできません。

例:私は、過去にこの何倍に実行した

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

は、スクリプトを実行しているユーザーは、そのデバイス上のパーマを書く持っていますか? 'ls -l/dev/ttyUSB0' –

+0

UUCPパッケージをインストールした場合、' cu/dev/ttyUSB0'や 'tip/dev/ttyUSB0'は期待どおりに動作しますか? ( 'screen'はUUCPに簡単にアクセスできない場合はシリアルのこともできる...) – sarnold

+1

私はPHPでシリアルポートにアクセスしたが、ボー、パリティ、ストップビットなどを設定してはならない。何とか? – hackattack

答えて

3

。 Cisco 2811の管理インターフェイスを作成していたのですが、私はあなたのIOSバージョンがわからないけれども、これはあなたにとってはうまくいくかもしれません(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_socket_client開始、あなたはそれを手動で切り替える必要はありませんので。

拡張機能のインストールを気にしない場合は、もう1つのことはDirectIOです。これは、あなたがボーレートとすべてのおいしさを設定するための機能を持っています、example here

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

+0

DirectIOは私が取る予定のルートです。ありがとうございました! –

関連する問題