|
▼まる さん:
こんにちは。
>シリアル通信についての質問ですが、Microsoft communications
> control Ver6ですが相手機器との通信はできているのですが、
> CPUの使用率が高くパソコンが熱くなる状態です。
> CPUの使用率を軽くする方法がないものかという質問です
> 通信状態ですが、相手機器のビットの立ち上がりを監視して、
> データーをエクセルに取り込むという方式です
「相手機器のビットの立ち上がりを監視して」ということが
よくわからないですが、
MSCommの通信方法には次の2つがあるそうです
h t tp://spectrum123.at.infoseek.co.jp/vb/vb_4/vb_4.htm
●イベントドリブン(割込み方式)による通信
シリアル ポートを使用した双方向処理を効果的に行う方法です。
●ポーリング方式による通信:
プログラム内で、主要な関数の実行が終了するたびに
CommEvent プロパティの値をチェックして、イベントおよび
エラーのポーリングを行う方法もあります。小規模で、単独で
動作するアプリケーションでは、この方法が適切な場合があります。
現在はこのどちらの方式ですか?
前者の方式なら、メモリ上のコミニュケーションバッファ
(というか、受信バッファ)にデータが送り込まれると OnCommイベント
が発生しますから、そこでイベントの種類をCommEventプロパティで
ケース分けして、CommEventプロパティが「受信イベント
comEvReceive」のときだけ、受信バッファ内のデータをInputメソ
ッドで取得して、ワークシートなどに吐き出していけばいいと思います。
( h t tp://spectrum123.at.infoseek.co.jp/vb/vb_5/vb_5.htm より)
Private Sub MSComm1_OnComm()
Dim Buffer As Variant
Select Case MSComm1.CommEvent
Case comEvReceive
Buffer = MSComm1.Input
Text2.Text = Text2.Text & Buffer
とはいえ、
もう10年もRS232Cやってないし、現在では環境がないので
テストできませんので、関係ページの紹介だけでした m(__)m
|
|