CN114168226A - 一种解码数据结构方法及相关装置 - Google Patents
一种解码数据结构方法及相关装置 Download PDFInfo
- Publication number
- CN114168226A CN114168226A CN202111492519.2A CN202111492519A CN114168226A CN 114168226 A CN114168226 A CN 114168226A CN 202111492519 A CN202111492519 A CN 202111492519A CN 114168226 A CN114168226 A CN 114168226A
- Authority
- CN
- China
- Prior art keywords
- decoding
- communication primitive
- interface function
- communication
- data stream
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例公开了一种解码数据结构方法及相关装置。其中,该方法包括:调用第一接口函数,载入多个脚本文件;调用第二接口函数和通信原语标识对应的脚本文件,确定通信原语标识对应的通信原语名称和帧头信息,该通信原语标识是对接收到的数据帧进行解码获得的;输出通信原语标识对应的通信原语名称和帧头信息;第一接口函数和第二接口函数是同一个解码动态链接库DLL的接口函数。通过解码动态连接库DLL中的两个接口函数即可对接收到的数据帧进行解码,获得通信原语名称和帧头信息,无需对每个通信原语都要编写对应的解码函数,从而减少了代码编写量,提升软件开发效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种解码数据结构方法及相关装置。
背景技术
数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。
在进行软件的开发中,需要对各个软件模块中通信原语进行解码,以方便研发人员对各种问题进行定位。该通信原语中会包括多个数据结构,为了进行解码,需要对各个软件模块中通信原语包括各个数据结构开发对应的解码函数,以对相应的软件模块中通信原语进行解码。
可见,该解码数据结构的方法中代码编写量巨大,从而降低了软件开发效率。
发明内容
本申请实施例提供了一种解码数据结构方法及相关装置,能够提升软件开发效率。
第一方面,本申请实施例提供了一种解码数据结构方法。该方法包括:调用第一接口函数,载入多个脚本文件;调用第二接口函数和通信原语标识对应的脚本文件,确定通信原语标识对应的通信原语名称和帧头信息,该通信原语标识是对接收到的数据帧进行解码获得的;输出通信原语标识对应的通信原语名称和帧头信息;第一接口函数和第二接口函数是同一个解码动态链接库DLL的接口函数。
可见,该方法通过解码动态连接库DLL中的两个接口函数即可对接收到的数据帧进行解码,获得通信原语名称和帧头信息,无需对每个通信原语都要编写对应的解码函数,从而减少了代码编写量,提升软件开发效率。同时,即使通信原语有新增,需要对该解码DLL进行更新,其更新的工作量也不大。
一种可选的实施方式中,根据通信原语标识对应的脚本文件,调用第三接口函数对通信原语数据流进行解码,获得解码结果数据流,该通信原语数据流是对接收到的数据帧进行解码获得的通信原语数据流;输出解码结果数据流;第三接口函数是解码动态链接库DLL中的接口函数。
一种可选的实施方式中,调用解码数据流模块对解码结果数据流进行解码,获得解码数据流;以树状结构,显示该解码数据流。
可见,对解码结果数据流进行解码,将获得解码数据流以树状结构进行显示。树状结构可以将所有的参数清晰地表现,有利于开发或维护人员对各种问题进行定位。
一种可选的实施方式中,多个脚本文件是通过扫描多个软件模块的源代码自动生成的;其中,多个脚本文件用于描述数据结构、子结构、参数名称、参数类型、参数的取值范围以及参数取值的含义。
一种可选的实施方式中,解码动态链接库DLL是通用的数据结构解码动态链接库DLL。
也就是说,该解码动态链接库DLL可对所有的数据结构进行解码,避免了对各个通信原语分别开发解码DLL,从而减少了代码的编写量;同时,由于该解码DLL是通用的,因此即使通信原语有新增、数据结构有变化,也无需对该解码DLL进行更新,从而减少了解码DLL维护所需的工作量,节省了人力资源。
第二方面,本申请实施例提供了一种解码数据结构装置,所述通信装置包括:
调用单元,用于调用第一接口函数,载入多个脚本文件;
所述调用单元,还用于调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出单元,用于输出所述通信原语标识对应的通信原语名称和帧头信息。
另外,该方面中,解码数据结构装置其他可选的实施方式可参见上述第一方面的相关内容,此处不再详述。
第三方面,本申请实施例提供了一种终端设备,所述终端设备包括:
存储器,用于存储计算机程序;
处理器,调用计算机程序,用于执行以下操作:
调用第一接口函数,载入多个脚本文件;
调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出所述通信原语标识对应的通信原语名称和帧头信息;
所述第一接口函数和所述第二接口函数是同一个解码动态链接库DLL的接口函数。
另外,该方面中,终端设备其他可选的实施方式可参见上述第一方面的相关内容,此处不再详述。
第四方面,本申请实施例提供一种芯片,所述芯片用于:
用于调用第一接口函数,载入多个脚本文件;
还用于调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
还用于输出所述通信原语标识对应的通信原语名称和帧头信息。
另外,该方面中,芯片其他可选的实施方式可参见上述第一方面的相关内容,此处不再详述。
第五方面,本申请实施例提供一种模组设备,所述模组设备包括通信模组、电源模组、存储模组以及芯片模组,其中:
所述电源模组用于为所述模组设备提供电能;
所述存储模组用于存储数据和指令;
所述通信模组用于进行模组设备内部通信,或者用于所述模组设备与外部设备进行通信;
所述芯片模组用于:
调用第一接口函数,载入多个脚本文件;
对接收到的数据帧进行解码,获得所述数据帧的通信原语标识;
调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出所述通信原语标识对应的通信原语名称和帧头信息;
所述第一接口函数和所述第二接口函数是同一个解码动态链接库DLL的接口函数。
另外,该方面中,模组设备其他可选的实施方式可参见上述第一方面的相关内容,此处不再详述。
第六方面,一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器用于执行上述第一方面任一所述的方法所涉及的程序。
第七方面,一种计算机程序产品,其特征在于,包括计算机指令,当所述计算机指令在计算机上运行时,使得上述第一方面任一所述的方法。
附图说明
图1是本申请实施例提供的一种解码数据结构的方案示意图;
图2是本申请实施例提供的一种解码数据结构方法的流程示意图;
图3是本申请实施例提供的另一种解码数据结构方法的流程示意图;
图4是本申请实施例提供的一种解码结果数据流的格式示意图;
图5是本申请实施例提供的一种通信装置的结构示意图;
图6是本申请实施例提供的一种终端设备的结构示意图;
图7是本申请实施例提供的一种模组设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行阐述。
参见图1,图1是本申请实施例提供的一种解码数据结构的方案示意图,为了提升软件的开发效率,本申请结合图1提供了如下的解码通信原语的方案:
如图1所示,个人计算机(personal computer,PC)软件通过调用解码动态链接库(Dynamic Link Library,DLL)中的第一接口函数,载入多个脚本文件(如进程间通信(Inter-Process Communication,IPC)脚本文件、物理层(Physical,PHY)脚本文件、L1C脚本文件、L3协议脚本文件等)。PC软件对接收到的数据帧进行解码,获得数据帧对应的通信原语标识和通信原语数据流。PC软件调用解码动态链接库DLL中的第二接口函数,根据通信原语标识对应的脚本文件,确定通信原语名称和帧头信息。
一种可选的实施方式中,PC软件根据通信原语标识对应的脚本文件,调用解码动态链接库DLL中的第三接口函数对通信原语数据流进行解码,获得解码结果数据流。
一种可选的实施方式中,PC软件调用解码数据流模块对解码结果数据流进行解码,获得解码数据流。
可见,上述方案在利用脚本文件解码通信原语的过程中,通过解码动态链接库DLL中的三个接口函数,即可对接收到的数据帧进行解码,获得解码数据流,无需对每个通信原语都要编写对应的解码函数,从而可大量减少代码的编写量,进而提升软件开发效率。另外,即使通信原语有新增,该解码DLL进行更新的工作量也不大。
基于上述描述,参见图2,图2是本申请实施例提供的一种解码数据结构方法的流程示意图,如图2所示,该解码数据结构方法可以包括但不限于以下步骤:
S201.调用第一接口函数,载入多个脚本文件。
其中,第一接口函数可以是解码动态链接库DLL中的脚本文件载入BOOL Load_Script_File(CStringstrScriptFile)函数,其负责载入脚本文件。
一种可选的实施方式中,多个脚本文件是通过扫描多个软件(如Lay3、IPC、HPY、分组交换(Packet Switch,PS)等)模块的源代码(如C语言源代码)自动生成的。其中,该多个脚本文件用于描述数据结构、子结构、参数名称、参数类型、参数的取值范围以及参数取值的含义。可见,通过扫描各软件模块源代码自动生成,可及时更新脚本文件。
可理解的,本申请实施例中的脚本文件自动生成是可以通过脚本文件自动生成软件实现的。
另一种可选的实施方式中,多个脚本文件是针对多个软件模块进行编写生成的。可理解的,通过该方式可按照不同人员的需求去编写脚本文件,满足不同人员对脚本文件的需求。
S202.调用第二接口函数和通信原语标识对应的脚本文件,确定通信原语标识对应的通信原语名称和帧头信息。
其中,第二接口函数可以是解码动态链接库DLL中的解码消息名称CStringDecode_Message_Name(UINT unMsgID)函数,其可根据通信原语标识对应的脚本文件,解码通信原语标识,获得如步骤S202所述的通信原语名称和帧头信息。
其中,通信原语标识是对接收到的数据帧进行解码获得的,具体的,可以是对数据帧的帧头进行解码获得的。
S203.输出通信原语标识对应的通信原语名称和帧头信息。
一种可选的实施方式中,解码动态链接库DLL是通用的数据结构解码DLL。其中,该解码动态链接库DLL是通过微软基础类库(Microsoft Foundation Classes,MFC)扩展后得到的,包含脚本的管理类,负责管理各个脚本文件及其定义的数据结构、子结构,以及管理所有的参数名称、参数类型、参数取值范围、参数取值含义。如本申请所述的解码数据结构方法,通过接口函数和脚本文件可实现通信领域中任意通信原语数据结构的解码,输出特定格式的解码结果数据流;通过解码DLL中的三个接口函数,即可解码接收到的数据帧,获得通信原语名称及其数据结构,所以该解码DLL对脚本文件中数据结构的定位速度与数据结构的多少无关;另外,即使通信原语有新增、数据结构有变化,也无需对该解码DLL进行更新,从而减少了解码DLL维护所需的工作量,节省了人力资源。
可见,本申请实施例中,调用第一接口函数,载入多个脚本文件;调用第二接口函数和通信原语标识对应的脚本文件,确定通信原语标识对应的通信原语名称和帧头信息,该通信原语标识是对接收到的数据帧进行解码获得的;输出通信原语标识对应的通信原语名称和帧头信息;第一接口函数和第二接口函数是同一个解码DLL的接口函数。通过解码DLL中的两个接口函数即可对接收到的数据帧进行解码,获得通信原语名称和帧头信息,无需对每个通信原语都要编写对应的解码函数,从而减少了代码编写量,提升软件开发效率。同时,由于该解码DLL是通用的,因此即使通信原语有新增、数据结构有变化,也无需对该解码DLL进行更新,从而减少了解码DLL维护所需的工作量,节省了人力资源。
参见图3,图3是本申请实施例提供的另一种解码数据结构方法的流程示意图,如图3所示,该解码数据结构方法可以包括但不限于以下步骤:
S301.启动个人电脑(Personal Computer,PC)软件。
其中,该PC软件启动时,可通过解码DLL的脚本管理类,管理各个脚本文件;该PC软件可以是使用脚本文件及解码动态链接库DLL的工具软件;该PC软件直接调用解码DLL,因此该PC软件与数据结构的定义和数据结构的多少无关;该PC软件可适应各个软件模块的变动,从而减少了PC软件维护所需的工作量,节省了人力资源。
S302.调用第一接口函数,载入多个脚本文件。
步骤S302的相关阐述,可参见上述图2所示的解码数据结构方法中步骤S201的相关内容,此处不再详述。
S303.是否收到日志(Log)数据。当收到日志数据时,执行步骤S304;当没有收到日志数据时,执行步骤S303。
S304.是否收到一条完整的日志(Log)数据帧。当收到一条完整的日志数据帧时,执行步骤S305;当没有收到一条完整的日志数据帧时,执行步骤S303。
S305.解码接收到的日志数据帧,获得通信原语标识(Identity document,ID)及通信原语数据流。
其中,该日志数据帧是接收的数据帧。可见,对接收到的数据帧进行解码,不仅可以获得数据帧的通信原语标识,还可以获得数据帧的通信原语数据流。即如图1所示,对数据帧的解码可获得通信原语标识和通信原语数据流。
S306.调用第二接口函数和通信原语标识对应的脚本文件,确定通信原语标识对应的通信原语名称和帧头信息。
步骤S306中的相关阐述,可参见上述图2所示的解码数据结构方法中步骤S202中的相关内容,此处不再详述。
S307.输出通信原语标识对应的通信原语名称和帧头信息。
在步骤S307结束后,可继续执行步骤S303进行下一轮的判断、解码等操作。
一种可选的实施方式中,在上述步骤S306结束后,该解码数据结构方法还可以包括步骤S308:
S308.是否需要解码通信原语数据流,当需要解码通信原语数据流时,执行步骤S309;当不需要解码通信原语数据流时,则执行步骤S303。
其中,由于通信原语数据流包括了一个或多个数据结构,故该解码通信原语数据流的操作也可以称为解码数据结构。相应的,解码接收的日志数据帧获得的通信原语数据流,也可以称为获得的数据结构。
S309.调用第三接口函数对通信原语数据流进行解码,获得解码结果数据流。
其中,第三接口函数可以是解码动态链接库DLL中的解码消息Decode_Message(UINT unMsgID,BYTE*pSurData,int nSurDataLen,BYTE*pTargetData,int&nTargetDataLen)函数,其可根据通信原语标识对应的脚本文件,解码通信原语数据流,获得如步骤S309所述的解码结果数据流。
一种可选的实施方式中,根据通信原语标识对应的脚本文件,调用第三接口函数对通信原语数据流进行解码,获得解码结果数据流。其中,通信原语数据流是步骤S305中对接收到的数据帧进行解码获得的通信原语数据流;输出解码结果数据流;第三接口函数是解码动态链接库DLL中的接口函数。
一种可选的实施方式中,在上述步骤S309结束后,该解码数据结构方法还可以包括步骤S310:
S310.调用解码数据流模块对解码结果数据流进行解码,获得解码数据流。
S311.以树状结构,显示该解码数据流。
例如,在用户界面(user interface,UI)上,以树状结构显示该解码数据流。也就是说,PC软件可调用解码DLL,对通信原语数据流流进行解码,输出解码结果数据流;进而,PC软件调用解码数据流模块对解码结果数据流进行解码,获得解码数据流;进一步的,以树状结构,在用户界面(user interface,UI)上显示该解码数据流。
例如,解码结果数据流可以以如图4所示的格式输出,其中,长度(length)表示数据帧的长度,ID为树结构中的层次,字符串,字符串结束符'\0',等等。
另外,对解码结果数据流进行二次解码,获得解码数据流后,以树状结构显示,有利于开发或维护人员对软件的各种问题进行定位,从而提升软件开发或软件维护的效率。
在步骤S311结束后,可继续执行步骤S303进行下一轮的判断、解码等操作。
可见,本申请实施例中,需要在确定收到日志数据且该日志数据是一条完整的日志数据帧的情况下,通过解码DLL中的三个接口函数,即可对接收到的数据帧进行解码,获得解码数据流,无需对每个通信原语都要编写对应的解码函数,从而可减少代码的编写量,进而提升软件开发效率。另外,由于该解码DLL是通用的,因此即使通信原语有新增、数据结构有变化,也无需对该解码DLL进行更新,从而减少了解码DLL维护所需的工作量,节省了人力资源。
参见图5,图5是本发明实施例提供的一种解码数据结构装置的结构示意图,所述通信装置可以包括:
调用单元501,用于调用第一接口函数,载入多个脚本文件;
调用单元501,还用于调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出单元502,用于输出所述通信原语标识对应的通信原语名称和帧头信息。
一种可选的实施方式中,所述调用单元501还用于:
根据所述通信原语标识对应的脚本文件,调用第三接口函数对通信原语数据流进行解码,获得解码结果数据流,所述通信原语数据流是对所述接收到的数据帧进行解码获得的通信原语数据流;
所述输出单元502输出所述解码结果数据流;所述第三接口函数是所述解码动态链接库DLL中的接口函数。
一种可选的实施方式中,所述装置还包括显示单元503,所述显示单元503用于:
调用解码数据流模块对所述解码结果数据流进行解码,获得解码数据流;
以树状结构,显示所述解码数据流。
一种可选的实施方式中,所述装置还包括处理单元504,所述处理单元504用于:
所述多个脚本文件是通过扫描多个软件模块的源代码自动生成的;
其中,所述多个脚本文件用于描述数据结构、子结构、参数名称、参数类型、参数的取值范围以及参数取值的含义。
一种可选的实施方式中,所述处理单元504还用于:
所述解码动态链接库DLL是通用的数据结构解码动态链接库DLL;
其中,所述解码动态链接库DLL包括第一接口函数、第二接口函数和第三接口函数。本申请实施例和上述方法实施例基于同一构思,其带来的技术效果也相同,具体原理请参照上述方法实施例的描述,在此不赘述。
请参阅图6,图6是本申请实施例提供的一种终端设备的结构示意图。该终端设备包括处理器601、收发器602、存储器603和用户接口604。处理器601和存储器603通过一条或多条通信总线连接。
其中,收发器602用于发送数据或接收数据。用户接口604用于实现用户与计算机设备进行交互和信息交换。存储器603用于存储命令或计算机程序,存储器603可以包括只读存储器和随机存取存储器,并向处理器601提供命令和数据。存储器603的一部分还可以包括非易失性随机存取存储器。
用户接口604可以是包括用于输出的显示屏(Display)、扬声器以及用于输入的键盘(Keyboard)、触控屏、拾音设备,等等,需要说明的是,此处的键盘既可以为实体键盘,也可以为触屏虚拟键盘,还可以为实体与触屏虚拟相结合的键盘。
处理器601可以是中央处理单元(Central Processing Unit,CPU),该处理器601还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器,可选的,该处理器601也可以是任何常规的处理器等。
该终端设备可以是上述方法实施例中的终端,处理器601可用于执行存储器603所存储的计算机程序或命令,以使终端设备执行:
调用第一接口函数,载入多个脚本文件;
调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出所述通信原语标识对应的通信原语名称和帧头信息;
所述第一接口函数和所述第二接口函数是同一个解码动态链接库DLL的接口函数。
本申请实施例和上述方法实施例基于同一构思,其带来的技术效果也相同,具体原理请参照上述方法实施例的描述,在此不赘述。
请参见图7,图7是本申请实施例提供的一种模组设备的结构示意图。该模组设备包括通信模组701、电源模组702、存储模组703以及芯片模组704,其中:所述电源模组用于为所述模组设备提供电能;所述存储模组用于存储数据和命令;所述通信模组用于进行模组设备内部通信,或者用于所述模组设备与外部设备进行通信;
所述芯片模组704用于:
调用第一接口函数,载入多个脚本文件;
调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出所述通信原语标识对应的通信原语名称和帧头信息;
所述第一接口函数和所述第二接口函数是同一个解码动态链接库DLL的接口函数。
该模组设备的其他实现方式可参见上述方法实施例的相关内容。此处不再详述。
本申请实施例和上述方法实施例基于同一构思,其带来的技术效果也相同,具体原理请参照上述方法实施例的描述,在此不赘述。
本申请实施例还提供了一种芯片,所述芯片包括:处理器、存储器及存储在所述存储器上的计算机程序或指令,其中,所述处理器执行所述计算机程序或指令以实现上述方法实施例所描述的步骤。
本申请实施例还提供了一种计算机可读存储介质,其存储有计算机程序或指令,该计算机程序或指令被执行时实现上述方法实施例所描述的步骤。
本申请实施例还提供了一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被执行时实现上述方法实施例所描述的步骤。
关于上述实施例中描的各个装置、产品包含模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用或集成芯片的各个装置、产品其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者至少部分模块/单元可以采用软件程序的方式实现,该运行于芯片内部集成处理器,剩余的部分模块/单元可以采用电路等硬件方式实现;对于应于或集成芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同模块/单元可以位于芯片模组的同一件(例如片、电路模块等)或者不同组件中,至少部分/单元可以采用软件程序的方式实现,该软件程运行于芯片模组内部集成处理器剩余部分模块/单元可以采用电路等硬件方式实现;对于应或集成终端的各个装置、产品,其包含的模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者至少部分模块/单元可以采用软件程序的方式实现,该序运行于终端内部集成的处理器,剩余分模块/单元可以采用电路等硬件方式实现。
本申请实施例所描述的方法或者算法的步骤可以以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(applicationspecific integrated circuit,ASIC)中。另外,该ASIC可以位于终端设备或网络设备中。当然,处理器和存储介质也可以作为分立组件存在于终端设备或网络设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriberline,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述的具体实施方式,对本申请实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请实施例的具体实施方式而已,并不用于限定本申请实施例的保护范围,凡在本申请实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请实施例的保护范围之内。
Claims (15)
1.一种解码数据结构方法,其特征在于,所述方法包括:
调用第一接口函数,载入多个脚本文件;
调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出所述通信原语标识对应的通信原语名称和帧头信息;
所述第一接口函数和所述第二接口函数是同一个解码动态链接库DLL的接口函数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述通信原语标识对应的脚本文件,调用第三接口函数对通信原语数据流进行解码,获得解码结果数据流,所述通信原语数据流是对所述接收到的数据帧进行解码获得的通信原语数据流;
输出所述解码结果数据流;
所述第三接口函数是所述解码动态链接库DLL中的接口函数。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
调用解码数据流模块对所述解码结果数据流进行解码,获得解码数据流;
以树状结构,显示所述解码数据流。
4.根据权利要求1-3任一项所述的方法,其特征在于,
所述多个脚本文件是通过扫描多个软件模块的源代码自动生成的;
其中,所述多个脚本文件用于描述数据结构、子结构、参数名称、参数类型、参数的取值范围以及参数取值的含义。
5.根据权利要求1-3任一项所述的方法,其特征在于,
所述解码动态链接库DLL是通用的数据结构解码动态链接库DLL。
6.一种解码数据结构装置,其特征在于,所述装置包括:
调用单元,用于调用第一接口函数,载入多个脚本文件;
所述调用单元,还用于调用第二接口函数和所述通信原语标识对应的脚本文件,确定通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出单元,用于输出所述通信原语标识对应的通信原语名称和帧头信息。
7.根据权利要求6所述的装置,其特征在于,所述调用单元还用于:
根据所述通信原语标识对应的脚本文件,调用第三接口函数对通信原语数据流进行解码,获得解码结果数据流,所述通信原语数据流是对所述接收到的数据帧进行解码获得的通信原语数据流;
输出所述解码结果数据流;
所述第三接口函数是所述解码动态链接库DLL中的接口函数。
8.根据权利要求7所述的装置,其特征在于,
调用解码数据流模块对所述解码结果数据流进行解码,获得解码数据流;
以树状结构,显示所述解码数据流。
9.根据权利要求6所述的装置,其特征在于,
所述多个脚本文件是通过扫描多个软件模块的源代码自动生成的;
其中,所述多个脚本文件用于描述数据结构、子结构、参数名称、参数类型、参数的取值范围以及参数取值的含义。
10.根据权利要求6所述的装置,其特征在于,
所述解码动态链接库DLL是通用的数据结构解码动态链接库DLL;
其中,所述解码动态链接库DLL包括第一接口函数、第二接口函数和第三接口函数。
11.一种终端设备,其特征在于,所述终端设备包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1至5任一项所述的方法。
12.一种芯片,其特征在于,
所述芯片,用于调用第一接口函数,载入多个脚本文件;
所述芯片,还用于调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
所述芯片,还用于输出所述通信原语标识对应的通信原语名称和帧头信息。
13.一种模组设备,其特征在于,所述模组设备包括通信模组、电源模组、存储模组以及芯片模组,其中:
所述电源模组用于为所述模组设备提供电能;
所述存储模组用于存储数据和指令;
所述通信模组用于进行模组设备内部通信,或者用于所述模组设备与外部设备进行通信;
所述芯片模组用于:
调用第一接口函数,载入多个脚本文件;
调用第二接口函数和所述通信原语标识对应的脚本文件,确定所述通信原语标识对应的通信原语名称和帧头信息,所述通信原语标识是对接收到的数据帧进行解码获得的;
输出所述通信原语标识对应的通信原语名称和帧头信息;
所述第一接口函数和所述第二接口函数是同一个解码动态链接库DLL的接口函数。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至5任一项所述的方法。
15.一种计算机程序产品,其特征在于,包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111492519.2A CN114168226A (zh) | 2021-12-08 | 2021-12-08 | 一种解码数据结构方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111492519.2A CN114168226A (zh) | 2021-12-08 | 2021-12-08 | 一种解码数据结构方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168226A true CN114168226A (zh) | 2022-03-11 |
Family
ID=80484279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111492519.2A Pending CN114168226A (zh) | 2021-12-08 | 2021-12-08 | 一种解码数据结构方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168226A (zh) |
-
2021
- 2021-12-08 CN CN202111492519.2A patent/CN114168226A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109358936B (zh) | 信息处理方法、装置、存储介质、电子设备及系统 | |
TWI520061B (zh) | 移動裝置的應用程式框架 | |
CN107404418B (zh) | 互联网产品测试方法、装置、设备及存储介质 | |
CN109933381B (zh) | 一种内核的加载方法及装置 | |
US20230214243A1 (en) | One-machine multi-control method, apparatus, system and electronic device | |
CN112882709A (zh) | 基于容器引擎系统的渲染方法、装置、设备以及存储介质 | |
WO2022222292A1 (zh) | 功放适配方法、终端设备、存储介质及计算机程序产品 | |
CN114244821B (zh) | 数据处理方法、装置、设备、电子设备和存储介质 | |
CN110221840B (zh) | 应用程序的功能实现方法及装置、设备及存储介质 | |
CN113127361A (zh) | 应用程序的开发方法、装置、电子设备和存储介质 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
CN114048415A (zh) | 表单生成方法及装置、电子设备和计算机可读存储介质 | |
CN113778897A (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN114911541B (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
CN114168226A (zh) | 一种解码数据结构方法及相关装置 | |
CN115604070A (zh) | 基于mctp协议的消息传输方法、装置、设备及介质 | |
CN114547604A (zh) | 一种应用检测方法、装置、存储介质及电子设备 | |
CN114637531A (zh) | 应用程序接口动态生成方法及装置 | |
WO2019140565A1 (zh) | 云存储命令管理方法及系统 | |
CN114741294A (zh) | 一种页面的调试方法、装置、设备及存储介质 | |
CN110960858A (zh) | 一种游戏资源的处理方法、装置、设备及存储介质 | |
EP4191407A1 (en) | Method and device for generating and registering ui service package and loading ui service | |
WO2019140578A1 (zh) | 数据备份指令管理方法及系统 | |
CN114281350A (zh) | 基于嵌入式终端的场景适配方法、嵌入式终端、服务器 | |
CN116820626A (zh) | 动态调用原生js的方法及相关设备 |
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 |