VB2010で、シリアル通信の方法を教えてください。

ツールボックスの「Serial Port」を使っています。
送信までは難なくできたのですが、受信が旨くいきません。
参考にしたサイトは、
http://msdn.microsoft.com/ja-jp/library/cc720852 … です。

これを実行すると、受信が出来ないだけでなく、フリーズしてしまいます。

どうやったら、受信できるのでしょうか?

A 回答 (4件)

受信データが、


STX(&H02)とETX(&H03)には挟まれた形式のテキスト文字になっている。
エラーチェックのBCCは付加されない。
という仕様ならば
ポートをOpenした直後に
SerialPort1.NewLine = Chr(3)
とすれば良い。
受信したデータの先頭1文字がSTXの場合に正常なデータと判断できます。
    • good
    • 0
この回答へのお礼

ありがとうございます!

成る程、そのようにすれば良いですね。

お礼日時:2010/06/11 19:05

>受信するデータの終端の仕様が、ETX(&h02)でした。



NewLine プロパティにChr(2)を入れたらどうですか?
    • good
    • 0
この回答へのお礼

御解答、ありがとうございます。

>NewLine プロパティにChr(2)を入れたらどうですか?
改行コードの代わりになるものを、追加できるということですよね。

何処で、宣言をしたら良いですか?
また、参考になりそうなサイトを教えてください。

よろしくお願いします。

お礼日時:2010/06/10 18:55

どのようなデータを受信しているのでしょうか?



ReadLine()メソッドのヘルプを見ると
『入力バッファ内の NewLine 値まで読み取ります。
既定では、ReadLine メソッドは行を受け取るまでブロックします。
この動作が不適切な場合は、ReadTimeout プロパティに 0 以外の値を設定して、ポート上に行が存在しない場合は ReadLine メソッドで強制的に TimeoutException がスローされるようにします。』

となっていて、なおかつ NewLine の既定値はラインフィード(CTRL+J)なので
受信するデータにラインフィード(CTRL+J)が含まれていない場合には戻ってきません。

受信するデータの終端がキャリッジリタン(CTRL+M)なら
NewLineプロパティにChar(13)を設定してみてください。

参考URL:http://www.robotsfx.com/robot/robohow/RoboHow60/ …
    • good
    • 0
この回答へのお礼

御解答を戴きまして、ありがとうございます。

>NewLineプロパティにChar(13)を設定してみてください。
これが、原因のようです。
受信するデータの終端の仕様が、ETX(&h02)でした。

こうなると、面倒でも、一文字ずつ受信させるしかなさそうですね。

お礼日時:2010/06/10 08:40

・ハイパーターミナルで受信できるかテストしてみる


 →できない場合はCOMポートの設定がおかしいか、
  パーソナルファイアーウォールの設定を見てみる
  ※特定IPアドレスからの送信ならブロックしないようにする

・COMポートの設定を見直す
 CPR managerとかでポートを作り、テストしてみる

・Serial Portの通信設定のプロパティを見直す

・SerialPort1.ReadLine
 をReadExistingに変えてみる
とかでしょうか?

参考URL:http://social.msdn.microsoft.com/Forums/ja-JP/vb …
    • good
    • 0
この回答へのお礼

御解答を戴きまして、ありがとうございます。

ReadExistingで返事が返ってきました。
ただ、送られた通信プロトコルが分離されて受信しているようです。
(2度の受信イベントで、通信プロトコルが成立する)

お礼日時:2010/06/10 08:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

今、見られている記事はコレ!

  • 好きだけどケンカばかり……そんな彼との結婚は?

    やたらとケンカが多いカップルというのはいる。それでも腐れ縁なのか長く交際し、いざ結婚しようと決めたときに、ふと思い悩む。こんなにケンカが多いのに、結婚して大丈夫? と。今回は「教えて!goo」に寄せられ...

  • ポンコツな日々:第125話「食べてもOK」

    日々のちょっとしたヘンな出来事を、1話完結形式の4コマで綴っていきます。時にするどく、時にやんわり、ありそうで無さそうな日常の1コマを切り取ってお届けします。

  • “罵声大会”に怒り心頭?名指しで苦情も……駅員泣かせの鉄道ファン

    時として人は趣味に没頭してしまうと、周囲に迷惑をかけてしまいがち。それが公共の場ならばなおさらである。「教えて!goo」に「何で鉄道ファンはマナーの悪い人が多いのでしょうか?」との質問を見つけた。鉄道愛...

  • たまランチ:第102話「ネコ好き」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • エルフ田さん:第125話「洗濯干しの『コツ』」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ