CN113449224B - 复杂数据类型数据映射的方法、装置、设备和存储介质 - Google Patents
复杂数据类型数据映射的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113449224B CN113449224B CN202110744062.3A CN202110744062A CN113449224B CN 113449224 B CN113449224 B CN 113449224B CN 202110744062 A CN202110744062 A CN 202110744062A CN 113449224 B CN113449224 B CN 113449224B
- Authority
- CN
- China
- Prior art keywords
- variable
- cache
- data
- global variable
- information
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及工业控制领域,尤其涉及一种复杂数据类型数据映射的方法、装置、设备和存储介质。本申请实施例的方法包括:将变量ID配置到功能块的引脚或者设备的参数配置列表中,变量ID是自定义的复杂类型数据的全局变量的变量ID,所述全局变量包括多个成员,变量ID为多个成员中之一;为全局变量创建缓存区,划分缓存区以为每个成员分配一个缓存空间,得到全局变量的缓存信息,缓存信息包括全局变量的缓存区地址及每个成员的缓存空间大小和缓存地址;提供用于访问缓存区的接口,接口具有全局变量的缓存信息和变量ID。本申请实施例能够降低复杂数据类型数据的开发难度、使用成本和维护成本。
Description
技术领域
本申请涉及工业控制领域,尤其涉及一种复杂数据类型数据映射的方法、装置、设备和存储介质。
背景技术
一种相关技术,通过引入any数据类型或者采用指针数据类型,采用反射机制,进行复杂数据类型数据映射。any数据类型数据作为入参(Input Parameters)传递给runtime来实现复杂数据类型的数据映射。这种方式开发难度大,不易实现,提高了开发部署成本。由于采取了反射机制,增加了数据映射环节,容错能力降低,提高了维护成本。由于数据映射中间环节多,降低了数据访问效率。
另一种相关技术,把复杂数据类型数据成员拆分,单独作为功能块引脚使用,这就造成了使用的局限性,用户每次更新该数据结构成员,都要重新开发相对应的功能块或者其他数据消费者模块。如果该数据结构成员很多的话,就会造成功能块引脚特复杂,用户使用极其不便。
因此,如何通过复杂数据类型数据映射降低开发难度和使用成本,是亟待解决的技术问题。
发明内容
鉴于现有技术的以上问题,本申请提供一种复杂数据类型数据映射的方法、装置、设备和存储介质,能够降低复杂数据类型数据的开发难度、使用成本和维护成本。
为达到上述目的,本申请第一方面提供了一种复杂数据类型数据映射的方法,包括:
将变量ID配置到功能块的引脚或者设备的参数配置列表中,所述变量ID是自定义的复杂类型数据的全局变量的变量ID,所述全局变量包括多个成员,所述变量ID为所述多个成员中之一,所述功能块是用于处理所述复杂数据类型的数据的功能块,所述设备是用于处理所述复杂数据类型的数据的设备;
为所述全局变量创建缓存区,划分所述缓存区以为每个所述成员分配一个缓存空间,得到所述全局变量的缓存信息,所述缓存信息包括所述全局变量的缓存区地址及每个所述成员的缓存空间大小和缓存地址;
提供用于访问所述缓存区的接口,所述接口具有所述全局变量的缓存信息和变量ID,以便通过所述功能块的引脚或所述设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
由此,通过简单的开发和使用配置便可实现复杂数据类型的数据映射,只需变量ID和简单的配置就可以把复杂数据类型的数据映射到runtime,同时减少了数据映射中间环节。
作为第一方面的一种可能的实现方式,上述方法还可包括:创建所述复杂数据类型;创建所述复杂数据类型的全局变量,并为所述全局变量分配所述变量ID。
由此,便于用户自定义复杂数据类型及其全局变量的创建,可以进一步降低复杂数据类型数据的开发难度。
作为第一方面的一种可能的实现方式,所述将变量ID配置到功能块的引脚或者设备的参数配置列表中,包括如下之一:
将所述变量ID作为引脚参数传入所述功能块的相应引脚;
将所述变量ID作为对应所述复杂数据类型的设备的配置参数填入所述参数配置列表的相应字段。
由此,便于通过解析功能块的引脚参数或者设备参数配置列表获得变量ID。
作为第一方面的一种可能的实现方式,所述方法具体包括:
将第一变量ID配置到接收数据功能块的缓存ID引脚或设备的参数配置列表的RecvBufferID字段,所述第一变量ID是第一全局变量的变量ID,所述第一全局变量是接收数据的复杂数据类型的变量,所述第一全局变量包括多个成员,所述第一变量ID为所述多个成员中之一;
创建用于缓存所述接收数据的第一缓存区,划分所述第一缓存区以为所述第一全局变量的每个成员分配一个缓存空间,得到所述第一全局变量的缓存信息,所述第一全局变量的缓存信息包括所述第一缓存区的地址及所述第一全局变量的每个成员的缓存空间大小和缓存地址;
提供用于访问所述第一缓存区的第一接口,所述第一接口具有所述第一全局变量的缓存信息和第一变量ID,以便通过所述接收数据功能块的缓存ID引脚或设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存入当前所接收数据中对应成员的信息。
由此,通过简单的开发和使用配置便可实现所接收数据的复杂数据类型数据映射。
作为第一方面的一种可能的实现方式,所述接收数据功能块为TCP数据接收功能块或者UDP数据接收功能块;或者,所述设备为VCU。
作为第一方面的一种可能的实现方式,所述方法具体包括:
将第二变量ID配置到发送数据功能块的缓存ID引脚或设备的参数配置列表的SendBufferID字段,所述第二变量ID是第二全局变量的变量ID,所述第二全局变量是发送数据的复杂数据类型的变量,所述第二全局变量分别包括多个成员,所述第二变量ID为所述第二全局变量的多个成员中之一;
创建用于缓存所述发送数据的第二缓存区,划分所述第二缓存区以为所述第二全局变量的每个成员分配一个缓存空间,得到所述第二全局变量的缓存信息,所述第二全局变量的缓存信息包括所述第二缓存区的地址及所述第二全局变量的每个成员的缓存空间大小和缓存地址;
提供用于访问所述第二缓存区的第二接口,所述第二接口具有所述第二全局变量的缓存信息和第二变量ID,以便通过所述发送数据功能块的缓存ID引脚或设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间读取当前待发出数据中对应成员的信息。
由此,通过简单的开发和使用配置便可实现待发出数据的复杂数据类型数据映射。
作为第一方面的一种可能的实现方式,所述发送数据功能块为TCP数据发送功能块或UDP数据发送功能块;或者,所述设备为整车控制器VCU。
作为第一方面的一种可能的实现方式,上述方法还包括:
通过解析所述功能块的引脚参数或所述设备参数配置列表得到所述变量ID;
利用所述变量ID通过所述接口访问所述缓存区,以向所述缓存区中的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
由此,通过变量ID即可实现复杂数据类型数据的存取和收发。
作为第一方面的一种可能的实现方式,所述变量ID为所述全局变量的第一成员。
本申请实施例第二方面提供了一种复杂数据类型数据映射装置,包括:
配置模块,配置为将变量ID配置到功能块的引脚或者设备的参数配置列表中,所述变量ID是自定义的复杂类型数据的全局变量的变量ID,所述全局变量包括多个成员,所述变量ID为所述多个成员中之一,所述功能块是用于处理所述复杂数据类型的数据的功能块,所述设备是用于处理所述复杂数据类型的数据的设备;
映射模块,配置为为所述全局变量创建缓存区,划分所述缓存区以为每个所述成员分配一个缓存空间,得到所述全局变量的缓存信息,所述缓存信息包括所述全局变量的缓存区地址及每个所述成员的缓存空间大小和缓存地址;以及,提供用于访问所述缓存区的接口,所述接口具有所述全局变量的缓存信息和变量ID,以便通过所述功能块的引脚或所述设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
作为第二方面的一种可能的实现方式,所述装置还包括:集成开发环境模块,配置为创建所述复杂数据类型;以及,创建所述复杂数据类型的全局变量,并为所述全局变量分配所述变量ID。
作为第二方面的一种可能的实现方式,所述功能块为如下之一:TCP数据接收模型、TCP数据发送功能块、UDP数据接收功能块、UDP数据发送功能块;和/或,所述设备参数配置列表对应的设备为VCU。
作为第二方面的一种可能的实现方式,所述装置还包括:
解析模块,配置为通过解析所述功能块的引脚参数或所述设备参数配置列表得到所述变量ID;
存取模块,配置为利用所述变量ID通过所述接口访问所述缓存区,以向所述缓存区存取所述复杂数据类型的数据。
本申请实施例第三方面提供了一种计算设备,包括:
处理器和存储器;
所述存储器用于存储程序指令,所述程序指令当被所述处理器执行时使得所述计算设备实现上述的方法。
本申请第四方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机实现上述的方法。
本申请实施例,只需变量ID和简单的配置就可以把复杂数据类型的数据映射到runtime,并且IDE、runtime、功能块及总线,对于同一个复杂数据类型的全局变量而言,都是通过同一个变量ID来建立映射关系,从而降低了开发难度、使用成本和维护成本,同时因较少的数据映射中间环节降低了故障率和维护成本,提高了数据访问效率。
附图说明
以下参照附图来进一步说明本申请的各个特征和各个特征之间的联系。附图均为示例性的,一些特征并不以实际比例示出,并且一些附图中可能省略了本申请所涉及领域的惯常的且对于本申请非必要的特征,或是额外示出了对于本申请非必要的特征,附图所示的各个特征的组合并不用以限制本申请。另外,在本说明书全文中,相同的附图标记所指代的内容也是相同的。具体的附图说明如下:
图1是本申请实施例复杂数据类型数据映射的方法的流程图;
图2是本申请实施例中结构体变量列表的示例图。
图3为本申请实施例应用于TCP收发功能块时自定义结构体类型的示例图。
图4为本申请实施例应用于TCP收发功能块时接收数据结构体变量的示例图。
图5为本申请实施例应用于TCP收发功能块时发送数据结构体变量的示例图。
图6为本申请实施例应用于TCP收发功能块时全局变量的示例图。
图7本申请实施例应用于TCP接收数据功能块的引脚配置示例图。
图8为本申请实施例应用于TCP发送数据功能块的引脚配置示例图。
图9为本申请实施例应用于总线的场景示例图。
图10为本申请实施例提供的一种复杂数据类型数据映射装置的结构性示意性图。
图11本申请实施例提供的一种计算设备的结构性示意性图。
具体实施方式
说明书和权利要求书中的词语“第一、第二、第三等”或模块A、模块B、模块C等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
在以下的描述中,所涉及的表示步骤的标号,如S110、S120……等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置A和B的设备”不应局限为仅由部件A和B组成的设备。
本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
为了准确地对本申请中的技术内容进行叙述,以及为了准确地理解本申请,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义。
复杂数据类型,是相对于基元数据类型而言的。简单的复杂数据类型,往往是由一些基元数据类型构成的。
any数据类型,可以保存任何类型的值,包括标准数据类型、对象、结构和数组。使用any变量时,编译器在代码执行前无法检查编码错误,而是在代码运行起来才能抓到编码错误。
IEC 61131,是国际电工委员会(IEC)制定的可编程逻辑控制器标准。在IEC编号系统更改以前,称为IEC 1131。
IEC 61499,是用于分布式工业过程测量与控制系统功能块的标准。IEC 61499中,软件封装和重用的基本单元是功能块。IEC 61499标准是随着系统控制功能分散化、智能化的要求出现的。利用现场总线设备、智能仪器和传感器构造的大型复杂控制系统,控制功能可物理分散在许多设备中,不同设备中的软件通过通讯网络互连起来。利用IEC 61499标准,由功能块实现这些软件单元,并根据标准规定进行功能块互连,可实现分布式系统的控制功能。例如,智能压力传感器可定义成一个内嵌的模拟输入AI功能块,它提供一组已定义的输入和输出,比如实际测量压力值、传感器标定值和错误状态。利用IEC 61499标准,这些输入和输出可连接到其他功能块的输入和输出,例如压力传感器错误状态就可连接到一个驱动报警显示的功能块,而所有这些功能块分散在一个分布式系统的不同设备中。这种方法为控制系统的设计和改进提供了高度灵活性。
功能块,是一个软件功能单元,它由一个由其类型决定的专有数据结构和相关操作组成。IEC 61499中,功能块按功能分为基本功能块、复合功能块、服务接口功能块(例如,通讯功能块和管理功能块)和适配器(例如,插件和插座)。基本功能块由事件输入和输出、数据输入和输出、执行控制表(ECC)、算法和内部数据组成。执行控制表是一个事件驱动的状态机,它决定状态机的状态转换规律、状态机当前状态与输入事件的关系、执行算法与进入新状态时发出事件的关系。算法决定功能块的功能特性。特定事件发生时,其变化反映在相应的事件输入上,它驱动相应算法执行,算法读取输入数据,根据输入数据和内部数据产生内部数据和输出数据的新值,最后发出一个事件并把它输出到事件输出上。
结构体,用于把不同类型的数据组合成一个集合体,是由一批数据组合而成的一种新的数据类型,组成结构型数据的每个数据称为结构型数据的“成员”。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
变量(VAR),是指变化的量,有两部分组成,变量名和数据类型。在IEC 61131标准中,数据类型按大类可分为布尔型、整数型、浮点型、字符串型、时间型。
全局变量,某计算机中内部变量发生变化,其他系统对应变量也发生变化,称为全局变量。
集成开发环境(Integrated Development Environment,IDE)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
数据发布服务(Data Distribution Service,DDS),是一类以数据为中心的发布订阅模型的软件中间件规范,为应用程序提供基于网络的数据交互接口。其原理为:应用程序A作为发布方,可以通过DDS发布某个类型的数据,并为此次发布设置一个主题名;应用程序B作为订阅方,可以订阅该主题名,并从DDS总线上获取此主题对应的数据类型,然后以此解析接收到的数据。DDS为医学、交通、能源、监控和数据采集等领域实际的工业物联网应用提供支持,它能将终端操作系统与云端分析连接起来,构建完整的“传感器到云”的一体化系统。
整车控制器(Vehicle control unit,VCU),是实现整车控制决策的核心电子控制单元,一般仅新能源汽车配备、传统燃油车无需该装置。VCU通过采集油门踏板、挡位、刹车踏板等信号来判断驾驶员的驾驶意图,通过监测车辆状态(例如,车速、温度等)信息,由VCU判断处理后,向动力系统、动力电池系统发送车辆的运行状态控制指令,同时控制车载附件电力系统的工作模式,VCU具有整车系统故障诊断保护与存储功能。
本申请实施例可适用于基于IEC61131和IEC61499国际标准的工业控制领域。
下面对本申请实施例的示例性具体实施方式进行详细说明。
图1示出了本申请实施例复杂数据类型数据映射的实现方法的流程图。参见图1所示,该方法可包括如下步骤:
步骤S110,创建自定义的复杂数据类型。
例如,创建自定义的复杂数据类型C。复杂数据类型C可以是但不限于结构体类型、数组类型。该结构体类型或者数组,用户可以自由添加结构体或者数组成员变量及其基础数据类型。
以结构体为例,创建复杂数据类型的具体过程包括:用户在IDE中自定义n个结构体类型,IDE生成相应的结构体变量列表(Struct Vars list)。如图2所示,该结构体变量列表包含n个变量(var1~var(n)),n为大于或等于1的整数。每个变量的数据类型是一个自定义的结构体类型,每个结构体类型包含m个自定义的项(Struct items),结构体类型的第一项表示这个变量的变量ID,其他项为结构体数据,m为大于或等于2的整数。
步骤S120,创建复杂数据类型的全局变量,并为全局变量分配变量ID,所述全局变量包括多个成员,所述变量ID为所述多个成员中之一;
例如,创建复杂数据类型C的全局变量var_C,经编译产生该全局变量的变量ID,记为varID。
在全局变量组态区,创建一个对应复杂数据类型C的全局变量,然后经过编译产生一个该全局变量的变量ID,记为varID。
以图2为例,在全局变量组态区创建对应自定义的n个结构体类型中每个结构体类型的全局变量(也即,n个全局变量,全局变量与结构体类型一一对应),编译器通过编译,为每个全局变量分配一个变量ID,并把全局变量的变量ID的值赋给结构体变量列表中相应变量的第一个成员varID,也即变量ID为所述全局变量的第一成员。
步骤S130,将变量ID配置到功能块的引脚或设备的参数配置列表中;
具体地,将变量ID(即,varID)作为引脚参数传入功能块的相应引脚;或者,将变量ID(即,varID)作为对应复杂数据类型的设备的配置参数填入设备参数配置列表的相应字段,功能块是用于处理复杂数据类型的数据的功能块,设备是用于处理复杂数据类型的数据的设备。由此,用户可以将变量ID作为引脚参数、配置参数或者其他形式参数进行配置。
步骤S140,为全局变量创建缓存区,划分缓存区以为每个成员分配一个缓存空间,得到全局变量的缓存信息,提供用于访问所述缓存区的接口,接口具有全局变量的缓存信息和变量ID,缓存信息包括全局变量的缓存区地址及每个成员的缓存空间大小和缓存地址。
由此,通过缓存区将待处理的数据存储为自定义的复杂数据类型数据,也即通过变量ID在缓存区与复杂数据类型的数据之间建立了映射关系,以便通过所述功能块的引脚或所述设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
具体地,runtime接收来自IDE的变量列表并解析,为n个全局变量中的每个全局变量分别创建缓存区(也即,创建一变量列表存储空间,该空间包括n个缓存区,每个缓存区对应一个全局变量),分别划分缓存区以为全局变量的每个成员分配一个缓存空间,从而得到全局变量的缓存信息全局变量的缓存信息包括全局变量的缓存区的地址及其每个成员的缓存空间大小和缓存地址,最后,提供用于访问每个缓存区的接口,该接口具有全局变量的缓存信息,由此,便通过变量ID在缓存区与复杂数据类型的数据之间建立了映射关系,也即将复杂数据类型数据和数据内存区建立映射关系,供相关模块或其他数据消费者模块使用。
一些实施例中,上述方法还可以包括:通过解析功能块的引脚参数或设备参数配置列表得到变量ID;利用变量ID通过接口访问缓存区,以向缓存区存取复杂数据类型的数据。由此,可通过变量ID完成复杂数据类型数据的存取,可以提高数据访问效率。
本申请实施例中,功能块的类型不作限制。一些实施例中,功能块可以是数据收发功能块,例如,可以是但不限于TCP数据接收模型、TCP数据发送功能块、UDP数据接收功能块、UDP数据发送功能块。对于数据收发功能块,用户可以自定义对应数据接收功能块的发送复杂数据类型和数据发送功能块的接收复杂数据类型,通过本申请实施例的方法可以利用发送复杂数据类型的变量ID建立发送复杂数据类型的数据和相应缓存区的映射关系,进而通过发送复杂数据类型的变量ID向缓存区读取发送复杂数据类型的数据并发出,同样地,通过本申请实施例的方法可以利用接收复杂数据类型的变量ID建立接收复杂数据类型的数据和相应缓存区的映射关系,进而通过接收复杂数据类型的变量ID将收到的接收复杂数据类型的数据更新到相应缓存区中。由此,可以实现各类功能块的复杂数据类型数据的处理,降低了开发难度、使用成本和维护成本,同时因较少的数据映射中间环节降低了故障率和维护成本,提高了数据访问效率。
以接收数据为例,上述方法可以包括:
步骤a1,将第一变量ID配置到接收数据功能块的缓存ID引脚或设备的参数配置列表的RecvBufferID字段,所述第一变量ID是第一全局变量的变量ID,所述第一全局变量是接收数据的复杂数据类型的变量,所述第一全局变量包括多个成员,所述第一变量ID为所述多个成员中之一;
步骤a2,创建用于缓存所述接收数据的第一缓存区,划分所述第一缓存区以为所述第一全局变量的每个成员分配一个缓存空间,得到所述第一全局变量的缓存信息,所述第一全局变量的缓存信息包括所述第一缓存区的地址及所述第一全局变量的每个成员的缓存空间大小和缓存地址;
步骤a3,提供用于访问所述第一缓存区的第一接口,所述第一接口具有所述第一全局变量的缓存信息和第一变量ID,以便通过所述接收数据功能块的缓存ID引脚或设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存入当前所接收数据中对应成员的信息。
以待发出数据为例,本申请实施例的方法可以包括如下步骤:
步骤b1,将第二变量ID配置到发送数据功能块的缓存ID引脚或设备的参数配置列表的SendBufferID字段,所述第二变量ID是第二全局变量的变量ID,所述第二全局变量是发送数据的复杂数据类型的变量,所述第二全局变量分别包括多个成员,所述第二变量ID为所述第二全局变量的多个成员中之一;
步骤b2,创建用于缓存所述发送数据的第二缓存区,划分所述第二缓存区以为所述第二全局变量的每个成员分配一个缓存空间,得到所述第二全局变量的缓存信息,所述第二全局变量的缓存信息包括所述第二缓存区的地址及所述第二全局变量的每个成员的缓存空间大小和缓存地址;
步骤b3,提供用于访问所述第二缓存区的第二接口,所述第二接口具有所述第二全局变量的缓存信息和第二变量ID,以便通过所述发送数据功能块的缓存ID引脚或设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间读取当前待发出数据中对应成员的信息。
本申请实施例可应用于各类功能块。一些示例中,接收数据功能块为TCP数据接收功能块,发送数据功能块为TCP数据发送功能块。一些示例中,接收数据功能块为UDP数据接收功能块,发送数据功能块为UDP数据发送功能块。
本申请实施例可应用于总线的设备。例如,设备可以是诸如DDS总线的VCU。通过本申请实施例的方法可以建立VCU的发送复杂数据类型和接收复杂数据类型,同样地,可以利用发送复杂数据类型的变量ID建立发送数据和相应缓存区的映射关系,进而通过发送复杂数据类型的变量ID向缓存区的各个缓存区间读取待发出数据中对应成员的信息以形成复杂数据类型的待发出数据并发出,可以利用接收复杂数据类型的变量ID建立待接收数据中各成员信息和缓存区的映射关系,进而通过接收复杂数据类型的变量ID将收到的数据中的各成员信息更新到相应缓存区的对应缓存区间中。如此,可以实现总线的复杂数据类型数据的处理,降低了开发难度、使用成本和维护成本,同时因较少的数据映射中间环节降低了故障率和维护成本,提高了数据访问效率。
本申请实施例的方法中,IDE、runtime、功能块及总线,对于同一个复杂数据类型的变量而言,都是通过同一个变量ID建立映射关系,如此,通过同一个的变量ID便可实现复杂数据类型的创建、复杂数据类型数据与缓存区(即,数据内存)的映射、复杂数据类型数据的存取、复杂数据类型数据的收发,有效降低了开发难度、使用成本和维护成本,同时因较少的数据映射中间环节降低了故障率和维护成本,提高了数据访问效率。
下面结合具体应用场景对本申请实施例的示例性实现方式进行详细说明。
【应用实施例1】
本实施例,以功能块为例详细说明复杂数据类型数据映射的具体实施方式。
以传输控制协议(Transmission Control Protocol,TCP)数据收发功能块为例,复杂数据类型的数据映射过程可以包括如下步骤:
步骤1,创建一个自定义结构体类型struct_type1,作为接收数据结构体变量的数据类型;创建一个自定义结构体类型struct_type2,作为发送数据结构体变量的数据类型。
图3示出了结构体类型struct_type1和结构体类型struct_type2的示意图。
图4示出了结构体类型struct_type1及其成员组成。如图4所示,结构体类型struct_type1包括7个成员,其名称分别为varID、Item1、Item2、Item3、Item4、Item5、Item6,varID的数据类型为无符号双整型(UDINT),Item1、Item2、Item3、Item4的数据类型为布尔型(BOOL),Item5的数据类型为UDINT,Item6的数据类型为实型(REAL)。
图5示出了结构体类型struct_type2及其成员组成。如图5所示,结构体类型struct_type2包括5个成员,其名称分别为varID、Item1、Item2、Item3、Item4,varID的数据类型为UDINT,Item1、Item2的数据类型为无符号整型(UINT),Item3的数据类型为双字(DWORD),Item4的数据类型为REAL。
步骤2,在全局变量区创建步骤1中自定义结构体类型的全局变量,为全局变量分配变量ID,并将该变量ID的值赋值给相应结构体变量的varID。
创建全局变量并经过编译后,如图6所示,接收数据结构体变量var1选择的是struct_type1数据类型,var1.varID赋值为59;而发送数据结构体变量var2选择的是struct_type2数据类型,var2.varID赋值为60。
步骤3,利用varID创建缓存区并建立缓存区与结构体类型数据的映射,利用varID进行数据收发。
对于TCP接收数据功能块TCP_RECV,接收数据结构体变量的使用如图7所示,把步骤2创建的接收数据结构体变量var1作为接收数据缓存区,并把var1的var1.varID填入TCP_RECV的引脚BUFFID即可,BUFFSIZE是接收数据的长度,字节个数为12,跟之前创建的自定义结构体类型struct_type1的结构体成员项的总长度一致。TCP_RECV通过解析引脚BUFFID的参数获得var1.varID,在runtime中,TCP_RECV根据var1.varID找到接收数据缓存区地址(即相应的接口),通过该接收数据缓存区地址将来自通信伙伴的数据中各成员信息更新到接收数据缓存区中的对应缓存空间,从而将所接收到的数据缓存为接收复杂数据类型的数据。
对于TCP发送数据功能块TCP_SEND,发送数据结构体变量的使用如图8所示,,把步骤2创建的结构体变量var2作为发送数据变量缓存区,并把var2的var2.varID填入TCP_SEND的引脚BUFFID即可,TCP_SEND的BUFFSIZE是发送数据的长度,字节个数为12,跟之前创建的自定义结构体类型struct_type2的结构体成员项的总长度一致。TCP_SEND通过解析引脚BUFFID的参数获得var2.varID,在runtime中,TCP_SEND根据var2.varID找到发送数据缓存区地址(即访问发送数据缓存区的接口),从发送数据缓存区的各个缓存区间读取待发出数据的各成员信息,从而将待发出数据以发送复杂数据类型的数据发送给通信伙伴。
用户数据报协议(UDP,User Datagram Protocol)数据收发功能块的复杂数据类型数据映射与上文TCP数据收发功能块的具体实施方式相同,不再赘述。
【应用实施例2】
本实施例,以现场总线为例详细说明复杂数据类型数据映射的具体实施方式。
以现场总线为例,复杂数据类型的数据映射过程可以包括如下步骤:
步骤1,创建自定义结构体类型,具体实施方式与应用实施例1的步骤1相同,不再赘述。
步骤2,在全局变量区创建步骤1中自定义结构体类型的全局变量,具体实施方式与应用实施例1的步骤2相同,不再赘述。
步骤3,利用varID创建缓存区并建立缓存区与结构体类型数据的映射,利用varID进行数据收发。
如图9所示,控制器(controller)上有一条DDS总线,VCU是挂载在DDS总线上的设备,图9中右侧列表是VCU参数配置列表,把步骤2创建的接收数据结构体变量var1作为接收数据缓存区,把步骤2创建的结构体变量var2作为发送数据变量缓存区,把步骤2生成的var1.varID和var2.varID分别填入VCU参数配置列表的字段RecvBufferID和字段SendBufferID。
在runtime中,收到配置文件(包括VCU参数配置列表)后,DDS总线驱动模块通过解析VCU参数配置列表的配置字段RecvBuffID和SendBuffID,获得var1.varID和var2.varID。DDS总线驱动模块通过var1.varID找到接收数据缓存区地址,把来自VCU的数据中各成员信息更新到接收数据缓存区的相应缓存区间,从而来自VCU的数据缓存为接收复杂数据类型的数据。DDS总线驱动模块通过var2.varID找到发送数据缓存区地址,根据该发送数据缓存区地址向发送数据缓存区中的各个缓存空间读取待发送给VCU的数据中的各成员信息,从而将该数据以发送复杂数据类型的数据发送给VCU。
图10示出了本申请实施例提供的复杂数据类型数据映射的装置100的结构示意图。参见图10所示,装置100可以包括:
配置模块102,配置为将变量ID配置到功能块的引脚或者设备的参数配置列表中,所述变量ID是自定义的复杂类型数据的全局变量的变量ID,所述全局变量包括多个成员,所述变量ID为所述多个成员中之一,所述功能块是用于处理所述复杂数据类型的数据的功能块,所述设备是用于处理所述复杂数据类型的数据的设备;
映射模块103,配置为为所述全局变量创建缓存区,划分所述缓存区以为每个所述成员分配一个缓存空间,得到所述全局变量的缓存信息,所述缓存信息包括所述全局变量的缓存区地址及每个所述成员的缓存空间大小和缓存地址;以及,提供用于访问所述缓存区的接口,所述接口具有所述全局变量的缓存信息和变量ID,以便通过所述功能块的引脚或所述设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
一些实施例中,装置100还包括:集成开发环境模块101,配置为创建所述复杂数据类型;以及,创建所述复杂数据类型的全局变量,并为所述全局变量分配所述变量ID。
一些实施例中,功能块可以为如下之一:TCP数据接收模型、TCP数据发送功能块、UDP数据接收功能块、UDP数据发送功能块;和/或,设备参数配置列表对应的设备可以为VCU。
一些实施例中,装置100还可以包括:
解析模块104,配置为通过解析所述功能块的引脚参数或所述设备参数配置列表得到所述变量ID;
存取模块105,配置为利用所述变量ID通过所述接口访问所述缓存区,以向所述缓存区中的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
一些实施例中,配置模块102,配置为将所述变量ID配置到对应所述复杂数据类型的功能块或设备参数配置列表,包括如下之一:
将变量ID作为引脚参数传入功能块的相应引脚;
将变量ID作为对应复杂数据类型的设备的配置参数填入设备参数配置列表的相应字段。
图11是本申请实施例提供的一种计算设备11的结构性示意性图。该计算设备11可以包括:处理器111、存储器112。
其中,该处理器111可以与存储器112连接。该存储器112可以用于存储该程序代码和数据。因此,该存储器112可以是处理器111内部的存储单元,也可以是与处理器111独立的外部存储单元,还可以是包括处理器111内部的存储单元和与处理器111独立的外部存储单元的部件。
计算设备11还可以包括通信接口113。应理解,图11所示的计算设备11中的通信接口113可以用于与其他设备之间进行通信。
可选的,计算设备11还可以包括总线114。其中,存储器112、通信接口113可以通过总线114与处理器111连接。总线114可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。所述总线114可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
应理解,在本申请实施例中,该处理器111可以采用中央处理单元(centralprocessing unit,CPU)。该处理器还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器111采用一个或多个集成电路,用于执行相关程序,以实现本申请实施例所提供的技术方案。
该存储器112可以包括只读存储器和随机存取存储器,并向处理器111提供指令和数据。处理器111的一部分还可以包括非易失性随机存取存储器。例如,处理器111还可以存储设备类型的信息。
在计算设备11运行时,所述处理器111执行所述存储器112中的计算机执行指令执行上述方法的操作步骤。
应理解,根据本申请实施例的计算设备11可以对应于执行根据本申请各实施例的方法中的相应主体,并且计算设备11中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种复杂数据类型数据映射的方法,该方法包括上述各个实施例所描述的方案中的至少之一。
本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,均属于本申请保护范畴。
Claims (11)
1.一种复杂数据类型数据映射的方法,其特征在于,包括:
将变量ID配置到功能块的引脚或者设备的参数配置列表中,所述变量ID是自定义的复杂类型数据的全局变量的变量ID,所述全局变量包括多个成员,所述变量ID为所述多个成员中之一,所述功能块是用于处理所述复杂数据类型的数据的功能块,所述设备是用于处理所述复杂数据类型的数据的设备;
为所述全局变量创建缓存区,划分所述缓存区以为每个所述成员分配一个缓存空间,得到所述全局变量的缓存信息,所述缓存信息包括所述全局变量的缓存区地址及每个所述成员的缓存空间大小和缓存地址;
提供用于访问所述缓存区的接口,所述接口具有所述全局变量的缓存信息和变量ID,以便通过所述功能块的引脚或所述设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
2.根据权利要求1所述的方法,其特征在于,还包括:
通过创建所述复杂数据类型;
创建所述复杂数据类型的全局变量,并为所述全局变量分配所述变量ID。
3.根据权利要求1所述的方法,其特征在于,所述将变量ID配置到功能块的引脚或者设备的参数配置列表中,包括如下之一:
将所述变量ID作为引脚参数传入所述功能块的相应引脚;
将所述变量ID作为对应所述复杂数据类型的设备的配置参数填入所述参数配置列表的相应字段。
4.根据权利要求1所述的方法,其特征在于,所述方法具体包括:
将第一变量ID配置到接收数据功能块的缓存ID引脚或设备的参数配置列表的RecvBufferID字段,所述第一变量ID是第一全局变量的变量ID,所述第一全局变量是接收数据的复杂数据类型的变量,所述第一全局变量包括多个成员,所述第一变量ID为所述多个成员中之一;
创建用于缓存所述接收数据的第一缓存区,划分所述第一缓存区以为所述第一全局变量的每个成员分配一个缓存空间,得到所述第一全局变量的缓存信息,所述第一全局变量的缓存信息包括所述第一缓存区的地址及所述第一全局变量的每个成员的缓存空间大小和缓存地址;
提供用于访问所述第一缓存区的第一接口,所述第一接口具有所述第一全局变量的缓存信息和第一变量ID,以便通过所述接收数据功能块的缓存ID引脚或设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存入当前所接收数据中对应成员的信息。
5.根据权利要求4所述的方法,其特征在于,所述接收数据功能块为传输控制协议TCP数据接收功能块或者用户数据报协议UDP数据接收功能块;或者,所述设备为整车控制器VCU。
6.根据权利要求1所述的方法,其特征在于,所述方法具体包括:
将第二变量ID配置到发送数据功能块的缓存ID引脚或设备的参数配置列表的SendBufferID字段,所述第二变量ID是第二全局变量的变量ID,所述第二全局变量是发送数据的复杂数据类型的变量,所述第二全局变量分别包括多个成员,所述第二变量ID为所述第二全局变量的多个成员中之一;
创建用于缓存所述发送数据的第二缓存区,划分所述第二缓存区以为所述第二全局变量的每个成员分配一个缓存空间,得到所述第二全局变量的缓存信息,所述第二全局变量的缓存信息包括所述第二缓存区的地址及所述第二全局变量的每个成员的缓存空间大小和缓存地址;
提供用于访问所述第二缓存区的第二接口,所述第二接口具有所述第二全局变量的缓存信息和第二变量ID,以便通过所述发送数据功能块的缓存ID引脚或设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间读取当前待发出数据中对应成员的信息。
7.根据权利要求6所述的方法,其特征在于,所述发送数据功能块为TCP数据发送功能块或UDP数据发送功能块;或者,所述设备为整车控制器VCU。
8.根据权利要求1所述的方法,其特征在于,还包括:
通过解析所述功能块的引脚参数或所述设备参数配置列表得到所述变量ID;
利用所述变量ID通过所述接口访问所述缓存区,以向所述缓存区中的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
9.一种复杂数据类型数据映射装置,其特征在于,包括:
配置模块,配置为将变量ID配置到功能块的引脚或者设备的参数配置列表中,所述变量ID是自定义的复杂类型数据的全局变量的变量ID,所述全局变量包括多个成员,所述变量ID为所述多个成员中之一,所述功能块是用于处理所述复杂数据类型的数据的功能块,所述设备是用于处理所述复杂数据类型的数据的设备;
映射模块,配置为为所述全局变量创建缓存区,划分所述缓存区以为每个所述成员分配一个缓存空间,得到所述全局变量的缓存信息,所述缓存信息包括所述全局变量的缓存区地址及每个所述成员的缓存空间大小和缓存地址;以及,提供用于访问所述缓存区的接口,所述接口具有所述全局变量的缓存信息和变量ID,以便通过所述功能块的引脚或所述设备的参数配置列表中的变量ID访问所述接口从而按照所述缓存信息向所述缓存区的各个缓存空间存取所述复杂数据类型的数据中对应成员的信息。
10.一种计算设备,其特征在于,包括:
处理器和存储器;
所述存储器用于存储程序指令,所述程序指令当被所述处理器执行时使得所述计算设备实现权利要求1至8任一所述的方法。
11.一种计算机可读存储介质,其上存储有程序指令,其特征在于,所述程序指令当被计算机执行时使得所述计算机实现权利要求1至8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110744062.3A CN113449224B (zh) | 2021-07-01 | 2021-07-01 | 复杂数据类型数据映射的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110744062.3A CN113449224B (zh) | 2021-07-01 | 2021-07-01 | 复杂数据类型数据映射的方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113449224A CN113449224A (zh) | 2021-09-28 |
CN113449224B true CN113449224B (zh) | 2022-11-22 |
Family
ID=77814796
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110744062.3A Active CN113449224B (zh) | 2021-07-01 | 2021-07-01 | 复杂数据类型数据映射的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449224B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721982B (zh) * | 2022-03-22 | 2024-06-18 | 潍柴动力股份有限公司 | 一种可配置存储数据类型的读写处理方法及系统 |
CN116150872A (zh) * | 2022-11-17 | 2023-05-23 | 中国船舶重工集团公司第七一九研究所 | 复杂系统数字功能样机的建模方法、系统、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851671A (zh) * | 2005-07-01 | 2006-10-25 | 华为技术有限公司 | 一种节省全局变量内存空间的方法 |
CN108845961A (zh) * | 2018-06-29 | 2018-11-20 | 武汉斗鱼网络科技有限公司 | 一种创建顶点缓冲区方法、装置及可读存储介质 |
CN112783912A (zh) * | 2021-02-03 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8490061B2 (en) * | 2009-05-07 | 2013-07-16 | International Business Machines Corporation | Profiling application performance according to data structure |
-
2021
- 2021-07-01 CN CN202110744062.3A patent/CN113449224B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1851671A (zh) * | 2005-07-01 | 2006-10-25 | 华为技术有限公司 | 一种节省全局变量内存空间的方法 |
CN108845961A (zh) * | 2018-06-29 | 2018-11-20 | 武汉斗鱼网络科技有限公司 | 一种创建顶点缓冲区方法、装置及可读存储介质 |
CN112783912A (zh) * | 2021-02-03 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113449224A (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113449224B (zh) | 复杂数据类型数据映射的方法、装置、设备和存储介质 | |
CN107066243B (zh) | 一种通用的机载总线接口控制文档的解析和打包方法 | |
CN109768970A (zh) | 一种基于可配置的通用协议生成方法 | |
US10977018B1 (en) | Development environment for heterogeneous devices | |
CN116028292B (zh) | 用于远程直接内存访问仿真验证的仿真验证系统及方法 | |
US20040044639A1 (en) | Programmable data logger | |
CN114428728A (zh) | 信息物理测试协议处理系统及方法 | |
CN112416571A (zh) | 工业物联网节点的资源管理方法、操作系统及管理装置 | |
KR20240047468A (ko) | Ecu 업그레이드 방법 및 디바이스, 및 판독 가능 저장 매체 | |
EP3982268B1 (en) | Chassis simulation method and apparatus, server, storage medium and program product | |
US7296187B1 (en) | Hardware debug device having script-based host interface | |
CN117539459A (zh) | 一种api接口配置方法、系统及设备 | |
CN110098991B (zh) | 将EtherCAT总线系统接入通用物联云平台的设备 | |
Packwood et al. | FPGA-based mixed-criticality execution platform for SystemJ and the Internet of Industrial Things | |
Ng et al. | Session types: towards safe and fast reconfigurable programming | |
Lee et al. | Collecting big data from automotive ECUs beyond the CAN bandwidth for fault visualization | |
CN113126590A (zh) | 车辆诊断通信方法、装置、计算机设备和存储介质 | |
CN102147447B (zh) | 一种控制数据透传的方法、柔性标签连接方法及其装置 | |
CN110794731A (zh) | 一种支持以太网的嵌入式软plc控制系统 | |
Schonwald et al. | Network-on-chip architecture exploration framework | |
Wasicek et al. | Virtual can lines in an integrated mpsoc architecture | |
CN114944889B (zh) | 一种基于可参数化配置的多功能通信数据校验系统和方法 | |
US20060101415A1 (en) | Service logic program tracing | |
Yang et al. | Testing system for CAN bus-oriented embedded software | |
US20240054258A1 (en) | Unpack trigger for testing electronic control units |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |