实时采集 本帖最后由 shan_dong_ren 于 2009-09-23 10:02:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 线程模型不太好吧,你可以设计一个采集线程,专门负责接收下位机数据采集;如果处理比较耗时,最一个工作者线程池,来消费链表里面的数据(解析包,处理等,线程池加command模式)。另外,记得要有sleep。还有就是采集线程,一次要读尽可能多的数据,比如read(1024*5)之类的。这样就能减少io次数。 我现在是开了2个线程(加上主线程一共3)其中主线程负责实时显示绘图一个线程负责接收数据,并放入链表中另外一个线程负责把数据从链表中读出,然后保存至txt文档现在就是保存和绘图跟不上接收数据的步伐 我给你出个主意。你绘制的内容好比,一个木桶,要绘 制的数据是水。你的缓存,应该只保存这个桶的大小。这样,不管数据来的多快,你总会有一桶水。当水来的太快的时候,水就溢出了。加一个fifo的数组就可以了。 典型的生产者消费者模型。我做个一个USB数据采集,30M字节一秒的数据没有问题。用模拟数据代替,可以达到240M字节/s.详见我的下载列表中的质谱仪数据采集。 串口WriteFile阻塞问题 有没有吧Windows消息代码映射到消息名称的办法 WORD中的文本框是如何实现?有高手能指点下吗? 有谁懂得ip message的编程原理 贴开出交流 vc6.0安装问题!!急!! 如何指定保存文件的默认目录 我用MFC写了一个屏保,问题是我该怎么响应“设置”按钮的消息,和支持密码! 请问如何让bat文件在后台执行 不好意思,与VC无关 用WinInet编程时如何确定文件下载的进度,就是和IE低栏的下载进度条一样,是如何实现的? 哪里出错了,大家请看一下, 智能指针怎么传进参数
其中主线程负责实时显示绘图
一个线程负责接收数据,并放入链表中
另外一个线程负责把数据从链表中读出,然后保存至txt文档现在就是保存和绘图跟不上接收数据的步伐
当水来的太快的时候,水就溢出了。加一个fifo的数组就可以了。