- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CAN接口COM组件在C 语言中的使用
CAN接口COM组件在C 语言中的使用
英创ARM9工控主板的一个很大的特色就是提供了标准的CAN总线通讯接口,客户可以方便地在工业现场、汽车、船舶等等领域进行CAN通信应用。由于英创ARM9嵌入式主板采用WinCE操作系统,很多客户都选择了界面友好、开发便利的C#语言(使用Visual Studio 2005.NET集成开发环境);以往用户在使用C#操作控制CAN总线的时候,是使用英创提供的动态链接库,采用传统的DllImport方法,首先在程序开始的地方来进行函数申明,然后才能在程序中进行调用;而这个动态链接库里面函数的EntryPoint由于系统的原因,往往是一个古怪的名字,而且英创每次在进行动态链接库的升级后,这个EntryPoint的名字就可能发生变化,这对用户程序的可维护性带来极大的不便。为了解决这个问题,英创公司现在提供了操作CAN总线的COM组件接口;用户只需要在目标平台上进行组件注册,然后在C#程序开发的时候,对该COM组件添加引用,即可在程序里面自由地通过对象操作来使用函数,而不必去费心地进行函数申明的工作。下面我们就以EM9000嵌入式主板为实例,在C#使用COM组件接口操作CAN总线作一个说明:
一、在目标嵌入式主板上进行COM组件注册
CAN COM组件的核心文件就是英创提供的ComCAN.dll动态链接库文件,首先需要将它在目标嵌入式工控主板上注册。用户可以使用Visual Studio Remote Tools提供的远程文件查看器连接目标嵌入式工控主板,并将英创提供的ComCAN.dll和REGSVR32.exe这两个文件下载到目标主板的Flash存储器上去(这里假设下载到EM9000的NOR Flash)。然后在开发主机PC上使用Telnet连接目标工控主板(如图),进入放置刚才下载这两个文件的Flash存储器目录,运行:
REGSVR32 ComCAN.dll
即可完成COM组件注册。
二、在C#工程中添加COM组件引用
接下来可以进入C#COM组件开发。首先将ComCAN.dll文件复制到用户的C#工程目录下,然后在Visual Studio 2005.NET集成开发环境中打开用户工程。为了使用CAN总线COM组件,必须为该工程添加外部引用;用户可在集成开发环境的右侧的解决方案资源管理器中找到引用,对其单击鼠标右键,然后单击添加引用(如图)。
在弹出的添加引用对话框中,选择浏览选项卡,并在你的工程目录下找到你刚才复制过来的ComCAN.dll文件,选择它,并单击确定。
这时,你已经完成了添加工程中的COM组件的引用工作,这时,你可以在集成开发环境的右侧的解决方案资源管理器中看到了一个名称为ComCANLib的引用,同时,ComCAN.dll也加入到了你的工程中(如图)。
三、在应用程序开发中使用CAN COM组件
首先,为了使应用程序能直接调用相关的类和函数,必须在程序的起始using语句中添加:
using ComCANLib;
程序中对于CAN总线的操作完全围绕CoCANClass这个类来进行的。用户可以首先定义CAN总线操作的类的对象实体,然后通过对对象里面的方法(函数)来进行所需要的操作。CoCANClass所定义的对象只有5个函数方法,使用此5个函数方法,就可以实现CAN总线的启动、发送、接收、结束、提示出错等工作。下面大致做一些讲解:
(1)定义类的对象
CoCANClass EM9000_CAN=new CoCANClass();//定义CAN对象实例
(2)使用对象的方法函数
英创在《CAN接口COM组件在WinCE平台上的实现》一文中提供了CAN COM组件的方法函数列表,里面详细罗列了各种方法函数的使用,以及相应的注意事项,用户在进行CAN开发之前应该详细阅读该文章。由于该COM组件是用C++来编写的,所以,这个列表里面的函数形式以及变量是以C++的方式来标注的;由于部分函数存在指针参数,同时,部分变量类型在C#语言里面的使用存在变化,所以我们下面以示例的形式来进行函数说明(举例中所使用的类对象已经在上文中定义):
·StartCAN(/*[in]*/UINT canNo,/*[in]*/UCHAR baud,/*[in]*/BYTE acceptanceFilter[9],/*[in]*/BYTE size,/*[out,retval]*/BOOL*pBool)
打开指定CAN接口的函数,在C#中,我们一般按照如下示例的方式来使用:
int Start_status=EM9000_CAN.StartCAN(Port_No,BaudrateSerialno,ACCFilter,9);
实际在C#中使用的时候,只有4个变量(变量的意义请参考《CAN接口COM组件在WinC
您可能关注的文档
最近下载
- 期货高手策略分析报告.pptx VIP
- 腹腔镜下远端胃癌根治术(精品).pptx VIP
- __主题__:地铁站务员岗位面试常见问题及参考回答,包括求职动机、日常工作内容、核心素质、过往经验、倒班制度、实际情况与预期不符等方面,以及服务意识与沟通能力、安全管理与应急处置等各类具体场景下的应对措施和考察点.docx VIP
- 期货交易技巧与策略.pptx VIP
- 学堂在线R语言数据分析考试答案.docx VIP
- 如何当好一名管理者.pptx VIP
- 项目四、项目投资管理实务.ppt VIP
- 干细胞与糖尿病课件.pptx VIP
- 消毒供应中心工人规范岗前培训的应用效果.doc VIP
- 渡槽拆除方案终极版.doc VIP
原创力文档


文档评论(0)