C#を使っています.
Socket通信を用いて,Simulinkモデルと数値を送受信する場合についての質問です.
C#
1float msg = 2.689f
を
C#
1byte[] body = BitConverter.GetBytes(msg); 2stream.Write (body, 0, body.Length);
でstreamに書き込み,それを
MATLAB SimulinkのTCP/IP Receive(Data type : single, Byte order : LittleEndian)
で受け取り,さらにその値を
TCP/Send(Byte order : LittleEndian)
で送り返し,
C#
1Byte[] buff = new Byte[sizeof(float)]; 2Stream.Read(buff, 0, sizeof(float)); 3Float val = BitConverter.ToSingle(buff, 0);
で,
C#
1val = 2.689f;
となるプログラムを作り,数値を送受信することが出来ました.
しかし,都合上,TCP/IP Receive,SendはData type : double
でやり取りをしなければならなくなってしまい,Data typeをdoubleに変えるだけでは値がおかしくなり,困っています.
C#でfloatからbyteへ,また,byteからfloatへ書き換える際に,どの様なコードを書けばよいでしょうか.
そもそも,Data typeのsibgle, doubleとは何なのでしょうか.
他にも,int8, unit8, int16, unit16, int32, unit32などがあるのですが,
いまいち理解できませんでした.
宜しくお願いします.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。