问题:报错等待传输时间超时。
解决方法:原因是没有触发,在ini文件中触发超时为100s,而等待传输时间为5秒。所以一直没有触发事件时,而又过了等待的传输时间,就会报错。
这样,我们只需要把触发超时时间改为小于等待传输的时间,就可以使得程序被强制触发。便可以记录数据,但是这样的话,并不是由于外部触发源导致的触发,因此没有触发数据从板载内存中传到PC RAM中去。
计划用一个信号源,去从外部触发信号采样,观察被传输到PC RAM中的数据,然后传输到硬盘中,再解析数据,看看波形数据,根据设置的阈值来看,到底有没有预触发的数据。
如果要获得更长的预触发数据,现在最好的方法就是,通过流模式,一直去采集数据,然后再开一个buffer,将workbuffer传输到这个分析buffer中,开一个线程去不断的检测有没有闪电信号,实际上就是一个软触发的功能,如果有信号的话,那么就拿出来这个阈值之前1s中的数据。存在硬盘中来。
这样就可以无限的得到预触发的数据了。而且也保证了没有数据的丢失。
目前新的问题和难点就是:
新分配一个内存缓冲区,去不断的监控已经存满的workbuffer,看里面是否有闪电信号,如果有的话,就存入硬盘中。
说起来简单,实际操作很难。开始新的尝试。
具体函数解析可见链接:
GageStream2Disk第4次尝试 本篇内容:GageStream2Disk的函数和API详解(超长预警)_Y.QL19CAS的博客-CSDN博客
GageStream2Disk第5次尝试 本篇内容:GageStream2Disk中CardStreamThread函数详解_Y.QL19CAS的博客-CSDN博客 先看懂所有代码,再写软触发的sdk。