ある装置をコマンドをシリアルで送信し移動させたく、
VisualC#にてシリアル送信ソフトを作成しています。
public static string command_str2;
command_str2 = "A001"; ←固定で入れてますが、本来はGUIで選択したコマンドが文字列(string型)で入ります。
byte[] buf = Encoding.GetEncoding("Shift_JIS").GetBytes(command_str2);
short size = (short)buf.Length;
serialPort1.Write(buf, 0, size);
#コマンド
0xA0 上移動
0x01 1マス
上記コマンド「A001」をバイナリーで送信したいのですが、ASCII文字「41303031」で送信されてしまいます。
文字変換されずに送信する為にはどのように変更すれば良いでしょうか?
※String型をどう処理すれば良いかが判っていません。
どなたか、ご教示をお願いします。
こんなのが落ちてました。
http://d.hatena.ne.jp/tilfin/20070923/1190528490
public static byte[] FromHexString(string str) { int length = str.Length / 2; byte[] bytes = new byte[length]; int j = 0; for (int i = 0; i < length; i++) { bytes[i] = Convert.ToByte(str.Substring(j, 2), 16); j += 2; } return bytes; }
このメソッドで返される byte[] を Write に渡せば良いんじゃないでしょうか。
コメント(0件)