投稿者 vb素人  (学生) 投稿日時 2017/10/4 13:49:26
魔界の仮面弁士さま

ありがとうございます。
いただいたヒントを参考にして、DateTime.Nowで取得した時間からグラフを作成してみました。

変更前の構成は、
①シリアル通信開始
②Private Sub SerialPort1_DataReceived
  'データ受信・データ並び替え
  Received(x, y, z)へ
③Private Sub Received
  'x,y,xデータをグローバル変数xdata,ydata,zdataへ代入
  'グラフの設定(ライン、マーカー)
  'テキストBoxへデータ表示
④Private Sub Button3_Click
  '保存ボタンクリック・Timer有効
  'グラフのSeries設定
  'csvファイルへタイトル行書き込み
⑤Private Sub Timer1_Tick
  '受信データをグラフへ描写
  'データをcsvファイルへ保存

としていましたが、

変更後の構成は、
①シリアル通信開始
  '通信開始時刻を記録
  'グラフのSeries設定
  'グラフの設定(ライン、マーカー)
  'csvファイルへタイトル行書き込み
②Private Sub SerialPort1_DataReceived
  'データ受信・データ並び替え
  '現時刻を記録
  '通信開始時刻-現時刻から経過時間を算出
  '☆データカウント
  Received(x, y, z)へ
③Private Sub Received
  'x,y,xデータをグローバル変数xdata,ydata,zdataへ代入
  'テキストBoxへデータ表示
  'グラフ描画
   ⇒このとき、横軸は②で算出した経過時間とする。
  'データをcsvファイルへ保存
  '☆データカウントラベル表示

このようにしています。

csvファイルに書き込まれたデータ(時間)を見ても、細かい時間周期でデータが取得できています。
☆印の所で、データを受信する(xyzのデータが揃う)たびにカウントし、カウント値を表示させていますが、

たまにこのカウントが遅れることがあります。
これは、
↓のときに教えていただいた、並び替えで時間が掛かってしまっていることが推測されますでしょうか。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=30252
(このときは、xy2つのデータでしたが、今は3つのデータとなっていて、
先頭F2-F0を検出するために、条件分岐処理で時間が掛かっているのかと考えています。)