如何使用Lua ADK配置CANBridge?

描述

 

IXXAT CANBridge产品是一款性能优异的CAN网桥/路由器设备,支持CAN网络耦合,可以实现强大的过滤,ID转换、数据映射和多路复用,使用事件触发的方式执行预定义的操作。除通过CAN-Gateway Configurator工具的图形菜单配置不同CAN网络之间的数据映射外,CANBridge NT还支持使用Lua编写操作规则,方便实现不同CAN网络之间的数据转换。

1. 创建lua脚本

Ixxat Lua ADK基于标准的Lua 5.3.5发行版,针对嵌入式系统开发和执行进行了优化,以提供可以在资源有限的嵌入式处理器上运行的脚本框架。

IXXAT Lua ADK使用3中类型的回调函数:initialize, on_...和loop。Initialize在系统初始化时被调用,用于注册事件和设置CAN消息过滤。loop在初始化之后,启动并运行设备时,每100毫秒调用一次,用于触发循环任务。on_can和on_mqtt函数用于处理来自CAN和MQTT的事件。

安装配置工具CAN-Gateway Configurator后,在C:UsersPublicDocumentsHMSIxxat CAN-Gateway ConfiguratorExamplesLua examples目录中,提供了lua示例脚本。

回调函数

can_demo.lua文件,展示如何通过Lua处理(发送和接收)CAN报文。

-最大频率50赫兹(20毫秒)

-修改字节7和8的数据

并在CAN1上循环发送ID为0x300的消息。

1.1.1  initialize

在固件初始化时调用一次。它用于注册需接收的CAN和MQTT消息,初始化变量。本例中,initialize调用can_register_msg注册需处理的报文。

 

function initialize()
    print("initialize")
    can.register_msg({                 
        format = "std", 
        data_as = "array",
        ident = 0x200,
        topic = 1,
        port = 1,
        max_frequency = 20,
    })
end

 

1.1.2  on_can

处理设备收到的CAN消息,本例中,处理接收到ID 0x200的报文,修改字节7和8的数据后,发送到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实现在CAN1上循环发送ID为0x300的消息。

 

function loop(ticks, elapsed)
    can_send(1, "csd", 0x300, payload)
end

 

2. 使用Lua ADK

为了能够在CANBridge设备上使用Lua ADK,必须使用Lua framework更新设备,并在CAN-Gateway Configurator中启用Lua。具体步骤如下:

1、连接CANBridge设备到PC,并上电。

2、启动安装的最新版本CAN-GatewayConfigurator工具,并connect到设备。

回调函数

3、配置设备的操作模式和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设备。

7、在Lua ADK菜单,选择Write Lua script to target,将创建好的lua脚本写入CANBridge设备,在设备启动后,Lua脚本将自动运行。

使用Lua ADK 可以为IXXAT 的CAN@net N及 CANBridge NT设备开发Lua应用,方便的实现不同网络直接的数据映射。

 审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分