C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: VBシリアル通信の速度


(過去ログ 135 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■79764 / inTopicNo.1)  VBシリアル通信の速度
  
□投稿者/ さくらとあおい (12回)-(2016/05/13(Fri) 14:30:17)

分類:[.NET 全般] 

以前、VBで組込み機器の通信データを受信して、グラフ表示をさせるについて
質問させて頂きました。試行錯誤していますが、動作する様にはなりました。

VBのシリアル通信の速度について質問させて下さい。
速度と書いてますが、ボーレートの事ではなく、受信して画面に受信データを
表示させた時のデータ更新についてです。

Tera Telmで組込み機器のデータを表示させると、通信データはボリュームの値を
出力させてますので、ボリュームを変化させると、見た目にはリアルタイムに値が更新されています。
自作したソフトの場合、かなりの時差が生じますが、このようなものでしょうか?

ネット上に通信ソフトのサンプルをいくつか落として確認しましたが、どれも同じ様に
ボリュームを変化させてから数秒後に値が変化します。
Tera Telmではリアルタイムに近い感じで更新していますので、組込み機器の送信データは
問題ないと思いますので、VB側のソフト等の問題かと思います。

通信は10msec間隔でセンサーデータを送信しています。グラフ表示させた時にデータ変化が
遅いので、文字表示させてみましたが、文字表示でも遅いので、VBのシリアル通信が
この程度なのか、早くする方法を当方がしらないだけか質問させて頂きました。

Private Sub SerialPort1_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim ReceivedData As String = " " '受信データ用変数を宣言します
Try
ReceivedData = SerialPort1.ReadLine 'データを受信します
Catch ex As Exception
ReceivedData = ex.Message '例外処理を行います
End Try
'Invokeメソッドにより実行されるメソッドへのデリゲートの宣言を行い、受信データを表示します
Dim adre As New DataDelegate(AddressOf PrintData)
Me.Invoke(adre, ReceivedData)
End Sub

Private Sub PrintData(ByVal sdata As String)
TextBox1.Text = sdata
End Sub
引用返信 編集キー/
■79765 / inTopicNo.2)  Re[1]: VBシリアル通信の速度
□投稿者/ さくらとあおい (13回)-(2016/05/13(Fri) 14:35:48)
すいません、久々の投稿でしたのでNET全般に質問してしまいました。
使用言語はVB2015になります。
引用返信 編集キー/
■79783 / inTopicNo.3)  Re[2]: VBシリアル通信の速度
□投稿者/ さくらとあおい (14回)-(2016/05/16(Mon) 08:23:56)
自己完結しました

受信データを受信ルーチンで下記の方法で表示させてましたが、
Dim adre As New DataDelegate(AddressOf PrintData)
Me.Invoke(adre, ReceivedData)

データのみ変数に代入し、タイマールーチンで表示させると
ほぼリアルタイムに表示できました。

以前、この方法でも遅かったイメージがありますが、
何か色々と勘違いした感じです。
引用返信 編集キー/
■79784 / inTopicNo.4)  Re[3]: VBシリアル通信の速度
□投稿者/ さくらとあおい (15回)-(2016/05/16(Mon) 08:28:12)
何度もすいません。
解決済みを入れ忘れました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -