【技术实现步骤摘要】
一种CAN设备开发系统及其方法
本专利技术属于CAN设备开发
,更具体地,涉及一种CAN设备开发系统及其方法。
技术介绍
CAN(控制器局域网络,ControllerAreaNetwork的简称)作为一种实时性好、可靠性高、灵活性强、结构简单的通信总线,广泛地用于工业自动化、船舶、医疗设备、工业设备等嵌入式计算机控制系统中。而随着无人系统研究的逐渐火热,CAN设备的业务功能开发需求也逐渐增多,传统开发手段已经难以应付易变而多样的CAN设备应用程序开发。
技术实现思路
本专利技术为克服上述现有技术中的缺陷,提供一种CAN设备开发系统及其方法,。为解决上述技术问题,本专利技术采用的技术方案是:一种CAN设备开发系统,包括:代码生成模块,用于根据本系统约定的特有格式,解析CAN数据协议文件,产生与CAN管理模块配合的C++代码框架,实现CAN报文的数据解析,并为CAN设备开发者提供接口进行二次开发;该代码框架兼容了ros框架下的package格式,以方便开发人员接入基于ros框架的其他系统 ...
【技术保护点】
1.一种CAN设备开发系统,其特征在于,包括:/n代码生成模块,用于根据本系统约定的特有格式,解析CAN数据协议文件,产生与CAN管理模块配合的C++头代码框架,实现CAN报文的数据解析,并为CAN设备开发者提供接口进行二次开发;/nCAN管理模块,用于首先根据CAN-SDK的接口,执行各个CAN设备业务功能组件的初始化流程,实现CAN管理模块对CAN数据事件的注册,同时异步启动各个CAN设备业务功能组件的主循环;然后CAN管理模块进入多CAN接口并行监听的处理流程,同时响应各个CAN设备业务功能组件的报文发送请求;当CAN管理模块从某个CAN接口接收到新的报文时,其会根据 ...
【技术特征摘要】
1.一种CAN设备开发系统,其特征在于,包括:
代码生成模块,用于根据本系统约定的特有格式,解析CAN数据协议文件,产生与CAN管理模块配合的C++头代码框架,实现CAN报文的数据解析,并为CAN设备开发者提供接口进行二次开发;
CAN管理模块,用于首先根据CAN-SDK的接口,执行各个CAN设备业务功能组件的初始化流程,实现CAN管理模块对CAN数据事件的注册,同时异步启动各个CAN设备业务功能组件的主循环;然后CAN管理模块进入多CAN接口并行监听的处理流程,同时响应各个CAN设备业务功能组件的报文发送请求;当CAN管理模块从某个CAN接口接收到新的报文时,其会根据该CAN报文的ID,调用相应的回调处理函数;
CAN-SDK,用于作为操作系统动态库及相关C++头文件,为CAN管理模块以及产生的CAN设备业务逻辑组件的公共依赖,封装CAN硬件读写、CAN报文数据解析、动态库加载等系统功能;同时提供CAN设备业务逻辑组件的初始化接口、CAN管理模块回调事件注册接口、CAN管理模块数据发送接口,连接CAN管理模块与CAN设备业务逻辑组件,实现软硬件解耦的系统特性。
2.一种开发CAN设备的方法,其特征在于,使用权利要求1所述的CAN设备开发系统,具体包括以下步骤:
S1.根据实际CAN设备情况,开发人员编写本系统格式的CAN数据协议文件;
S2.使用系统中的代码生成模块,解析步骤S1的CAN数据协议文件,并生成依赖CAN-SDK的C++代码框架;
S3.通过代码生成模块产生依赖于CAN-SDK的框架代码,由开发人员补充具体的业务功能实现后,编译为CAN业务功能组件,交由CAN管理模块动态加载;
S4.CAN管理模块通过CAN-SDK初始化各个业务功能组件,并注册协议约定的CAN报文接收事件,在接收到CAN报文时,分开给对应业务功能组件进行处理;
S5.CAN管理模块同时响应业务功能组件的CAN报文发送请求,往动态配置的CAN接口发送相关数据。
3.根据权利要求2所述的开发CAN设备的方法,其特征在于,所述的S2步骤中生成的代码框架结构,最外层是一个rospackage文件夹,其中包含编译文件CMakeLists.txt,指导该CAN业务功能组件的编译过程,和描述文件package.xml...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。