0

私はpythonスクリプトを取得して、pyserialでシリアルポートに、serialport2を使用してnode.jsに書き込もうとしています。

私はbytes()pythonで非常に混乱しています。誰かが私に手を差し伸べることができるのだろうか?

パイソン:

ser.write(bytes(chr(160))
ser.write(bytes(chr(157))

では、node.jsでこれを行うにはどうすればよいですか?

node.js で使用される serialport2 は、ここにあります

4

2 に答える 2

0

String.fromCharCode(code)おそらく、JS で文字コードを文字列に変換するために検索します。

serialport2 でこれを試してください:

port.write(String.fromCharCode(160, 157));
于 2013-01-15T17:48:50.140 に答える
0

node-serialport2 readmeから:

write(バッファ、[コールバック])

シリアルポートにデータを書き込みます。

引数

  • buffer- これは、ノードの Buffer オブジェクトまたは文字列にすることができます。
  • callback(err, byteWritten)- バイトの書き込み後に呼び出されるコールバック。

したがって、文字列オブジェクトまたは Buffer オブジェクトを引数として指定できます。Buffer オブジェクトはおそらくあなたが望むことをします (整数値を送信します) :

var buffer = new Buffer([ 8, 6, 7, 5, 3, 0, 9]);

これにより、バッファがこの配列の内容に初期化されます。配列の内容は、バイトを表す整数であることに注意してください。

あなたのデータでは、次のようになります。

var buffer = new Buffer([160, 157]);

ところで、PySerial を使用して Python で特別なキャストを行う必要はありません。PySerial API ドキュメントから:

書き込み(データ)

  • パラメータ: data– 送信するデータ。
  • 戻り値: 書き込まれたバイト数。
  • SerialTimeoutException を発生させます: ポートに書き込みタイムアウトが構成されていて、その時間を超過した場合。

文字列データをポートに書き込みます。

バージョン 2.5 で変更: 利用可能な場合は bytes と bytearray のインスタンスを受け入れ (Python 2.6 以降)、それ以外の場合は str を受け入れます。

「バージョン 2.5 で変更された」メモに注意してください。

于 2013-01-15T17:49:08.903 に答える