2

PHPでシリアルポート(r232)に何かを送信しようとしています。私はこのクラスを使用しています: http://www.phpclasses.org/browse/package/3679.html

問題は、1 バイトしか送信できないことです。しかし、「1」のようなものを送信すると、実際には 49 (1 の場合は ASCII) が送信されます。send("1") の代わりに send(1) を試してみたのですが、これは 2 バイトの整数なのでダメです。では、同等の ASCII ではなく、「実際の」文字を送信する方法はありますか?

4

3 に答える 3

4

chr()関数は、対応する ascii 文字の整数で指定された文字を返します。

于 2009-04-10T21:16:01.187 に答える
0

ライブラリは入力として文字を期待しているようです。にエンコードされる文字を送信する必要がある場合は0x01、「\001」を送信するだけです。関数 chr() は文字を整数値に変換するため、ここでは使用できません。

もう 1 つ: 整数のバイト サイズは基盤となるシステムに依存し、ほとんどが 4 バイトです。

于 2009-04-10T21:19:14.377 に答える
0

あなたが何を達成しようとしているのかわかりません。整数 1 を送信しようとしていますか? クラスに慣れていないので、値 1 だけを引数として指定しようとしましたか? それが機能しない場合は、chr()関数でラップしてみてください。

于 2009-04-10T21:22:23.327 に答える