求:MFC编程之CAN通信---同步,超时处理方法

rolim   2009-12-17 13:09 楼主
环境:wince 5.0下,硬件S3C6410来评价
程序背景:
有一CAN接口,负责接收和发送数据。
1)接收
类型:有临时数据;有某段时间内周期数据(该数据,有一报文成一组,有几个报文成一组)
考虑处理情况:通信可能失败,有完全没收到,有仅收到一组内的开头几组;大部分情况下,完全收到并无延迟。
2)发送
类型:特定时间一组数据;特定时间内周期数据
考虑处理:假设发送不会失败,不会堵塞

接收和发送可能的情况:

1)临时发送一组数据,无回应
2)临时发送一组数据,需要接收一组回应数据
3)临时接收到一组数据(非回应数据),不需回应
4)特定时间内周期收到数据(组),不需回应

程序多于10个对话框,同一类通信数据可能在某一对话框出现,也可能在某几个对话框出现

现考虑:
一线程专做接收
一线程专做发送
但是对话框如何给线程传递数据,线程如何给对话框传递数据,数据如何同步,如何判断当前数据是否是最新(是在某一个动作之后得到;也许当前并不需要这组数据,但确收到了)。




回复评论 (3)

希望编程高手能指点迷津。
点赞  2009-12-17 13:12
VC里的消息机制呀。。。
自定义消息
#define WM_F8 WM_USER + 1
ON_MESSAGE(WM_F1, OnF1)
在线程里:
PostMessage(窗口名柄, WM_F1, NULL, NULL);
然后就交给对话框里的方法处理
或用全局变量!
点赞  2009-12-17 16:31
引用: 引用 2 楼 ankye 的回复:
VC里的消息机制呀。。。
自定义消息
#define WM_F8 WM_USER + 1
ON_MESSAGE(WM_F1, OnF1)
在线程里:
PostMessage(窗口名柄, WM_F1, NULL, NULL);
然后就交给对话框里的方法处理
或用全局变量!

没这么简单吧
点赞  2009-12-17 19:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复