如何使用Lua ADK配置CANBridge?

浏览:234来源:本站时间:2023-06-16

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_canon_mqtt函数用于处理来自CANMQTT的事件。

安装配置工具CAN-Gateway Configurator后,在C:\Users\Public\Documents\HMS\Ixxat CAN-Gateway Configurator\Examples\Lua \examples\目录中,提供了lua示例脚本。


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

1.1 Lua API使用

我们以can_demo.lua文件为例,了解Lua API的使用。 can_demo.lua文件,实现将ID为0x200的CAN1接收报文转发到ID为0x201的CAN2报文:

-最大频率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上循环发送ID0x300的消息。

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 Files\HMS\Ixxat 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应用,方便的实现不同网络直接的数据映射。



京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司