欢迎光临散文网 会员登陆 & 注册

《三》canfestival系列教程之字典的分析

2021-08-13 12:39 作者:GXTon_阿通  | 我要投稿

canfestival中记录数据和映射的关系的文档叫做字典.

字典是canopen中最重要的定义.

我生成了一个名为Master.h 和 Master.c的字典.

Master.c中:

调用头文件,

后面是一些全局变量的定义,

这些变量名字,可以在生成字典的时候按自己的喜好进行改变.

这些是全局变量.

主要是用于pdo发送和接收的数据.

后面都会带有索引,说明传输的数据最终都存入了字典里面.

后面是错误管理的函数,

可以不用.

下面就是字典的参数

重要数据


关于subindex是一个结构体.代表了子索引.

下面可以看一下pdo的那部分:

pdo有两个重要的配置,

一个是通讯参数,另一个是映射参数.

通讯参数决定了pdo发送的形式,

自动生成的字典很规则,这里依次是子索引00h,01h,02h,03h,04h,05h,06h.

各子索引,它们的意义在ds301上有规定.

这里pdo映射参数,映射到了速度上.

速度在字典中的索引是0x60ff0020. (遵循ds402协议)

再往下看:

上面是构建了多个子索引.

把子索引都存放入了一个数组里面.每个数组都是一个索引.

为了便于管理.

把上面的每个数组又整合到了一个数组里面.

后面的红色标号,就是里面配置的索引条目.

之后有一个遍历索引的函数:

接下来是索引个数的判断

会用在发送pdo,sdo等数据之前,进行检测.

防止字典中没有定义相应的pdo或sdo参数等.

之后重要的一步

进行字典的赋值


这个是把字典的内容,全部赋值给Master_Data结构体.

这个结构体是CO_Data类型的,也就是字典类型.

赋值过程应用了一个小技巧,

这里用的不是函数赋值,而是才用的define.

define中用到了##号,表示链接符,就是把##前后的两个东西了解到一起.然后你对照一下就会发现,把Master赋值给了Master_Data.

在主函数中会用Master_Data.


《三》canfestival系列教程之字典的分析的评论 (共 条)

分享到微博请遵守国家法律