|
分類:[.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
|