問題タブ [uint16]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2820 参照

python - Python: uint16_t の配列を文字列に変換します (RS-485 経由の Arduino から)

modbus rtu 経由で json を送信しようとしています (modbus の使い方が非常に悪いことはわかっています)。

私のスキーマは次のようになります。 ここに画像の説明を入力

Arduino USBをCOM5としてPCに接続し、USB-RS485に接続されたRS485コンバータをCOM4としてPCに接続しました。

ここに画像の説明を入力

QModBusアプリケーションを使用して Arduino からデータを読み取ると、大量のバイト (COM4) が表示されます。

制御用: QModBus から「保持レジスタの読み取り」を送信した後、「Arduino USB ポート」(COM5) の Arduino シリアル モニタは有効な文字列を出力します。つまり、modbus バイトは問題ないということです。

ここに画像の説明を入力

私のArduinoコードがあります:

しかし、これらのバイトをPythonでjson文字列に変換する方法がわかりません。私のコード:

コードは QModBus と同じ値を出力します:

arduinoのシリアルモニターでわかるように、これらの数値をjson文字列に変換するにはどうすればよいですか?

また、modbus 経由で送信するために Python 文字列を「uint_16t」に変換する方法。

ありがとうございました!

0 投票する
2 に答える
590 参照

ios - 最初のゼロをスキップせずに文字列をintに変換する方法は?

注-ここでhexttoIntを変換しようとしていません..私が達成したいのは、16進形式のシリアル番号305419896(10進数)の9桁が12345678であることです..0x1234を1つの値として、0x5678を他の値として取得しようとしています価値..

"0145"私の10進数は021340031で、16進数は01459F7Fで、とのような2つの文字列に分割されて"9f7f"います..この文字列値は、 0x0145 、 0x9f7f ..のような形式で必要です。

そのために、最初に Str を Int に変換しようとしています。

それから私は得て145います..

String を UInt16 に直接変換する方法はありますか、または期待値を取得するための回避策はありますか?