下位机不停地向PC发送相同的指令,间隔为100ms,指令的长度是一定的10Byte,而且指令的帧头已知为"***"。
但是指令不是全部需要,只有程序在特定的时候需要读取该指令。请问串口数据应该怎么处理?串口读数据是一个专门的线程处理的,用API实现。
线程中需要不停地从缓冲区读数据,并提取出指令存下来,需要的时候直接取吗?
还是不用读数据,只有需要指令的时候再从缓冲区读取数据再提取敕令呢?
但是指令不是全部需要,只有程序在特定的时候需要读取该指令。请问串口数据应该怎么处理?串口读数据是一个专门的线程处理的,用API实现。
线程中需要不停地从缓冲区读数据,并提取出指令存下来,需要的时候直接取吗?
还是不用读数据,只有需要指令的时候再从缓冲区读取数据再提取敕令呢?
解决方案 »
- 客户端是VC++6.0编写,但是因为要求服务器端用C#网页编写?
- UNICODE宏怎么使用。
- 如何在SQL中存取位图?
- 类的初始化方面的问题,急
- 如何实现将DWG文件(AutoCAD)导入数据库Binary||Blob字段????????
- 求助 C/S里侦听线程这样写可以吗?谢谢谢谢好心人:)
- 【【【只有10分了,问一下在按Ctrl+W时,出现这样的错误:parsing error:Identifier expected.】】】
- 谁会用alpha通道解决抗锯齿?
- 简单问题,如何关闭一个MDI里面的子窗体
- 如何将串口发送过来的浮点数显示在编辑框中
- vc6编写串口通信程序时遇到的问题,求解答!
- 如何使用OnTimer
线程中需要不停地从缓冲区读数据,并提取出指令存下来,需要的时候直接取吗?
还是不用读数据,只有需要指令的时候再从缓冲区读取数据再提取敕令呢?方法1:
callBack pFun =NULL;
pFun回调函数指针thread()
{
byte tmpbuf[100];
while(1){ if(pFun!=NULL){
callback pfun();
}else{
recv(tmpbuf)
}
}
}想要如何处理更改回调函数指针,
不处理回调置空指针方法2:
也可用信号量同步,方法很多
不需要数据的时候直接阻塞,
需要时,给个信号量