简单说一下原理和方法。
首先为什么要用GageStream2Disk去记录预触发,是因为在用其他的sdk的时候,板载内存中只给了固定长度的预触发数据值,也就是说,你不能随心所欲的改变你想得到的预触发长度,因为板载留给预触发的大小是一个环形的buffer,不断的填满再重叠。
所以如果我们想要实现无限长的预触发数据的话,通过流模式其实是一种很好的方法,但具体的流的速率取决于你的电脑性能以及采集卡的流速率上限。对于采集卡性能的评估是非常重要的。
尤其是当采集卡支持thunderbolt3的时候,不要认为thunderbolt3就是能将8GB/S的数据传回PC RAM了。其实不然,打个比方,RazorMax Express CompuScope PCIe Gen3 digitizer支持thunderbolt3,但同时他的性能在pcle gen3下才能发挥最开,也就是流速率最大达到6GB/S。所以我们更应该选择将采集卡插再pcle上面,而不是通过thunderbolt3,这样会极大的影响流速率。
刚刚简单介绍了一些容易误判的地方,回归正题还是讲原理。
首先在内存中应该开辟三个buffer,buffer1和buffer2是小内存buffer,buffer1的作用是将板载内存的数据接收到PC RAM中来,在接受板载中的数据的同时,buffer2则位于工作buffer的位置,可以将buffer2的数据进行传输,也可以存储,在这里,我们将buffer2的数据进行内存拷贝,拷贝到buffer3中,buffer3则是一个非常大的buffer,可以用来存储大量的数据。我在这里用了16个GB的内存给到buffer3。当buffer2的数据拷贝到buffer3之后,buffer1和buffer2交换用途,因为