Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
シリアル通信 初心者
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=24889#CommentId65417
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
YUU
 (社会人)
投稿日時
2015/8/17 18:59:55
返信遅れてすみません。いくつか助言をいただきフローまで書いていただきありがとうございました。
現状、理解の追いついていない部分での問題なのか、設定の問題なのか、仕様書の問題なのか不明ですがデータを受信できないのはかなり不安で焦りますね。
時間的に急ぐものでもないので構わないのですが実際問題テストに支障が出ているのも事実です。
そこで一つ一つ解消するために現在の疑問点をいくつかあげさせていただきます。
①無手順からハンドシェイクの設定以降後、受信できなくなった。仕様書曰く、無手順にてXON,XOFF制御(ソフト制御)のオプション設定ができるとの記載がありました。ということはハンドシェイク設定はハードでの制御ということになるような気がします。
ハード制御ではピンが重要とのことで、ハンドシェイクのプロパティをRequestToSendにし、 SerialPort.RtsEnable = Trueでよかったのでしょうか。
②改めてハンドシェイクについて調べ気になった個所が。とあるサイトにて「送信側から受信側に「データ送信中」という信号を送り、受信側はその信号を受け、信号線からデータを読み込みます」という文面が。これらから解釈するに機械から送信される際に何かしら準備OKを返す必要があるのでしょうか。
コントロール側が自動制御してくれるものと思っていたのですが誤った考えなのか。
③BCCについて。データに付加されるBCC。仕様書には「テキストの先頭文字からETXまでの文字単位での排他論理和で1バイトのバイナリで構成」となっております。機械側から受信時に文末に<BCC>が付加されているということはSerialPort.NewLine = "\r"←は誤りということにはならないでしょうか。
受信時の文末は無手順時は確かに\rで正しかったですがハンドシェイクでは<BCC>となっており文末判定に誤りがあるのではないでしょうか?
長々と書いてしまいすみません。勉強不足は痛感しておりますが頼れる者もおらず困っております。