0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Lua ADK配置CANBridge?

麦克泰技术 来源:麦克泰技术 2023-06-16 11:07 次阅读

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示例脚本。

9df1d7be-0bf2-11ee-962d-dac502259ad0.png

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.2on_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到设备。

9e172d8e-0bf2-11ee-962d-dac502259ad0.png

3、配置设备的操作模式和CAN端口的波特率

9e3a408a-0bf2-11ee-962d-dac502259ad0.png

9e627a96-0bf2-11ee-962d-dac502259ad0.png

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 模式。

9e83eb18-0bf2-11ee-962d-dac502259ad0.png

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

审核编辑:汤梓红

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

    关注

    4982

    文章

    18281

    浏览量

    288444
  • CAN
    CAN
    +关注

    关注

    56

    文章

    2467

    浏览量

    459244
  • 路由器
    +关注

    关注

    22

    文章

    3500

    浏览量

    111342
  • 回调函数
    +关注

    关注

    0

    文章

    87

    浏览量

    11455
  • ADK
    ADK
    +关注

    关注

    0

    文章

    7

    浏览量

    4924

原文标题:如何使用Lua ADK配置CANBridge?

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    初识lua--openwrt

    Lua是一个小巧的脚本语言,很容易嵌入其它语言。轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。OpenWrt路由的界面配置使用LuCI系统管理,但是很多时候我们在玩openwrt
    发表于 12-15 23:19

    浅析ADK Google fast pair功能

    Google account。但对海外市场来说这是一个很亮很亮的亮点,大部分出口耳机都想要这个功能。最新ADK集成了这个功能,但是默认的是没有打开的,下面我们来打开这个功能。1.配置工程,打开宏定义2.
    发表于 09-20 09:05

    FLIR第二代热像仪ADK有哪些特点?

    FLIR第二代热像仪ADK有哪些特点?FLIR第二代热像仪ADK有哪些功能?
    发表于 07-11 07:27

    Lua脚本简单介绍

    反过来调用C/C++的函数,这使得Lua在应用程序中能够被广泛应用。不只作为扩展脚本,也能够作为普通的配置文件,取代XML,Ini等文件格式,而且更easy理解和维护。Lua的目标是成为
    发表于 08-20 06:37

    android支持lua语言开发

    因为我们产品的需要满足不同行业需求,所以一直在寻找一个脚本语言,以便灵活配置。前段时间还自己花时间去实现一个C语言解释器,看了一堆编译原理的东西,以及虚拟机等,头都搞大了,把基本功能实现了,但总是
    发表于 08-20 07:50

    Lua脚本简单介绍

    反过来调用C/C++的函数,这使得Lua在应用程序中能够被广泛应用。不只作为扩展脚本,也能够作为普通的配置文件,取代XML,Ini等文件格式,而且更easy理解和维护。Lua的目...
    发表于 08-20 08:06

    ISELED_ADK_EXT_D没有管脚定义吗?

    ISELED_ADK_EXT_D没有管脚定义,是ISELED ADK显性产生的。 任何 8 针定义文档?
    发表于 04-14 07:48

    Programming in Lua 3ed

    ,也可以作为普通的配置文件,代替xmlini等文件格式,并且更容易理解和维护。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。——来自百度百科
    发表于 10-26 17:21 11次下载

    QCC302x ADK Configuration Tool的使用入门

    初体验》中讲到的方法烧录默认sink工程到板子中。 打开ADK Configuration tool。 打开后可以看到以下界面。 选择HID设备然后点击Goconfigurable 点击read device。 可以看到从QCC3026读取的配置信息。 我们这里可以尝试修
    的头像 发表于 06-16 17:25 4066次阅读

    Lua在单片机中的移植

    Lua代码符合ANSI C标准,只要有C编译器的开发环境就能跑Lua。虽说只要有C编译器就能跑Lua,但是单片机的环境太简单,有些C标准的内容仍旧无法支持。Lua的官网是:www.
    发表于 11-13 17:36 11次下载
    <b class='flag-5'>Lua</b>在单片机中的移植

    stm32应用:lua在Keil上的移植和使用

    stm32应用:lua在Keil上的移植和使用Lua的简介Lua的移植关于Lua的应用举例Lua 是一种轻量小巧的脚本语言,用标准C语言编写
    发表于 12-20 18:51 16次下载
    stm32应用:<b class='flag-5'>lua</b>在Keil上的移植和使用

    CANBridge EMC证书

    电子发烧友网站提供《CANBridge EMC证书.pdf》资料免费下载
    发表于 10-14 10:03 0次下载
    <b class='flag-5'>CANBridge</b> EMC证书

    CANBridge+产品数据手册

    电子发烧友网站提供《CANBridge+产品数据手册.pdf》资料免费下载
    发表于 10-17 10:55 0次下载
    <b class='flag-5'>CANBridge</b>+产品数据手册

    【串口屏LUA教程】lua基础学习(借鉴)

    【串口屏LUA教程】lua基础学习(借鉴)
    发表于 04-29 13:02 4次下载

    【串口屏LUA教程】Lua脚本语言中文教程

    【串口屏LUA教程】Lua脚本语言中文教程
    发表于 04-29 13:03 24次下载