《三》canfestival系列教程之字典的分析
canfestival中記錄數(shù)據(jù)和映射的關系的文檔叫做字典.
字典是canopen中最重要的定義.
我生成了一個名為Master.h?和?Master.c的字典.

Master.c中:
調(diào)用頭文件,


后面是一些全局變量的定義,
這些變量名字,可以在生成字典的時候按自己的喜好進行改變.
這些是全局變量.
主要是用于pdo發(fā)送和接收的數(shù)據(jù).
后面都會帶有索引,說明傳輸?shù)臄?shù)據(jù)最終都存入了字典里面.


后面是錯誤管理的函數(shù),
可以不用.


下面就是字典的參數(shù)
重要數(shù)據(jù)

關于subindex是一個結構體.代表了子索引.
下面可以看一下pdo的那部分:
pdo有兩個重要的配置,
一個是通訊參數(shù),另一個是映射參數(shù).
通訊參數(shù)決定了pdo發(fā)送的形式,
自動生成的字典很規(guī)則,這里依次是子索引00h,01h,02h,03h,04h,05h,06h.
各子索引,它們的意義在ds301上有規(guī)定.

這里pdo映射參數(shù),映射到了速度上.
速度在字典中的索引是0x60ff0020. (遵循ds402協(xié)議)


再往下看:
上面是構建了多個子索引.
把子索引都存放入了一個數(shù)組里面.每個數(shù)組都是一個索引.
為了便于管理.
把上面的每個數(shù)組又整合到了一個數(shù)組里面.
后面的紅色標號,就是里面配置的索引條目.


之后有一個遍歷索引的函數(shù):


接下來是索引個數(shù)的判斷
會用在發(fā)送pdo,sdo等數(shù)據(jù)之前,進行檢測.
防止字典中沒有定義相應的pdo或sdo參數(shù)等.


之后重要的一步
進行字典的賦值

這個是把字典的內(nèi)容,全部賦值給Master_Data結構體.
這個結構體是CO_Data類型的,也就是字典類型.
賦值過程應用了一個小技巧,
這里用的不是函數(shù)賦值,而是才用的define.
define中用到了##號,表示鏈接符,就是把##前后的兩個東西了解到一起.然后你對照一下就會發(fā)現(xiàn),把Master賦值給了Master_Data.

在主函數(shù)中會用Master_Data.