NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

型変換(CAN、U8[4]->SGL)

解決済み
解決策を見る

お世話になります。

 

CANを使用して通信データを取得しています。

この時取得するデータは8バイトでu8[8]で取得します。

この中の4バイトu8[4]は相手機器より単精度浮動小数点を送信しています。

Cプログラムのようにunionでの型変換のような方法はどのようにするのでしょうか?

 

0 件の賞賛
メッセージ1/4
4,092件の閲覧回数

すいませんがやりたいことは下記の右下〇の変換です。

無題.JPG

0 件の賞賛
メッセージ2/4
4,075件の閲覧回数
解決策
トピック作成者Taxi_Driverが受理

こんにちは

 

U8[4]->SGL変換、こんな感じではどうでしょうか?

バイト配列を文字列化した後に「文字列から非平坦化」でSGLに変換しています。

「文字列から非平坦化」する際のエンディアンの指定を"little-endian"にしていますが、

適宜変更してください。

参考のために、SGLからU8[]への変換の例もいれておきます。

 

u8Array_ToSGL.png

 

 

 

メッセージ3/4
4,051件の閲覧回数

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

無事変換できるようなりました。

 

自分でもいろいろ試して確認したところ単に型変換でもできることもわかりました。

U8[4] -> U32 -> 型変換(型SGL) -> SGL

 

もう少しいろいろな関数勉強していきたいと思います。

 

0 件の賞賛
メッセージ4/4
4,038件の閲覧回数