详解DBC的Signal与JSON文本结合

描述

为了优化CAN数据发送与接收的操作流程,更改以前手动输入状态对应数据的模式,采用下拉列表选择内容,但这需要用到超出DBC原有承载能力的信息。因此,将JSON与其结合,采用JSON格式文本写入Signal的Comment属性,将Comment属性的字符串通过JSON文本拓展信息承载能力。

下面请跟随小编一起来学习一下吧!

本文分享:

DBC的Signal与JSON文本结合

一、JSON文本

JSON的全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON文本采用纯文本形式,结构清晰,具有严格的语法规则、独立于语言等核心特点,可以在客户端和服务器之间传递数据,同时可以作为配置文件、数据存储等。

1、基本语法规则

数据以键值对(名称/值)的形式存在: "键": 值

键名必须是双引号引起来的字符串。

值类型:

字符串:必须使用双引号。 ("name": "张三")

数字:整数或浮点数。 ("age": 25)

布尔值: true 或 false。

空值: null。

对象: 用花括号 {} 包裹的一组无序的键值对。可以嵌套。

数组: 用方括号 [] 包裹的一组有序的值。

数据之间用逗号分隔。

最后一个元素后不能有逗号。

示例如下:

{
    "company": "科技公司",
    "year": 2023,
    "isPublic": false,
    "address": null,
    "departments": [
    {
        "name": "研发部",
        "employeeCount": 50
    },
    {
        "name": "市场部",
        "employeeCount": 30
    }
    ],
    "tags": ["互联网", "创新", "敏捷开发"]
}

二、NI-XNET Database Editor

NI-XNET Database Editor是NI关于车载网络的重要软件,可以实现DBC数据库文件的编辑。它通过直观的图形化界面,将复杂的通信协议——包括报文 ID、信号布局、物理值换算和网络节点关系——转化为可编辑、可验证的工程对象。该工具生成的标准数据库文件,可被NI-XNET驱动程序直接识别与调用,从而使上层的 LabVIEW等应用能够以物理信号为单位便捷地读写CAN总线数据,实现了从协议设计、仿真测试到数据解析的全流程无缝集成。

三、操作步骤

1、LabVIEW中JSON文本转换VI

在程序框图中右击,找到“平化/还原字符串”下的两个VI,如下图所示。这两个VI分别为将簇转为JSON文本、从JSON文本转为簇。使用“从JSON文本转为簇”即可将JSON文本转化为LabVIEW中可以使用的簇,这样就可以免去JSON文本向LabVIEW的数据需求转换的代码逻辑。

字符串

字符串

2、UTF-8格式问题

由于“从JSON文本转为簇”VI的文本编码仅能为UTF-8,而DBC中读取的Comment仅能为GBK编码,导致转换失败。通过下图所示的“GBK向UTF-8转换”文本编码转换器,可以解决这个问题。

字符串

3、UTF8Encoding

图中的“UTF8Encoding”可以通过“互联接口”面板-“.NET”面板-“构造器节点”获得,如下图所示。

字符串

在构造器节点里,“程序集”部分选择”mscorlib(4.0.0.0)“,如下图所示。

字符串

在“对象”部分双击“System.Text”,如下图所示。

字符串

选择“UTF8Encoding”,如下图所示。

字符串

四、示例

1、DBC编辑

将JSON文件中的信息填入Signal的Comment中,如图所示。

字符串

2、关键程序

在程序中获取Frame中所有Signal的Comment属性,并将Comment通过“GBK向UTF-8转换”VI转化为UTF-8编码,最后使用“从JSON文本转为簇”VI即可将DBC中的所有拓展信息提取出来供LabVIEW程序使用。

字符串

3、最终效果

通过下拉列表选择内容,实现CAN数据发送与接收,优化了手动输入状态对应的数据的操作。

字符串

以上就是DBC的Signal与JSON文本结合的全部内容啦。欢迎大家留言讨论,交流分享!更多关于测试系统中的实际软硬件应用知识,可关注本公众号/下方合集。

更多内容,敬请期待!

对LabVIEW编程技巧和相关内容感兴趣的工程师们,欢迎持续关注、留言和点赞,也可以私信小编各位的技术困惑和技术需求,以获取参加免费线下培训和技术交流的机会哦。

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

全部0条评论

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

×
20
完善资料,
赚取积分