NISCOPE范例里关于FETCH函数8位16位的问题

2019-07-17 14:46发布

范例是niScope EX Stream to Disk,里面有个地方不懂,为什么8位的时候下面那个判断是真,做后面的操作,16位的时候是假做后面操作。 还有主要是16位的看不懂,为什么队列为0反而执行后面的操作呢,而且这个我测试过确实是对的在取数据,不太理解,还有这个程序怎么能结束呢
3.jpg
2.jpg
1.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
dlsafety
1楼-- · 2019-07-17 18:08
回答一部分:
在这个代码中,从硬件内存提取数据放入队列,和从队列中取出数据写入二进制文件是放在两个循环中的,且两个循环之前没有相互制约的关系。
下面的那个循环中,实际动作的逻辑是:首先查看队列中是否有数据,如果有,直接舍弃;如果没有,等待100ms,100ms之内有数据则写入二进制文件,如果没有则跳到下一循环。
这个逻辑的意思是总是存储最新的数据。之所以要这样做,是因为下面的循环处理时间稍长,所以,如果不舍弃队列中的一部分数据,就会有些数据因为队列空间满了而舍弃。
大概就是这个意思,至于,8位的情况不同,我没有去试,可能是数据小,下面循环的速度也足够快,所以没必要舍弃数据以存储到最新的数据。
个人观点,仅供参考。 最佳答案
dlsafety
2楼-- · 2019-07-17 22:18
本帖最后由 dlsafety 于 2017-12-9 23:28 编辑


一周热门 更多>