发明名称 |
多传感器探测数组数据实时采集方法 |
摘要 |
本发明涉及一种多传感器探测数组数据实时采集方法,采用Microsoft VisualC#2005平台在计算机中进行编程,通过编程后的计算机对数据采集卡及单片机进行控制;编程时采用线程池技术,在程序的数据采集线程中创建线程池,控制线程、绘图线程在线程池创建的次线程中运行;所述数据卡采集到的数据优先保存,并以二进制形式直接保存进文件。本发明充分利用数据采集卡提供的缓存器,对数据进行分时·集中传递,减少计算机与外设通行的次数。以实现实验中数据采集的实时性控制,并使采集的数据具有高效性、完整性、高可靠性、实时性等优点。 |
申请公布号 |
CN101488074B |
申请公布日期 |
2011.01.05 |
申请号 |
CN200910116251.5 |
申请日期 |
2009.02.26 |
申请人 |
中国科学院安徽光学精密机械研究所 |
发明人 |
何枫;刘洁群;侯再红;吴毅 |
分类号 |
G06F3/05(2006.01)I;G06F5/10(2006.01)I;G06F9/46(2006.01)I |
主分类号 |
G06F3/05(2006.01)I |
代理机构 |
安徽合肥华信知识产权代理有限公司 34112 |
代理人 |
余成俊 |
主权项 |
一种多传感器探测数组数据实时采集方法,其特征在于:采用MicrosoftVisual C#2005平台在计算机中进行编程,通过编程后的计算机对数据采集卡及单片机进行控制;编程时采用线程池技术,在程序的数据采集线程中创建线程池,控制线程、绘图线程在线程池创建的次线程中运行;数据采集线程中,设置一个数据HFIFO缓冲区指针,所述缓冲区大小为8192个字节;当总线上出现数据时,首先将接收到的数据帧放入HFIFO缓冲区;所述缓冲区分为5种状态:0 表示HFIFO空;1 表示HFIFO非空但不到半满;2 表示HFIFO达到或超过半满,但未到全满;3 表示HFIFO全满;其它数值 表示未知状态,当数据未达到缓冲区大小的一半时,即状态0和1:此时不产生数据采集事件,数据将驻留在HFIFO缓冲区中,数据采集线程等待;当数据达到或超过缓冲区大小的一半但未全满即状态2:进程将先判断一下HFIFO状态,若为半满,就读4096个数;超过半满,但未全满,此时读数分2次,先将前4096个数读出,再将后面的数据全部读出,即读空HFIFO;当HFIFO全满即状态3:此时数据采集线程只要读空HFIFO或达到用户指定的个数就可返回,读数也分2次,先将前4096个数读出,再读空HFIFO;其它数值:表未知状态,不应该出现;绘图线程分为第一绘图线程、第二绘图线程;状态2时进入第一绘图线程,在绘图时要求先判断一下HFIFO状态,若为半满,就读前4帧即4096个像素,然后立刻返回,进行绘图,绘图时只绘出第一帧,最后保存;状态3时进入第二绘图线程,读满8帧即8192个像素,然后立刻返回,进行绘图,绘图时也只绘出第一帧,最后保存。 |
地址 |
230031 安徽省合肥市蜀山湖路350号 |