掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
グラフのリアルタイム表示は?・2 (ID:86528)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>くりゅうさん >OLD_Xは常に0ではないのでしょうか? Debug.Print OLD_X 今後の為に上のような方法を知っておいた方がよろしいかと。 >もし1秒間に波が一つだったら、 >その波を100個のデジタルデータで表すということで、いいのでしょうか? サンプリング周波数というのは、 無限に連続したデータ(アナログデータ)から、 有限個の標本点を取り出す(デジタル化)際の周波数の事。 ひらたくいえば、1秒間の波を100個のデジタルデータで表すという事。 100Hzという事は0.01秒周期なので、標本点と標本点の間隔は0.01秒になる。 植木算的な考え方も理解しておく事。 >やはりLINEメソッドを使うべきでしょうか 点ではみずらいので、普通は線を使用すると思います。 Lineメソッドの場合、 AutoRedrawやらRefreshやらの設定に注意 >strdata(i)〜(i+1) データが無限の場合、配列にデータを格納していると、 配列の上限(Long型の範囲)でエラーが発生すると予想されます。 作図側のルーチンは、YとOLD_Yでいいかと。。。 #ファイル書き込み側のルーチンは適当な大きさの配列を用意するといいと思いますが >Y座標のデジタルデータの電圧の基準値をフォームの大きさと適確にあわせれば、 >波形は表示可能ですよね? もちろんです。 が、DC分のズレを補正してやる必要があるでしょうね。 >ねろさん >「タイムベースコレクタ」と言う方法を この方法はよく知りませんが、 くりゅうさんが必要としている『リアルタイム』は、 データの再生を記録時と同じスピードにする事では無く、 できるだけ記録と同時に再生する事だと思いますので、 この方法は必要ではないと思います。 >データーが送られてきたら表示するという方法で描画したらいかがでしょうか。 こちらの方法に同意です。 >サンプリング周波数が100Hzと言うことはVBの処理として >10mSecに一回の描画を行わなければなりません。 >これはちょっとVBでは無理です ただ描画するだけならば、問題ありませんよね? 上で述べたように、『正確』に10mSecに一回描画する必要はありませんから。 #下のコメント文を色々いじってください。 Private Sub Command1_Click() Randomize ' Me.AutoRedraw = True ' Me.AutoRedraw = False Start_Time = Timer For i = 1 To 1000 OLD_X = X OLD_Y = Y X = Rnd * 1000 Y = Rnd * 1000 Line (OLD_X, OLD_Y)-(X, Y) 'If i Mod 100 = 0 Then DoEvents 'DoEvents Next i End_Time = Timer MsgBox End_Time - Start_Time & "秒" End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.