指定された時間の測定値を作成する測定器があります。この間、オーバーフローを防ぐために内部メモリから測定値をフェッチする必要があります。現在、私はこれを持っています:
public int FetchDatalog(int Time_s, double Period, out int Count, ref double[] Results)
{
Count = 0;
try
{
DateTime timeout = DateTime.UtcNow.AddSeconds(Time_s);
double[] values;
while (DateTime.UtcNow < timeout)
{
values = //here is the command to tell the instrument to return 10 results
Count = values.Count();
Thread.Sleep(500);
//HERE IS SOMETHING MISSING <-----
}
}
return 0;
}
そのため、指定された時間が経過するまで、ループで常に 10 個の結果を計測器から読み取る関数があります。ループ中に、読み取りデータをマージする必要があります。
矢印でマークされた位置で、10 個の値をマージし、最終的にすべてのマージされた値を結果に返すものが必要になりました。
不明な長さでこれを行うにはどうすればよいですか?
(追加の問題として:10の結果は「最大10」の結果になる可能性があります。10未満の場合もあるため、1つの値のみを読み取る必要がある場合はここでも変更できますが、これにより遅くなります。
助けてくれてありがとう
読みやすいようにここにコメントを追加しました - Sayse
私はマージを意味します:
loop1: values[]=1,2,3,4,5,6,7,8,9,0;
loop2: values[]=11,22,33,44,55,66,77,88,99,11
loop3: values[]=111,222,333,444,555,666,777,888,999,111
この 3 つの値は、最終的に次のようにパラメーターの結果に返されます。
result[]=1,2,3,4,5,6,7,8,9,0,11,22,33,44,55,66,
77,88,99,11,111,222,333,444,555,666,777,888,999,111
したがって、それらをまとめてより大きな配列にする必要があります。