1

私は自分のプロジェクトについてNIサポートフォーラムでスレッドを開始しましたが、現在の問題は、LabVIEWでドライバーが書くだけではありません。USBUARTブリッジを使用してコンピューターとインターフェイスする風速計があります。私はExtechにあらゆる種類のドキュメントを要求し、以下の通信プロトコルのみを受け取りました。

シリアル通信プロトコル

これでいくつかの問題が発生したので、風速計に含まれているソフトウェアを使用して、portmonを使用して、行き来するコマンドをスニッフィングしました。問題をできるだけ単純化するために、私は周囲温度の読み取りのみを行いました。以下は、製造元のソフトウェアを使用して機器に接続したときにportmonがキャプチャしたものです。

(これは、上記のプロトコルドキュメントの「アップロードプロトコル」です)

AA 61 64 6A 67 08 40 00 40 00 01 00 00 C6 41 00 00 00 00 00 3C 1C C6 9A 19 99 42 00 3C 1C C6 00 00
AA 61 64 6A 67 08 40 10 40 00 01 7D 0C C6 41 00 00 00 00 00 3C 1C C6 39 1F 99 42 00 3C 1C C6 00 00
AA 61 64 6A 67 08 40 10 40 00 01 00 00 C6 41 00 00 00 00 00 3C 1C C6 9A 19 99 42 00 3C 1C C6 00 00
AA 61 64 6A 67 08 40 10 40 00 01 83 F3 C5 41 00 00 00 00 00 3C 1C C6 FB 13 99 42 00 3C 1C C6 00 00

これはわずかに切り捨てられていますが、重要な部分がそこにあるはずです。当時の周囲温度は約76.5Fでした。したがって、ドキュメントによると、これは10〜13ビットである必要があるため、次のように信じています。

0000c641
7d0cc641
0000c641
83f3c541

記録された周囲温度になりますが、これをどう読むかわかりません。F1には少しあるように見えるので、ケルビンまたは摂氏からの変換が必要になる理由はわかりません。また、いくつかのフィールドについて文書化されているものとは完全に異なる値を取得するという事実も注目に値します。そのため、私が何か間違ったものを読んでいるか、文書化が間違っています。プロトコルについてメーカーからこれ以上回答を得ることができなかったので、なぜ私のデータが期待されたものに半分しか似ていないのかわかりません。

4

1 に答える 1

2

41C60000 IEEE754標準の32ビット単精度浮動小数点数として24.75に変換します。これは、76.55Fにマップされる摂氏値のように見えます。

残りのデータについては、次のようになります。

 41C60000 = 24.7500000000000000000 
 41C60C7D = 24.7560977935791015625 
 41C5F383 = 24.7439022064208984375

これで、エンディアンとフォーマットが整理されたと思います。

于 2012-05-01T19:05:50.057 に答える