投稿日 | : 2005/04/26(Tue) 22:10 |
投稿者 | : なまごん |
URL | : |
タイトル | : Re^2: MSCommについて |
御回答有難う御座います。
> こんな無茶なことを見たのは、初めてです・・・
> 通常、モード設定は、COMポートのオープン時に行い、あとはそれに従って
> 受信割り込みでデータを読み込むのですが・・・
>
> 受信イベントの中でモードの設定変更を行うのは、エラーしないからといって
> 行うのは、ナンセンスです。
おっしゃる通りです。デバック用に作ったものとはいえナンセンスでした。
以後気を付けます。
> それと、『&hE0』を受信するなら、あくまでバイナリモードでしょう。
>
> ご検討下さい。
バイナリモードでも試みたのですが、例えば、HEXで31(アスキーで1)を受信した場合に
buffer = MSComm1.InputのBuffer
のbufferにうまくデータが入ってくれません。
bufferの型も色々変えて見たのですが・・・
バイナリモードで使用するのは思考錯誤して今回が初めてなのですが、根本的にテキストモードと
使い方が違うのでしょうか?
> ※ E0を吐き出す機器が、ハード的にどうしようもないとのことですが
> ブレーク信号を出すか、制御線を操作しても、それは変化しないの
> か、もしくは、一定時間経過するか、何かコマンドを送信すれば、
> 止まるということでしょうか?
>
> であれば、止まった時点で受信バッファにあるデータは、全て読み
> ほかせばいいのではないでしょうか。どのみちそれ以降のデータし
> か意味が無いので・・・
説明不足でした、申し訳有りません。
機器とは常時ケーブルは接続してパソコンは受信待ちの状態で、パソコンから
1定間隔で要求信号を出力しています。
頻繁ではないのですが、機器は電源が入ったり切れたりし、電源が入るたびに1回「E0」を出力してきま
す。
制御線は機器側が何も見ていないので繋がっていないのと同じ状態です。
また、機器の電源が入っているかどうかもパソコンから要求信号を出力して帰ってこないときに切れて
いる
と分かるので、いつ機器の電源が入るか分からない状態です。
テキストモードで受信すると1行の処理がかなり掛かってしまうため、要求信号を出力するのが
だいぶ遅れてしまい、その間のデータが取れなく、
バイナリモードだと処理時間は掛からないのですが、受信データがうまく変数に入らないため通常の受
信
が出来ない状態です。
受信データはSTX(02)・・・・・ETX(03)でくるので、バイナリモードでうまく受信できれば「E0」を
とばして読み込もうと思ったのですが・・・・
何か良い策はあるのでしょうか?
御教授願います。