求助:串口通信数据处理问题
我用vc做了一个通过modem拨号采集温度的程序,大体思想是这样的:每隔一小时对所有传感器连续拨号,采集他们的温度,程序是单线程的,但是我不知道如何判断对一个传感器采集温度结束,什么时候再采集下一个传感器的温度。
我的方法是设了两个个全局变量bool b_ReadDataOver;int iData;
在CTempratureView::OnCommMscomm() 里对数据处理完毕,使b_ReadDataOver=true;iData=采集的温度值;
在CTempratureView::OnTimer(UINT nIDEvent) 里拨完一个传感器的号之后设置一个循环,不断判断
b_ReadDataOver的值,当他为true的时候,停止循环,保存iData,然后拨下个传感器的号。
CTempratureView::OnTimer(UINT nIDEvent) 程序大体如下:
{
拨一个传感器的号码
while(1)
{if(b_ReadDataOver==true) break;}
保存iData;
继续拨下一个传感器的号码
}
但是我这种方法不行,拨一个号程序就停住了,不能继续拨下一个号,估计是b_ReadDataOver的值没有传过来,一直在 while循环里边循环。
哪位高手帮帮我,这种问题一般都怎样处理,用什么方法判断下一次拨号比较好。而且我不想把程序改成多线程的,那样涉及的问题太多。