环境:wince 5.0下,硬件S3C6410来评价
程序背景:
有一CAN接口,负责接收和发送数据。
1)接收
类型:有临时数据;有某段时间内周期数据(该数据,有一报文成一组,有几个报文成一组)
考虑处理情况:通信可能失败,有完全没收到,有仅收到一组内的开头几组;大部分情况下,完全收到并无延迟。
2)发送
类型:特定时间一组数据;特定时间内周期数据
考虑处理:假设发送不会失败,不会堵塞
接收和发送可能的情况:
1)临时发送一组数据,无回应
2)临时发送一组数据,需要接收一组回应数据
3)临时接收到一组数据(非回应数据),不需回应
4)特定时间内周期收到数据(组),不需回应
程序多于10个对话框,同一类通信数据可能在某一对话框出现,也可能在某几个对话框出现
现考虑:
一线程专做接收
一线程专做发送
但是对话框如何给线程传递数据,线程如何给对话框传递数据,数据如何同步,如何判断当前数据是否是最新(是在某一个动作之后得到;也许当前并不需要这组数据,但确收到了)。
VC里的消息机制呀。。。
自定义消息
#define WM_F8 WM_USER + 1
ON_MESSAGE(WM_F1, OnF1)
在线程里:
PostMessage(窗口名柄, WM_F1, NULL, NULL);
然后就交给对话框里的方法处理
或用全局变量!