最近,项目要编一个四串口 的高速数据采集程序,速度是115200bps(四个都是这个速度),但是发现有数据丢失现象,能提供一些解决方案吗?提供一些经验!
解决方案 »
- 星际--红警等游戏界面及界面元素都是怎么做出来的
- LIN 2019错误,怎么解决?
- 关于AfxMessageBox ,关于LPCTSTR的疑问
- vc60,vc60 sp2,vc2003,vc2005,vc.net,等等,他们之间的区别是怎样的?
- 大数据量图片的读取
- 建了一个对话窗口(dialog),开机时最大化
- 为什么在CComboBox 控件中用AddString 添加item后,没有反应?
- 关于导出函数:VB调用VC的DLL时,VC的导出函数是否可以是一个类的成员函数????
- fatal error C1189://这个错误如何解决呢?
- 东北VC俱乐部?贴错了吧?
- 怎么实现在RICHEDIT里换行输出?
- IP包分段问题!
如果是的话,就不应该,有什么问题联系我[email protected]
http://www.csdn.net/develop/read_article.asp?id=11215
可能对你有用。但是组件不那么傻瓜,用起来可能比较麻烦。
另外我现在还有新的组件版本,支持抛出COM异常的(_com_error::Description)的,需要的话和我联系:[email protected]
封装好CComm类(里面有读写线程)
然后针对每一个传口进行设置!CComm pComm[N];
对应每一个串口要有自己的数据处理线程!
记着把缓冲区开大一些(因为你的速率要求很高)或者用标准模版:CList array<var,var>最好了!
这样就不会丢失数据了!但是有时候传输速率太高,硬件会有丢失数据,但是很少发生这种情况,所以你最后有重发数据的机制!
A Communication Class for Serial Port
http://codeguru.earthweb.com/network/serialport.shtml
发现 ClearCommError( hCom, &dwError, &comstat);
当一次事件激发时,WaitCommEvent( hCom, &dwMask, NULL );
comstat.cbInQue每次返回8,当然是数据量很大时。
不知你们是不是也是这样的情况?