导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[emtronixuser]CAN接口COM组件在WinCE平台上的



No.65662
作者:emtronixuser
邮件:support@sw996.com
ID:136446
登陆:1次
文章数:48篇
最后登陆IP:118.115.14.158
最后登陆:2010/1/6 21:57:10
注册:2009/9/9 12:45:20
财富:100
发帖时间:2009/9/28 12:06:22
发贴者IP:60.255.30.10
标题:emtronixuser:CAN接口COM组件在WinCE平台上的实现
摘要:No.65662CAN接口COM组件在WinCE平台上的实现 文章来源:

      控制器局域网(CAN)是一个串行、异步、多主的通信协议,它以其高性能、高可靠性以及灵活的设计受到人们的重视,应用越来越广泛。英创公司的ARM9工控主板如EM9161,EM9260等均支持CAN总线接口,并实现了基于Windows CE规范的流式驱动程序(Stream Device Driver),对于大多数基于C/C++开发环境的应用,英创公司以静态库can_api.lib形式提供了相应接口函数,客户通过相应的API函数即可完成对CAN接口的操作。但对于使用像C#这样高级语言的应用,由于一般不支持静态库的调用,因此需要新的方法来解决这个问题。我们目前采用的基本方法是在该静态库的基础上,针对CAN通讯接口的数据收发以及对出错情况监测的应用,封装一个基于CAN通讯接口应用的COM组件,该组件中提供了一套更为简洁的接口方法函数,可以方便多种开发工具的调用,如:C#、VB、LabView等。使用时客户只需在系统中一次性注册该组件,并在应用程序中引用对应的DLL或TLB文件,就能方便使用其相应的接口方法函数了。

      本文介绍的基于英创工控主板CAN通讯接口的COM组件提供五个接口方法函数:打开CAN接口,关闭CAN接口,向CAN接口写数据,从CAN接口读取数据以及读取接口错误代码。客户方调用COM组件打开CAN接口后,COM组件服务器便在组件内部创建两个线程,一个用于接收CAN接口数据,一个用于CAN通讯错误处理。数据接收线程里通过WaitForSingleObject来等待CAN接口的接收事件发生,当CAN接口收到数据后,将数据放入指定的接收数据缓存中,客户通过调用读数据函数,将数据从缓存中读出。后面会对各函数做详细的说明。

一、数组作为组件参数

      作为通信类组件,数组常常作为接口方法函数参数传递,以交换数据,COM 组件是运行在分布式环境中的,对于一个组件程序(DLL或EXE) ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:14毫秒 最大:7276毫秒 查询6次