C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: C# シリアル通信における数字データの送信について


(過去ログ 70 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■41078 / inTopicNo.1)  C# シリアル通信における数字データの送信について
  
□投稿者/ sy (1回)-(2009/09/11(Fri) 16:16:58)

分類:[C#] 

開発環境 : Visual C# 2005 Express Edition


初めまして。
serialPortコントロールを利用してシリアル通信を行いたいと考えています。
ボタンをクリックすることで数字データを送信し、受信側のアプリケーション(Cで開発)でchar型の数として認識させることが目的です。


private void SendParameter()
{
try
{
char[] parameter = new char[3];
parameter[0] = (char)serialTrigger; //int serialTrigger = 100
parameter[1] = (char)th_A_teian_best; //int th_A_teian_best = 3
parameter[2] = (char)th_B_teian_best; //int th_B_teian_best = 7
serialPort1.Write(parameter, 0, parameter.Length);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}

そこで上のような関数を記述し、ボタンクリックで呼び出すことができるようにしたのですが、実際に送信したデータをWindowsアクセサリの「ハイパーターミナル」で確認すると、「d(ハート)」(「d」と「ハート」)と表示されました。
送信する数字を「1」に統一し送信すると、「0」の中に顔を書いたような記号が表示されました。
また、上の「parameter」をchar型ではなくbyte型にしても同様でした。

このように文字化け(?)しないためにはどのように対処すればいいのか、お分かりになる方がいましたらご教授願います。
ちなみに、ハイパーターミナルを用いたシリアル通信は、仮想COMポートを作成して1台のPCで行いました。


引用返信 編集キー/
■41082 / inTopicNo.2)  Re[1]: C# シリアル通信における数字データの送信について
□投稿者/ オショウ (319回)-(2009/09/11(Fri) 16:45:59)
No41078 (sy さん) に返信
> そこで上のような関数を記述し、ボタンクリックで呼び出すことができるようにしたのですが、実際に送信したデータをWindowsアクセサリの「ハイパーターミナル」で確認すると、「d(ハート)」(「d」と「ハート」)と表示されました。
> 送信する数字を「1」に統一し送信すると、「0」の中に顔を書いたような記号が表示されました。
> また、上の「parameter」をchar型ではなくbyte型にしても同様でした。
>
> このように文字化け(?)しないためにはどのように対処すればいいのか、お分かりになる方がいましたらご教授願います。
> ちなみに、ハイパーターミナルを用いたシリアル通信は、仮想COMポートを作成して1台のPCで行いました。

  例をあげると・・・
  『0123456789』の文字は、アスキーコードで
  0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39
  になります。

  お解りになりますか?

以上。
引用返信 編集キー/
■41086 / inTopicNo.3)  Re[2]: C# シリアル通信における数字データの送信について
□投稿者/ Jitta on the way (430回)-(2009/09/11(Fri) 18:48:48)
No41078 (sy さん) に返信
>>このように文字化け(?)しないためにはどのように対処すればいいのか、お分かりになる方がいましたらご教授願います。
>>ちなみに、ハイパーターミナルを用いたシリアル通信は、仮想COMポートを作成して1台のPCで行いました。
>
>   例をあげると・・・
>   『0123456789』の文字は、アスキーコードで
>   0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39
>   になります。
>
>   お解りになりますか?
>


ハイパー ターミナル上で "100" と表示させるためには、0x31 0x30 0x30 という、3つのデータを送らないといけないのです。



# オショウさま、お借りしましただよ〜(CV 市原悦子)
引用返信 編集キー/
■41091 / inTopicNo.4)  Re[3]: C# シリアル通信における数字データの送信について
□投稿者/ sy (3回)-(2009/09/11(Fri) 20:34:35)
オショウさん、Jitta on the wayさん、どうもありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -