09-07-2009 07:51 AM
LabVIEWによるデータ収録系作成にあたり、
キューを利用して行おうと思っています。
現在データを無差別にキューを用いてリアルタイム(正確にはリアルタイムではなく、バッファによって一定時間で切り取る作業を連続で行っている)で
保存することができますが、
データ表示がバッファに依存して表示されてしまいます。
具体的には0.25s単位で取得し、保存され、キューとしても0.25sごとに一要素のキューが作成されます(240(ch)x1250(時間分解能)の配列の塊になっているようです)
そこでデータ保存と表示を別ループで行い、データ表示部において遅延(5秒に一回表示)を利用してキューをためて
後にそれを表示しようと試みています。
このときキューからデータを削除を利用すると最新キューのデータを取り出すだけなので、
キュー排出を利用してデータを取り出して見たところ、
240x1250のブロックが20個生成されます。
このデータを240x25000の配列に合成したいのですが、どのように行ったら効率的に行えるかわかりません、
ご指導のほどお願いいたします。
またオシロスコープのリングメモリのように,
キューを合成することでキューの最大量を一定にし、
新しくキューが出来たらこの合成したキューの後ろに入れ、一番前のキューを削除する方法についても
教えていただけると幸いです。
よろしくお願いします。
09-08-2009 01:41 AM
09-10-2009 02:58 AM
icrf_group さま
Please check the VI that I made for you(attached).
Does this VI satisfy your goal?
From your problem description, I thought that you have several(20) 2D arrays(240×1250) taken out from the queue and it seemed that your goal is to bind these 2D array blocks to a single 2D array of 240×25000.
You can "Reshape Array" like in the VI attached.
If you have a 2D array blocks as a cluster data, you can firstly "Unbundle" the cluster and secondly bind each 2D blocks with "Reshape Array" function.
Hope you can do it with this way!
SOHN