CN110769002A - 基于LabVIEW的报文解析方法、系统、电子设备和介质 - Google Patents
基于LabVIEW的报文解析方法、系统、电子设备和介质 Download PDFInfo
- Publication number
- CN110769002A CN110769002A CN201911059943.0A CN201911059943A CN110769002A CN 110769002 A CN110769002 A CN 110769002A CN 201911059943 A CN201911059943 A CN 201911059943A CN 110769002 A CN110769002 A CN 110769002A
- Authority
- CN
- China
- Prior art keywords
- array
- format
- message
- data
- physical quantity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明公开了一种基于LabVIEW的报文解析方法、系统、电子设备和介质,其中基于LabVIEW的报文解析方法包括以下步骤:对目标DBC文件进行解析以生成DBC Information簇数组;根据CAN报文和DBC Information簇数组得到信号的物理量值;根据DBC Information簇数组和信号的物理量值得到CAN报文的ID和数据数组。本发明使用LabVIEW的XNET工具解析CAN网络协议DBC文件,解析过程不需要任何其他控件的调用与设置,软件依赖性低,解析可靠性高。本发明既解析收到的CAN报文,又解析发送的CAN报文,解析过程具备双向性。
Description
技术领域
本发明属于报文解析技术领域,尤其涉及一种基于LabVIEW(一种程序开发环境)的报文解析方法、系统、电子设备和介质。
背景技术
需要在LabVIEW中调用.NET(一种开发平台)容器,由于.NET容器是基于.NETFramework(一种开发平台),调用时需考虑计算机系统与LabVIEW软件的兼容性问题,在程序的调试、迁移与发布时容易出现错误;需使用ZEDGraph(一种控件)控件并定义大小,但背景技术中并未给出ZEDGraph控件的意义,以及怎么定义其大小;未详细说明报文解析过程,以及CAN(Controller Area Network,控制器局域网络)消息的匹配方法;仅讨论从CAN总线收到报文的解析方法,未说明向CAN总线发送报文时,根据DBC(一种报文格式)解析数据的方法。
CAN总线是一种被广泛应用于汽车计算机控制系统和嵌入式工业控制局域网的标准总线,具有结构简单、可靠性强、实时性高等特点。
DBC文件是一种ASCII(American Standard Code for InformationInterchange,美国信息交换标准代码)格式的文件,用于描述CAN总线中各逻辑节点的信息。用户可根据该文件分析CAN总线上的报文数据。该文件分为必须部分和非必须部分,定义CAN总线波特率、节点、报文帧以及信号中的各个属性。用户可通过DBC将CAN总线上读取的报文转化成物理量,也可以将实际物理量通过DBC转化成CAN报文,发送至CAN总线。
LabVIEW作为一款用图形化语言编程的程序开发环境,在测试测量、汽车工业等行业的上位机开发中,应用十分广泛。XNET作为National Instruments(美国国家仪器有限公司,简称NI)发布的一种工具,用于配合LabVIEW、VeriStand(一个运行时可编辑的软件环境)、MAX(Measurement&Automation Explorer,一种测量与自动控制的资源管理软件)等软件完成CAN、LIN(Local Interconnect Network,一种串行通信网络)等网络的数据采集与分析,具有易用性高、完善性强,消耗资源少等特点。
现有技术中,若使用LabVIEW直接调用已有XNET中相关API(应用程序编程接口),可以完成CAN报文的解析,但XNET仅支持NI的相关CAN硬件,对于常用的PCAN(PEAK-System公司的一种CAN工具)、kvaser CAN(kvaser公司的一种CAN工具)等硬件并不兼容;若使用CANoe(CAN open environment,一种总线开发环境)设备,也可以完成CAN报文的解析,但其成本过高,且不便于与测试上位机开发融合,不利于软件的二次开发。
发明内容
本发明要解决的技术问题是为了克服现有技术中的缺陷,提供一种。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种基于LabVIEW的报文解析方法,包括以下步骤:
对目标DBC(一种报文格式)文件进行解析以生成DBC Information(DBC信息)簇数组;
根据CAN报文和DBC Information簇数组得到信号的物理量值;
根据DBC Information簇数组和信号的物理量值得到CAN报文的ID(身份)和数据数组。
较佳地,对目标DBC文件进行解析以生成DBC Information簇数组的步骤包括:
调用XNET Cluster获取DBC文件。
调用XNET Cluster属性节点,得到Frames属性;
循环调用XNET Frame(帧)属性节点,以得到ID和Signals属性,循环调用的次数为Frames(帧)属性的数组大小;
循环调用XNET Signal(信号)属性节点,得到CAN报文的属性,循环调用的次数为Signals(信号)属性的数组大小;
根据CAN报文的属性生成DBC Information簇数组。
较佳地,CAN报文的属性包括但不限于StartBit(起始位)、NumBits(位数)、ScaleOff(偏移量)、ScaleFac(缩放量)、NameShort(简称)、ByteOrdr(字节顺序)。
较佳地,根据CAN报文和DBC Information簇数组得到信号的物理量值的步骤包括:
从CAN报文中提取ID和与ID对应的数据;使用Search 1D Array(搜索一维数组)和Index Array(索引数组)节点,从DBC Information簇数组中获取与ID一致的数组索引值,获取CAN报文在DBC文件中的Signal属性;
查看CAN报文的Signal属性;
判断Byte Order(字节顺序)的格式,如果Byte Order的格式为Intel(英特尔)格式,则保持不变;如果Byte Order的格式为Motorola(摩托罗拉)格式,则使用Reverse 1DArray节点反转数据数组,并获取StartBit值的bit位;
使用Number to Boolean Array(数值至布尔数组转换)节点将数据数组由U8(一种数据格式)格式转化为布尔数组,使用Build Array(创建数组)节点连接布尔数组;
依次解析物理量数据,以得到ID对应的所有物理量数据所对应的布尔量数组;
使用Boolean Array to Number(布尔数组至数值转换)节点,将布尔量数组转化为U8格式数据;
将U8格式数据与ScaleFac相乘后,与ScaleOff相加,得到信号的物理量值,并将信号的物理量值与信号的名称属性捆绑成簇后输出。
较佳地,根据DBC Information簇数组和信号的物理量值得到CAN报文的ID和数据数组的步骤包括:
根据名称属性的ASCII码先后顺序,将具有相同的ID的物理量数据组成数组;
使用Search 1D Array与Index Array节点,从DBC Information簇数组中获取与ID一致的数组索引值,获取物理量的Signal属性;
查看CAN报文的Signal属性;
判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则获取StartBit值的bit位;
将物理量数据与ScaleOff相减后,与ScaleFac相除以得到第一数据,使用Conversion节点将第一数据转化为整型数据,使用Number to Boolean Array节点将整型数据转化为第一布尔数组;
依次将ID对应的物理量数据转化为第二布尔数组;
获取第二布尔数组的长度与位置;
使用Build Array节点连接所有的第二布尔数组;
以8个布尔值为长度,依次将第二布尔数组的转化为U8格式的数据;使用BuildArray节点连接U8格式的数据,以生成U8格式数据数组;
判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse 1D Array节点反转U8格式数据数组;
输出CAN报文的ID和U8格式数据数组。
本发明还提供一种基于LabVIEW的报文解析系统,包括DBC解析模块、CAN报文解析模块、物理量解析模块;
DBC解析模块用于对目标DBC文件进行解析以生成DBC Information簇数组;
CAN报文解析模块用于根据CAN报文和DBC Information簇数组得到信号的物理量值;
物理量解析模块用于根据DBC Information簇数组和信号的物理量值得到CAN报文的ID和数据数组。
较佳地,DBC解析模块还用于调用XNET Cluster获取DBC文件;
DBC解析模块还用于调用XNET Cluster属性节点,得到Frames属性;
DBC解析模块还用于循环调用XNET Frame属性节点,以得到ID和Signals属性,循环调用的次数为Frames属性的数组大小;
DBC解析模块还用于循环调用XNET Signal属性节点,得到CAN报文的属性,循环调用的次数为Signals属性的数组大小;
DBC解析模块还用于根据CAN报文的属性生成DBC Information簇数组。
较佳地,CAN报文的属性包括但不限于StartBit、NumBits、ScaleOff、ScaleFac、NameShort、ByteOrdr。
较佳地,CAN报文解析模块还用于从CAN报文中提取ID和与ID对应的数据;使用Search 1D Array和Index Array节点,从DBC Information簇数组中获取与ID一致的数组索引值,获取CAN报文在DBC文件中的Signal属性;
CAN报文解析模块还用于查看CAN报文的Signal属性;
CAN报文解析模块还用于判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse 1D Array节点反转数据数组,并获取StartBit值的bit位;
CAN报文解析模块还用于使用Number to Boolean Array节点将数据数组由U8格式转化为布尔数组,使用Build Array节点连接布尔数组;
CAN报文解析模块还用于依次解析物理量数据,以得到ID对应的所有物理量数据所对应的布尔量数组;
CAN报文解析模块还用于使用Boolean Array to Number节点,将布尔量数组转化为U8格式数据;
CAN报文解析模块还用于将U8格式数据与ScaleFac相乘后,与ScaleOff相加,得到信号的物理量值,并将信号的物理量值与信号的名称属性捆绑成簇后输出。
较佳地,物理量解析模块还用于根据名称属性的ASCII码先后顺序,将具有相同的ID的物理量数据组成数组;
物理量解析模块还用于使用Search 1D Array与Index Array节点,从DBCInformation簇数组中获取与ID一致的数组索引值,获取物理量的Signal属性;
物理量解析模块还用于查看CAN报文的Signal属性;
物理量解析模块还用于判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则获取StartBit值的bit位;
物理量解析模块还用于将物理量数据与ScaleOff相减后,与ScaleFac相除以得到第一数据,使用Conversion节点将第一数据转化为整型数据,使用Number to BooleanArray节点将整型数据转化为第一布尔数组;
物理量解析模块还用于依次将ID对应的物理量数据转化为第二布尔数组;
物理量解析模块还用于获取第二布尔数组的长度与位置;
使用Build Array节点连接所有的第二布尔数组;
物理量解析模块还用于以8个布尔值为长度,依次将第二布尔数组的转化为U8格式的数据;使用Build Array节点连接U8格式的数据,以生成U8格式数据数组;
物理量解析模块还用于判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse 1D Array节点反转U8格式数据数组;
物理量解析模块还用于输出CAN报文的ID和U8格式数据数组。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现本发明的基于LabVIEW的报文解析方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本发明的基于LabVIEW的报文解析方法的步骤。
本发明的积极进步效果在于:本发明使用LabVIEW的XNET工具解析CAN网络协议DBC文件,解析过程不需要任何其他控件的调用与设置,软件依赖性低,解析可靠性高。并且,本发明可适用于常用的CAN硬件,并无特定硬件限制,硬件依赖性低;本发明既解析收到的CAN报文,又解析发送的CAN报文,解析过程具备双向性。
附图说明
图1为本发明的实施例1的基于LabVIEW的报文解析方法的流程图。
图2为本发明的实施例1的基于LabVIEW的报文解析系统的结构示意图。
图3为本发明的实施例2的电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本发明提供一种基于LabVIEW的报文解析方法,包括以下步骤:
步骤S101、对目标DBC文件进行解析以生成DBC Information簇数组。
步骤S102、根据CAN报文和DBC Information簇数组得到信号的物理量值。
步骤S103、根据DBC Information簇数组和信号的物理量值得到CAN报文的ID和数据数组。
在步骤S101中,调用XNET Cluster获取DBC文件;调用XNET Cluster属性节点,得到Frames属性;循环调用XNET Frame属性节点,以得到ID和Signals属性,循环调用的次数为Frames属性的数组大小;循环调用XNET Signal属性节点,得到CAN报文的属性,循环调用的次数为Signals属性的数组大小;根据CAN报文的属性生成DBC Information簇数组。
CAN报文的属性包括但不限于StartBit、NumBits、ScaleOff、ScaleFac、NameShort、ByteOrdr。
在步骤S102中,从CAN报文中提取ID和与ID对应的数据;使用Search 1D Array和Index Array节点,从DBC Information簇数组中获取与ID一致的数组索引值,获取CAN报文在DBC文件中的Signal属性;查看CAN报文的Signal属性;判断Byte Order的格式,如果ByteOrder的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse1D Array节点反转数据数组,并获取StartBit值的bit位;使用Number to BooleanArray节点将数据数组由U8格式转化为布尔数组,使用Build Array节点连接布尔数组;依次解析物理量数据,以得到ID对应的所有物理量数据所对应的布尔量数组;使用BooleanArray to Number节点,将布尔量数组转化为U8格式数据;将U8格式数据与ScaleFac相乘后,与ScaleOff相加,得到信号的物理量值,并将信号的物理量值与信号的名称属性捆绑成簇后输出。
在步骤S103中,根据名称属性的ASCII码先后顺序,将具有相同的ID的物理量数据组成数组;使用Search 1D Array与Index Array节点,从DBC Information簇数组中获取与ID一致的数组索引值,获取物理量的Signal属性;查看CAN报文的Signal属性;判断ByteOrder的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则获取StartBit值的bit位;将物理量数据与ScaleOff相减后,与ScaleFac相除以得到第一数据,使用Conversion节点将第一数据转化为整型数据,使用Number toBoolean Array节点将整型数据转化为第一布尔数组;依次将ID对应的物理量数据转化为第二布尔数组;获取第二布尔数组的长度与位置;使用Build Array节点连接所有的第二布尔数组;以8个布尔值为长度,依次将第二布尔数组的转化为U8格式的数据;使用BuildArray节点连接U8格式的数据,以生成U8格式数据数组;判断Byte Order的格式,如果ByteOrder的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse 1D Array节点反转U8格式数据数组;输出CAN报文的ID和U8格式数据数组。
本实施例还提供一种基于LabVIEW的报文解析系统,该基于LabVIEW的报文解析系统可以实现本实施例的基于LabVIEW的报文解析方法。参照图2,该基于LabVIEW的报文解析系统包括DBC解析模块201、CAN报文解析模块202、物理量解析模块203。DBC解析模块201用于对目标DBC文件进行解析以生成DBC Information簇数组;CAN报文解析模块202用于根据CAN报文和DBC Information簇数组得到信号的物理量值;物理量解析模块203用于根据DBCInformation簇数组和信号的物理量值得到CAN报文的ID和数据数组。
DBC解析模块201还用于调用XNET Cluster获取DBC文件;DBC解析模块201还用于调用XNET Cluster属性节点,得到Frames属性;DBC解析模块还用于循环调用XNET Frame属性节点,以得到ID和Signals属性,循环调用的次数为Frames属性的数组大小;DBC解析模块还用于循环调用XNET Signal属性节点,得到CAN报文的属性,循环调用的次数为Signals属性的数组大小;DBC解析模块还用于根据CAN报文的属性生成DBC Information簇数组。
CAN报文的属性包括但不限于StartBit、NumBits、ScaleOff、ScaleFac、NameShort、ByteOrdr。
CAN报文解析模块202还用于从CAN报文中提取ID和与ID对应的数据;使用Search1D Array和Index Array节点,从DBC Information簇数组中获取与ID一致的数组索引值,获取CAN报文在DBC文件中的Signal属性;CAN报文解析模块202还用于查看CAN报文的Signal属性;CAN报文解析模块还用于判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse 1DArray节点反转数据数组,并获取StartBit值的bit位;CAN报文解析模块还用于使用Numberto Boolean Array节点将数据数组由U8格式转化为布尔数组,使用Build Array节点连接布尔数组;CAN报文解析模块还用于依次解析物理量数据,以得到ID对应的所有物理量数据所对应的布尔量数组;CAN报文解析模块还用于使用Boolean Array to Number节点,将布尔量数组转化为U8格式数据;CAN报文解析模块还用于将U8格式数据与ScaleFac相乘后,与ScaleOff相加,得到信号的物理量值,并将信号的物理量值与信号的名称属性捆绑成簇后输出。
物理量解析模块203还用于根据名称属性的ASCII码先后顺序,将具有相同的ID的物理量数据组成数组;物理量解析模块203还用于使用Search1D Array与Index Array节点,从DBC Information簇数组中获取与ID一致的数组索引值,获取物理量的Signal属性;物理量解析模块203还用于查看CAN报文的Signal属性;物理量解析模块还用于判断ByteOrder的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则获取StartBit值的bit位;物理量解析模块还用于将物理量数据与ScaleOff相减后,与ScaleFac相除以得到第一数据,使用Conversion节点将第一数据转化为整型数据,使用Number to Boolean Array节点将整型数据转化为第一布尔数组;物理量解析模块还用于依次将ID对应的物理量数据转化为第二布尔数组;物理量解析模块还用于获取第二布尔数组的长度与位置;使用Build Array节点连接所有的第二布尔数组;物理量解析模块还用于以8个布尔值为长度,依次将第二布尔数组的转化为U8格式的数据;使用Build Array节点连接U8格式的数据,以生成U8格式数据数组;物理量解析模块还用于判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse1D Array节点反转U8格式数据数组;物理量解析模块还用于输出CAN报文的ID和U8格式数据数组。
本实施例的基于LabVIEW的报文解析系统实现报文解析的具体过程可参照本实施例的基于LabVIEW的报文解析方法,具体不再赘述。
实施例2
图3为本实施例提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1的基于LabVIEW的报文解析方法。图3显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的基于LabVIEW的报文解析方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列Z系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例3
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1的基于LabVIEW的报文解析方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1的基于LabVIEW的报文解析方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (12)
1.一种基于LabVIEW的报文解析方法,其特征在于,包括以下步骤:
对目标DBC文件进行解析以生成DBC Information簇数组;
根据CAN报文和所述DBC Information簇数组得到信号的物理量值;
根据所述DBC Information簇数组和所述信号的物理量值得到所述CAN报文的ID和数据数组。
2.如权利要求1所述的基于LabVIEW的报文解析方法,其特征在于,所述对目标DBC文件进行解析以生成DBC Information簇数组的步骤包括:
调用XNET Cluster获取所述DBC文件;
调用XNET Cluster属性节点,得到Frames属性;
循环调用XNET Frame属性节点,以得到ID和Signals属性,循环调用的次数为所述Frames属性的数组大小;
循环调用XNET Signal属性节点,得到所述CAN报文的属性,循环调用的次数为所述Signals属性的数组大小;
根据所述CAN报文的属性生成所述DBC Information簇数组。
3.如权利要求1所述的基于LabVIEW的报文解析方法,其特征在于,所述CAN报文的属性包括StartBit、NumBits、ScaleOff、ScaleFac、NameShort、ByteOrdr。
4.如权利要求2所述的基于LabVIEW的报文解析方法,其特征在于,所述根据CAN报文和所述DBC Information簇数组得到信号的物理量值的步骤包括:
从所述CAN报文中提取所述ID和与所述ID对应的数据;使用Search1D Array和IndexArray节点,从DBC Information簇数组中获取与所述ID一致的数组索引值,获取所述CAN报文在所述DBC文件中的Signal属性;
查看所述CAN报文的Signal属性;
判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果ByteOrder的格式为Motorola格式,则使用Reverse 1D Array节点反转数据数组,并获取StartBit值的bit位;
使用Number to Boolean Array节点将所述数据数组由U8格式转化为布尔数组,使用Build Array节点连接所述布尔数组;
依次解析所述物理量数据,以得到所述ID对应的所有物理量数据所对应的所述布尔量数组;
使用Boolean Array to Number节点,将所述布尔量数组转化为U8格式数据;
将所述U8格式数据与ScaleFac相乘后,与ScaleOff相加,得到信号的物理量值,并将所述信号的物理量值与所述信号的名称属性捆绑成簇后输出。
5.如权利要求4所述的基于LabVIEW的报文解析方法,其特征在于,所述根据所述DBCInformation簇数组和所述信号的物理量值得到所述CAN报文的ID和数据数组的步骤包括:
根据所述名称属性的ASCII码先后顺序,将具有相同的所述ID的物理量数据组成数组;
使用Search 1D Array与Index Array节点,从DBC Information簇数组中获取与所述ID一致的数组索引值,获取所述物理量的Signal属性;
查看所述CAN报文的Signal属性;
判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果ByteOrder的格式为Motorola格式,则获取StartBit值的bit位;
将所述物理量数据与ScaleOff相减后,与ScaleFac相除以得到第一数据,使用Conversion节点将所述第一数据转化为整型数据,使用Number to Boolean Array节点将所述整型数据转化为第一布尔数组;
依次将所述ID对应的所述物理量数据转化为第二布尔数组;
获取所述第二布尔数组的长度与位置;
使用Build Array节点连接所有的所述第二布尔数组;
以8个布尔值为长度,依次将所述第二布尔数组的转化为U8格式的数据;使用BuildArray节点连接所述U8格式的数据,以生成U8格式数据数组;
判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果ByteOrder的格式为Motorola格式,则使用Reverse 1D Array节点反转所述U8格式数据数组;
输出所述CAN报文的ID和所述U8格式数据数组。
6.一种基于LabVIEW的报文解析系统,其特征在于,包括DBC解析模块、CAN报文解析模块、物理量解析模块;
所述DBC解析模块用于对目标DBC文件进行解析以生成DBC Information簇数组;
所述CAN报文解析模块用于根据CAN报文和所述DBC Information簇数组得到信号的物理量值;
所述物理量解析模块用于根据所述DBC Information簇数组和所述信号的物理量值得到所述CAN报文的ID和数据数组。
7.如权利要求6所述的基于LabVIEW的报文解析系统,其特征在于,所述DBC解析模块还用于调用XNET Cluster获取所述DBC文件;
所述DBC解析模块还用于调用XNET Cluster属性节点,得到Frames属性;
所述DBC解析模块还用于循环调用XNET Frame属性节点,以得到ID和Signals属性,循环调用的次数为所述Frames属性的数组大小;
所述DBC解析模块还用于循环调用XNET Signal属性节点,得到所述CAN报文的属性,循环调用的次数为所述Signals属性的数组大小;
所述DBC解析模块还用于根据所述CAN报文的属性生成所述DBC Information簇数组。
8.如权利要求6所述的基于LabVIEW的报文解析系统,其特征在于,所述CAN报文的属性包括StartBit、NumBits、ScaleOff、ScaleFac、NameShort、ByteOrdr。
9.如权利要求7所述的基于LabVIEW的报文解析系统,其特征在于,所述CAN报文解析模块还用于从所述CAN报文中提取所述ID和与所述ID对应的数据;使用Search 1D Array和Index Array节点,从DBC Information簇数组中获取与所述ID一致的数组索引值,获取所述CAN报文在所述DBC文件中的Signal属性;
所述CAN报文解析模块还用于查看所述CAN报文的Signal属性;
所述CAN报文解析模块还用于判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse 1D Array节点反转数据数组,并获取StartBit值的bit位;
所述CAN报文解析模块还用于使用Number to Boolean Array节点将所述数据数组由U8格式转化为布尔数组,使用Build Array节点连接所述布尔数组;
所述CAN报文解析模块还用于依次解析所述物理量数据,以得到所述ID对应的所有物理量数据所对应的所述布尔量数组;
所述CAN报文解析模块还用于使用Boolean Array to Number节点,将所述布尔量数组转化为U8格式数据;
所述CAN报文解析模块还用于将所述U8格式数据与ScaleFac相乘后,与ScaleOff相加,得到信号的物理量值,并将所述信号的物理量值与所述信号的名称属性捆绑成簇后输出。
10.如权利要求9所述的基于LabVIEW的报文解析系统,其特征在于,所述物理量解析模块还用于根据所述名称属性的ASCII码先后顺序,将具有相同的所述ID的物理量数据组成数组;
所述物理量解析模块还用于使用Search 1D Array与Index Array节点,从DBCInformation簇数组中获取与所述ID一致的数组索引值,获取所述物理量的Signal属性;
所述物理量解析模块还用于查看所述CAN报文的Signal属性;
所述物理量解析模块还用于判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则获取StartBit值的bit位;
所述物理量解析模块还用于将所述物理量数据与ScaleOff相减后,与ScaleFac相除以得到第一数据,使用Conversion节点将所述第一数据转化为整型数据,使用Number toBoolean Array节点将所述整型数据转化为第一布尔数组;
所述物理量解析模块还用于依次将所述ID对应的所述物理量数据转化为第二布尔数组;
所述物理量解析模块还用于获取所述第二布尔数组的长度与位置;
使用Build Array节点连接所有的所述第二布尔数组;
所述物理量解析模块还用于以8个布尔值为长度,依次将所述第二布尔数组的转化为U8格式的数据;使用Build Array节点连接所述U8格式的数据,以生成U8格式数据数组;
所述物理量解析模块还用于判断Byte Order的格式,如果Byte Order的格式为Intel格式,则保持不变;如果Byte Order的格式为Motorola格式,则使用Reverse 1D Array节点反转所述U8格式数据数组;
所述物理量解析模块还用于输出所述CAN报文的ID和所述U8格式数据数组。
11.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5中任一项所述的基于LabVIEW的报文解析方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任一项所述的基于LabVIEW的报文解析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911059943.0A CN110769002A (zh) | 2019-11-01 | 2019-11-01 | 基于LabVIEW的报文解析方法、系统、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911059943.0A CN110769002A (zh) | 2019-11-01 | 2019-11-01 | 基于LabVIEW的报文解析方法、系统、电子设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110769002A true CN110769002A (zh) | 2020-02-07 |
Family
ID=69335240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911059943.0A Pending CN110769002A (zh) | 2019-11-01 | 2019-11-01 | 基于LabVIEW的报文解析方法、系统、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110769002A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797098A (zh) * | 2020-06-30 | 2020-10-20 | 北京经纬恒润科技有限公司 | 一种报文解析方法、装置及车载终端 |
CN112378420A (zh) * | 2020-10-30 | 2021-02-19 | 北斗星通智联科技有限责任公司 | 用于汽车导航测试的信号模拟方法、系统及电子设备 |
CN112637029A (zh) * | 2020-12-29 | 2021-04-09 | 浙江大学 | 一种车辆内can数据帧信号提取方法与装置 |
CN112685031A (zh) * | 2020-12-31 | 2021-04-20 | 江苏兴邦能源科技有限公司 | 燃料电池测试系统dbc文件的解析方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105703990A (zh) * | 2014-11-28 | 2016-06-22 | 联创汽车电子有限公司 | 车载控制器can通信报文解析方法和构建方法 |
CN107132832A (zh) * | 2016-02-29 | 2017-09-05 | 株洲南车时代电气股份有限公司 | 一种基于can通讯的dbc文件解析及其程序设计方法 |
CN107656520A (zh) * | 2017-10-24 | 2018-02-02 | 厦门市福工动力技术有限公司 | Can总线数据解析方法及计算机可读存储介质 |
CN107992026A (zh) * | 2017-12-13 | 2018-05-04 | 南京越博动力系统股份有限公司 | 一种基于labveiw的解析dbc分析报文的方法 |
CN108183769A (zh) * | 2017-12-28 | 2018-06-19 | 北京理工大学 | 一种基于LabVIEW的多通道多采样率CAN总线数据解析方法 |
CN108471401A (zh) * | 2018-02-07 | 2018-08-31 | 山东省科学院自动化研究所 | 一种can信号封装、解析方法及装置 |
CN108965274A (zh) * | 2018-06-29 | 2018-12-07 | 威马智慧出行科技(上海)有限公司 | Dbc文件的解析方法及装置 |
US20190244444A1 (en) * | 2018-02-02 | 2019-08-08 | Denso International America, Inc. | Automated Hardware-In-The-Loop Tester For Automotive Electronic Control Units |
-
2019
- 2019-11-01 CN CN201911059943.0A patent/CN110769002A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105703990A (zh) * | 2014-11-28 | 2016-06-22 | 联创汽车电子有限公司 | 车载控制器can通信报文解析方法和构建方法 |
CN107132832A (zh) * | 2016-02-29 | 2017-09-05 | 株洲南车时代电气股份有限公司 | 一种基于can通讯的dbc文件解析及其程序设计方法 |
CN107656520A (zh) * | 2017-10-24 | 2018-02-02 | 厦门市福工动力技术有限公司 | Can总线数据解析方法及计算机可读存储介质 |
CN107992026A (zh) * | 2017-12-13 | 2018-05-04 | 南京越博动力系统股份有限公司 | 一种基于labveiw的解析dbc分析报文的方法 |
CN108183769A (zh) * | 2017-12-28 | 2018-06-19 | 北京理工大学 | 一种基于LabVIEW的多通道多采样率CAN总线数据解析方法 |
US20190244444A1 (en) * | 2018-02-02 | 2019-08-08 | Denso International America, Inc. | Automated Hardware-In-The-Loop Tester For Automotive Electronic Control Units |
CN108471401A (zh) * | 2018-02-07 | 2018-08-31 | 山东省科学院自动化研究所 | 一种can信号封装、解析方法及装置 |
CN108965274A (zh) * | 2018-06-29 | 2018-12-07 | 威马智慧出行科技(上海)有限公司 | Dbc文件的解析方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797098A (zh) * | 2020-06-30 | 2020-10-20 | 北京经纬恒润科技有限公司 | 一种报文解析方法、装置及车载终端 |
CN111797098B (zh) * | 2020-06-30 | 2024-01-19 | 北京经纬恒润科技股份有限公司 | 一种报文解析方法、装置及车载终端 |
CN112378420A (zh) * | 2020-10-30 | 2021-02-19 | 北斗星通智联科技有限责任公司 | 用于汽车导航测试的信号模拟方法、系统及电子设备 |
CN112637029A (zh) * | 2020-12-29 | 2021-04-09 | 浙江大学 | 一种车辆内can数据帧信号提取方法与装置 |
CN112637029B (zh) * | 2020-12-29 | 2022-03-15 | 浙江大学 | 一种车辆内can数据帧信号提取方法与装置 |
CN112685031A (zh) * | 2020-12-31 | 2021-04-20 | 江苏兴邦能源科技有限公司 | 燃料电池测试系统dbc文件的解析方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111083225B (zh) | 在物联网平台中的数据处理方法、装置及物联网平台 | |
CN110769002A (zh) | 基于LabVIEW的报文解析方法、系统、电子设备和介质 | |
CN112732636B (zh) | 基于多fpga的芯片原型验证系统的配置方法、装置和设备 | |
CN112287009A (zh) | 接口调用和接口数据入库方法、装置、设备及存储介质 | |
CN109062906B (zh) | 程序语言资源的翻译方法及装置 | |
CN110888862A (zh) | 数据存储、查询方法、装置、服务器和存储介质 | |
CN115757483A (zh) | 一种自动化测试方法、装置、电子设备和存储介质 | |
CN115599769A (zh) | 一种数据迁移方法、装置、电子设备及存储介质 | |
CN116107703A (zh) | 接口控制文档的生成方法及装置 | |
CN110569230A (zh) | 数据库设计模型与设计文档互相转换方法、系统及设备 | |
CN116405091B (zh) | 一种遥测数据的解析方法、装置、电子设备及存储介质 | |
CN113010542A (zh) | 业务数据处理方法、装置、计算机设备及存储介质 | |
CN115495082B (zh) | Tlv格式数据自动转换方法及相关设备 | |
CN115134427B (zh) | 通信协议协调方法、装置、计算机设备和存储介质 | |
CN115967604A (zh) | 报文传输方法、装置、电子设备及计算机可读存储介质 | |
CN115604343A (zh) | 一种数据传输方法、系统、电子设备和存储介质 | |
CN112698825B (zh) | 编程积木块转换方法、装置、处理设备及存储介质 | |
CN115237399A (zh) | 用于采集数据的方法、存储介质、处理器及工程车辆 | |
CN105808549A (zh) | 基于映射文件自动组帧及分析帧的客户端方法 | |
CN110853327B (zh) | 一种基于单片机的船舶机舱设备数据现场调试采集方法及装置 | |
CN114171107A (zh) | 固态硬盘vpd信息的检测方法、装置、设备及存储介质 | |
CN113609052A (zh) | 基于fpga和微处理器的芯片模拟系统及实现方法 | |
US11797277B2 (en) | Neural network model conversion method server, and storage medium | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
CN110032595B (zh) | 一种数据处理方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200207 |