IXXAT CANBridge產(chǎn)品是一款性能優(yōu)異的CAN網(wǎng)橋/路由器設(shè)備,支持CAN網(wǎng)絡(luò)耦合,可以實(shí)現(xiàn)強(qiáng)大的過濾,ID轉(zhuǎn)換、數(shù)據(jù)映射和多路復(fù)用,使用事件觸發(fā)的方式執(zhí)行預(yù)定義的操作。除通過CAN-Gateway Configurator工具的圖形菜單配置不同CAN網(wǎng)絡(luò)之間的數(shù)據(jù)映射外,CANBridge NT還支持使用Lua編寫操作規(guī)則,方便實(shí)現(xiàn)不同CAN網(wǎng)絡(luò)之間的數(shù)據(jù)轉(zhuǎn)換。
1. 創(chuàng)建lua腳本
Ixxat Lua ADK基于標(biāo)準(zhǔn)的Lua 5.3.5發(fā)行版,針對(duì)嵌入式系統(tǒng)開發(fā)和執(zhí)行進(jìn)行了優(yōu)化,以提供可以在資源有限的嵌入式處理器上運(yùn)行的腳本框架。
IXXAT Lua ADK使用3中類型的回調(diào)函數(shù):initialize, on_...和loop。Initialize在系統(tǒng)初始化時(shí)被調(diào)用,用于注冊(cè)事件和設(shè)置CAN消息過濾。loop在初始化之后,啟動(dòng)并運(yùn)行設(shè)備時(shí),每100毫秒調(diào)用一次,用于觸發(fā)循環(huán)任務(wù)。on_can和on_mqtt函數(shù)用于處理來自CAN和MQTT的事件。
安裝配置工具CAN-Gateway Configurator后,在C:UsersPublicDocumentsHMSIxxat CAN-Gateway ConfiguratorExamplesLua examples目錄中,提供了lua示例腳本。
can_demo.lua文件,展示如何通過Lua處理(發(fā)送和接收)CAN報(bào)文。
-最大頻率50赫茲(20毫秒)
-修改字節(jié)7和8的數(shù)據(jù)
并在CAN1上循環(huán)發(fā)送ID為0x300的消息。
1.1.1 initialize
在固件初始化時(shí)調(diào)用一次。它用于注冊(cè)需接收的CAN和MQTT消息,初始化變量。本例中,initialize調(diào)用can_register_msg注冊(cè)需處理的報(bào)文。
function initialize() print("initialize") can.register_msg({ format = "std", data_as = "array", ident = 0x200, topic = 1, port = 1, max_frequency = 20, }) end
1.1.2on_can
處理設(shè)備收到的CAN消息,本例中,處理接收到ID 0x200的報(bào)文,修改字節(jié)7和8的數(shù)據(jù)后,發(fā)送到CAN2。
function on_can(topic, port, format, ident, data) data[7] = data[7] << 1 ? ?data[8] = cnt ? ?cnt = cnt + 1 ? ?can_send(2, format, 0x201, data) end
1.1.3 loop
本例中,通過loop實(shí)現(xiàn)在CAN1上循環(huán)發(fā)送ID為0x300的消息。
function loop(ticks, elapsed) can_send(1, "csd", 0x300, payload) end
2. 使用Lua ADK
為了能夠在CANBridge設(shè)備上使用Lua ADK,必須使用Lua framework更新設(shè)備,并在CAN-Gateway Configurator中啟用Lua。具體步驟如下:
1、連接CANBridge設(shè)備到PC,并上電。
2、啟動(dòng)安裝的最新版本CAN-GatewayConfigurator工具,并connect到設(shè)備。
3、配置設(shè)備的操作模式和CAN端口的波特率
4、在工具欄中打開Lua ADK菜單并選擇update Lua ADK。選擇C:Program FilesHMSIxxat CAN-Gateway Configurator V6下的lua_framework_vx文件更新Lua ADK。
5、在配置樹中選擇General,在其下拉列表中選擇use of Lua as ADK,選擇target 模式。
6、在Target菜單中,選擇Write configuration to target,將配置寫入連接的CAN設(shè)備。
7、在Lua ADK菜單,選擇Write Lua script to target,將創(chuàng)建好的lua腳本寫入CANBridge設(shè)備,在設(shè)備啟動(dòng)后,Lua腳本將自動(dòng)運(yùn)行。
使用Lua ADK 可以為IXXAT 的CAN@net N及 CANBridge NT設(shè)備開發(fā)Lua應(yīng)用,方便的實(shí)現(xiàn)不同網(wǎng)絡(luò)直接的數(shù)據(jù)映射。
審核編輯:湯梓紅
-
嵌入式
+關(guān)注
關(guān)注
5175文章
19982瀏覽量
324455 -
CAN
+關(guān)注
關(guān)注
58文章
2976瀏覽量
470459 -
路由器
+關(guān)注
關(guān)注
22文章
3868瀏覽量
118359 -
回調(diào)函數(shù)
+關(guān)注
關(guān)注
0文章
93瀏覽量
12058 -
ADK
+關(guān)注
關(guān)注
0文章
7瀏覽量
5206
原文標(biāo)題:如何使用Lua ADK配置CANBridge?
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
初識(shí)lua--openwrt
淺析ADK Google fast pair功能
Lua腳本簡(jiǎn)單介紹
Lua腳本簡(jiǎn)單介紹
ISELED_ADK_EXT_D沒有管腳定義嗎?
Programming in Lua 3ed
QCC302x ADK Configuration Tool的使用入門
基于ADK-6130PCIE圖形JTAG接口的參考設(shè)計(jì)

基于ADK-1590射頻收發(fā)器的
stm32應(yīng)用:lua在Keil上的移植和使用

CANBridge+產(chǎn)品數(shù)據(jù)手冊(cè)

評(píng)論