«« 打倒PricELessの為に行った7つのプロセス | 淀川河川敷沿いの自転車通勤が結構気持ちいい!点と不安点を列挙してみた »»
RS-232Cことシリアル通信を行う機器とPC(Windows8.1)を繋げてバイナリーデータの通信テストをする際、何を用いますか?
世間一般で有名なのは、やはりTeraTerm!
ということで今回も用いていたのですが、どうもデバッグをしていくとおかしな点に気がつきました。
バイナリーデータはぱっと見読めないので、TeraTermの受信結果をログファイルに出力させたら、別途自分で機器の仕様に基づいて解析しCSVに変換するプログラムをVisualStudioで組んでみた。
しかし通してみると、そのプログラムがどうも落ちまくって、途中までしか変換できない。
何でやねんと、stirling(バイナリーエディタ)で直接バイナリログを眺めつつ受信したデータを手動で解析してくと、どうもたまに定期的にデータ欠損している!ということが分かった。
こうなると責任者は、「ラインモニタ上ではうまく動いていたんですけど」と主張する機器担当者か、変換ケーブル担当者か、動作チェック担当者(私)の見方が悪いかで、皆自分の正しさをデータを持ち出し主張し泥沼タイムに突入っ!
-と、なりがちですが。
すみません、ちょっと調べたら「動作チェック担当者(私)」が悪い事が分かりました。
どうもずみまぜんorz。
TeraTermを止めて※、別のスタッフから進められたVectorより無料でダウンロードできる「シリアルデバッグツール2」(SerialDebug Tool R2)でいくつか試したところ、そのいくつかは機器担当者が記載した仕様書通りに動くことが確認できました。
※こういう場合、TeraTermの設定を変えれば同種の動作検証がTeraTerm上でもできるのかもしれません。
ですが、そこまで調べて対応する余裕が今の自分にはありません。
「シリアルデバッグツール2」では、送信欄に 0x02,0x80,...等と入力すると容易にバイナリデータを機器側に送信できる機能も付いているので、プログラムを組むことなく応答テストができるのがいいですね。
また応答内容について、バイナリ-コード内での改行ポジションといえるキャラクターコード0x03(ETX)が来たらなのか通信ごとのワンブロック毎に、画面内でも改行をしてくれるのもいいです。
手動の解析が捗ります。
ただ、受信するバイナリデータについて、バイナリのまま、まるごと出力できなさそうなのがちょっと痛い。
折角作った「別途C#にて機器の仕様に基づいて解析してCSVに変換するUIで動作するプログラム」が動かず、やっぱり手作業でCSVに変換してみないといけないので、他のコマンドを含め一通りテストする作業がちょっと面倒くさいなあ。
2020/05/02 広告におけるボタンを改善
2020/03/02 広告をラトックシステム USBシリアルコンバータ REX-USB60Fに変更
2015/02/14 初稿
投稿者 kuze : 2015年2月14日 17:41
«« 打倒PricELessの為に行った7つのプロセス | 淀川河川敷沿いの自転車通勤が結構気持ちいい!点と不安点を列挙してみた »»
コメント