人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

バイナリでのシリアル送信方法 (再)
ある装置をコマンドをシリアルで送信し移動させたく、
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型をどう処理すれば良いかが判っていません。

どなたか、ご教示をお願いします。

●質問者: gontakun_55
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

こんなのが落ちてました。
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.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ