パラレルポートプログラミングを介してハードウェアと相互作用するプログラムがあります。私はそれをコンパイルし、そのオブジェクトファイルを使用してハードウェア(単純なLED)と対話しました。シェルで直接実行すると、LEDを点灯させる目的がありますが、phpでshell_exec()を使用して実行すると、コマンドは実行されますが、ハードウェアと対話できません。私は完全に混乱しています...
3 に答える
PHP スクリプトが別のユーザーとして実行されている場合 (たとえば、Apache モジュールとして実行している場合は user である可能性がありますapache
)、ユーザーとしてログインした場合と同じように HW にアクセスできない場合があります。パラレル ポートと対話するために必要な権限を確認してください。
これはかなり的外れかもしれませんが、PHP を使用してハードウェア インターフェースを行う場合は、そこに AJAX もいくつか投入します。
基本的に、Ajax関数を介してJavaScriptにキーストロークをサーバーに渡します。PHP は、javascript を介して新しい要求を受け取るたびに、事前に作成された一連のコマンドの配列でキーストロークを検索し、そのキーストロークのshell_exec()
コマンドを実行します。
javascript にキーの押下をリッスンさせ、シェル コマンドの配列を可能な各キーストローク (または気の利いた場合はストロークの組み合わせ) に直接関連付けさせます。
ドットとダッシュのような非常に単純なものから始めますが、本当にクールなものをすぐに手に入れることができると思います.
パラレル ポートに接続し、PHP が通信できるドメイン ソケットを提供するホスト上に、ある種のソケット サーバーをセットアップします。これは、RESTful プロトコルを介してストリーミング I/O を処理する唯一の方法です。
Anthony が述べたように、AJAX を少し使用すると、ユーザー エクスペリエンスに関してはかなりシームレスになります。
これにより、単純な PHP ソケットを使用して、接続、送信、応答の取得、表示、および要求ごとのウォッシュ/リンス/繰り返しを行うことができます。shell_exec() を扱うよりずっと簡単です。