掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MSCommでの出力を安定化について (ID:122957)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>おそらく、そうだと思います。実際、センサを動かさない状態では安定して >一瞬でデータを受信できるのです。しかしセンサを動かしたりすると >20秒フリーズが出てしまうのです。 情報の小出し良くないことあるね。 加速度センサーなんだから、センサーを動かすとGの変化のデーターをかなりの スピードで送ってくるのでしょう。 最初に送ってるコマンドは送信開始要求かな。 いずれにしてもこのコードでは、ボタンを押して送信要求を受けた瞬間の データーしか取得できないのでだめ、再設計ですね。 たとえば、こんなことかな。ただし当方RS232Cのデバック環境に無いので 動作の保証は×。 Const ComGetStringLen As Integer = 4 '4バイト受信 Const ComSendBuffZero As Integer = 1 '送信バッファ0で受信 Const ComUsePort As Integer = 1 Const ComSetString = "9600,n,8,1" Private Sub Form_Load() With MSComm1 .SThreshold = ComGetStringLen .RThreshold = ComSendBuffZero '送信バッファ空でOnComm開始 .CommPort = ComUsePort .Settings = ComSetString End With End Sub Private Sub cmd_Sen_Click() If MSComm1.PortOpen = False Then MSComm1.PortOpen = True End If MSComm1.Output = txt_send.Text & vbCrLf '送信要求 End Sub Private Sub cmd_Stop_Click() MSComm1.Output = "??" & vbCrLf '送信中止コマンドは?? If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If End Sub Private Sub MSComm1_OnComm() Dim Buff As String Select Case MSComm1.CommEvent ' RThreshold プロパティで指定された数のバイトを受信。 Case comEvReceive Buff = MSComm1.Input txt_rec1.Text = txt_rec1 & Buff & vbCrLf DoEvents End Select End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.