CN107423074B - 一种创建具有通用组件的跨平台hmi应用的系统和方法 - Google Patents
一种创建具有通用组件的跨平台hmi应用的系统和方法 Download PDFInfo
- Publication number
- CN107423074B CN107423074B CN201710693099.1A CN201710693099A CN107423074B CN 107423074 B CN107423074 B CN 107423074B CN 201710693099 A CN201710693099 A CN 201710693099A CN 107423074 B CN107423074 B CN 107423074B
- Authority
- CN
- China
- Prior art keywords
- component
- hmi
- application
- trigger
- hmi application
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Abstract
本发明公开了一种创建具有通用组件的跨平台HMI应用的系统和方法,使得HMI应用的运行与开发解耦,从而在不同的目标各自实现统一的通用运行环境就能够运行HMI应用,实现跨平台,通用组件以通用的形式定义和创建,目标运行时环境不需要针对每个不同的通用组件进行定制运行,从而后续对通用组件的更改不需要花费大量时间进行目标运行时环境的适配,同时,由于不依赖于特定的SDK,能够很方便地跨平台运行。
Description
技术领域
本发明属于人机接口开发工具技术领域,涉及一种创建HMI应用的系统和方法,具体是一种创建具有通用组件的跨平台HMI应用的系统和方法。
背景技术
人机界面(Human-Machine Interface, HMI)是用户和机器之间进行信息传递和交互的媒介。HMI应用负责传递用户指令以及相应机器的反馈信息。传统的HMI应用开发系统包括两部分,存在于开发计算机中的开发环境以及存在于目标计算机中的运行时(runtime) 环境。开发者通常使用开发计算机上的开发环境来创建HMI应用,生成可执行文件继而下载到目标计算机中,运行在目标计算机的运行时环境中。
然而,这样的方式受限于开发环境和运行时环境约定的接口。特别是对于组件,双发需要各自实现对于特定组件的解析、构建方法,才能保证开发环境开发的组件能够正确运行在运行时环境中。
中国申请公布专利CN102124445A,提供了一种用于针对自动化过程创建HMI应用的方法和系统,由于其过于依赖通用SDK(软件开发工具包),目标设备能否运行依赖于其使用的SDK的运行能力,同时,组件是定制化组件,导致开发的组件需要在运行时环境针对解析,这样一旦产生了组件的修改或增加就需要运行时相应适配才能正确运行,不适合推广使用。
发明内容
本发明的目的在于提供一种创建具有通用组件的跨平台HMI应用的系统和方法,使得HMI应用的运行与开发解耦,从而在不同的目标各自实现统一的通用运行环境就能够运行HMI应用,实现跨平台。
本发明的目的可以通过以下技术方案实现:
一种创建具有通用组件的跨平台HMI应用的系统,包括具有HMI开发环境的开发计算机,若干具有目标运行时环境的目标计算机以及HMI应用;
所述HMI开发环境被用于创建可以在目标计算机中执行的HMI应用,在HMI开发环境中,驻留有通用组件和静态资源;
所述HMI应用包括运行在HMI开发环境下的应用开发模块、应用传输模块以及运行在目标运行时环境下的应用解析模块;
所述目标运行时环境是用于执行HMI应用的主机,在目标运行时环境中,驻留有组件绘制器和指令执行器。
进一步地,所述通用组件由属性、触发方法和指令构成,所述通用组件的显示由其属性所规定,所述通用组件的逻辑由触发方法和相应触发指令构成,通过触发指令改变组件的属性从而实现组件状态的更新。
进一步地,所述通用组件的属性包括几何属性、纹理属性、参数属性以及通用属性。
进一步地,所述通用组件的触发指令包括创建变量、算数指令、赋值以及系统交互的指令。
进一步地,所述应用开发模块采用编程语言,注册好组件的触发条件以及该触发条件执行的指令,将两者打包成通用数据结构,然后采用GUI交互模式,可视化地产生通用数据结构,最后将前两步生成的通用数据结构加上涉及到的静态资源,完成整个HMI应用。
进一步地,所述应用传输模块采用网络或者移动存储,将开发产生的数据结构和静态资源从HMI开发环境转移到目标运行时环境。
进一步地,所述应用解析模块包括
对HMI应用静态结构的解析,根据组件的属性来确定组件的几何位置与形状;
对HMI触发指令的解析,根据组件触发条件对应的指令,注册到触发监听器上,当触发监听器监听到该组件的触发事件时,执行已经注册的指令列表。
进一步地,所述组件绘制器根据组件的参数在显示界面上绘制出组件的样子,所述指令执行器动态地修改组件的参数、触发新的指令或与系统交互。
一种创建具有通用组件的跨平台HMI应用的方法,包括以下步骤:
步骤S1,在HMI开发环境下,构建通用组件类,其具体包括编写组件类构造函数和编写组件类触发指令;
步骤S2,根据步骤S1中的组件参数生成具有不同样式的但是逻辑结构一致的组件实例;
步骤S3,将应用涉及到的组件序列化为通用数据结构,用于描述应用的静态结构和逻辑;
步骤S4,将步骤S3中生成的通用数据结构,附加静态资源,将该数据结构和引用的静态资源打包成为完整的HMI应用;
步骤S5,将步骤S4生成的HMI应用从HMI开发环境转移到目标运行时环境;
步骤S6,在目标运行时环境下解析HMI应用,根据组件的属性来确定组件的几何位置与形状,根据组件触发条件对应的触发指令,注册到触发监听器上,当触发监听器监听到该组件的触发事件时,执行已经注册的指令列表;
步骤S7,利用组件绘制器绘制组件,根据组件的参数在显示界面上绘制出组件的样式;
步骤S8,判断是否有交互事件,若有,执行步骤S9,若没有,执行步骤S11;
步骤S9,处理交互事件;
步骤S10,利用指令执行器执行组件指令,返回步骤S7;
步骤S11,HMI应用运行结束。
本发明的有益效果:本发明实现了一种具有通用组件的HMI应用创建方法和系统,并且创建的HMI应用可以跨平台运行,通用组件以通用的形式定义和创建,目标运行时环境不需要针对每个不同的通用组件进行定制运行,从而后续对通用组件的更改不需要花费大量时间进行目标运行时环境的适配,同时,由于不依赖于特定的SDK,能够很方便地跨平台运行。
附图说明
下面结合附图和具体实施例对本发明作进一步详细描述。
图1是本发明的系统示意图。
图2是本发明通用组件的结构示意图。
图3是本发明的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,在下述描述中,为了对本发明提供更为彻底的描述而阐明了许多特定的细节。然而,对本领域技术人员来说,很明显可以在没有这些特定细节的情况下实施本发明,在其他示例中,为了不使本发明变得难以理解,并没有对众所周知的特征进行详细地描述。
正如可以被本领域技术人员领会的一样,本发明可以采取在有形的、计算机可用或者计算机可读介质上的计算机程序产品的形式,其具有被包含在该介质中的计算机可用程序代码。该有形的、计算机可用或计算机可读介质可以是任何有形的介质,例如但不限于:便携式计算机软盘,闪速驱动器(flash drive),硬盘,随机存取存储器(RAM),只读存储器(ROM),可擦除可编程只读存储器(EPROM或闪存),便携式光盘只读存储器(CD-ROM),光存储器设备,或磁存储器设备。
如图1所示,本发明提供了一种创建具有通用组件的跨平台HMI应用的系统,包括具有HMI开发环境的开发计算机,若干具有目标运行时环境的目标计算机以及HMI应用。
HMI开发环境被用于创建可以在目标计算机中执行的HMI应用,在HMI开发环境中,驻留有通用组件和静态资源。
通用组件,由属性、触发方法和指令构成,通用组件的显示由其属性所规定,通用组件的逻辑由触发方法和相应触发指令构成,通过触发指令改变组件的属性从而实现组件状态的更新。
其中,通用组件的属性包括:
几何属性:左上角坐标、宽度、高度等。
纹理属性:图片、颜色、掩膜(mask)等。
参数属性:最小值、最大值、最小角、最大角等。
通用属性:预留属性数组用于存放其他属性。
通用组件的触发方法,用于组件响应触发,包括参数更新(onUpdate)、鼠标按下(onMouseDown)、鼠标抬起(onMouseUp)、鼠标移动(onMouseMove)、重绘(onDraw)等。
通用组件的触发指令,通过定义好的通用指令来更新组件数据或者与系统交互包括
创建变量:创建局部变量。
算数指令:包括加法、减法、乘法和除法等,将一个变量的值执行对应的操作并更新其值。
赋值:将组件的某一个参数或变量赋为新的值。
其他指令:包括与系统交互的特别指令等。
HMI应用包括运行在HMI开发环境下的应用开发模块、应用传输模块以及运行在目标运行时环境下的应用解析模块。
其中,应用开发模块采用编程语言,包括但不限于JavaScript、Java、C++、C等构件组件数据结构,注册好一类组件的触发条件以及该触发条件执行的指令,将两者打包成通用数据结构,例如JSON、XML等;然后采用GUI交互模式,可视化地产生如图2所示的通用数据结构;最后将前两步生成的通用数据结构加上涉及到的静态资源如图片等,完成整个HMI应用。
应用传输模块,采用网络或者移动存储或其他类似手段,将开发产生的数据结构和静态资源从HMI开发环境转移到目标运行时环境。
应用解析模块,包括对HMI应用静态结构的解析和触发指令的解析。
其中,对HMI应用静态结构的解析是指根据组件的属性,例如当前的坐标和宽度高度来确定组件的几何位置与形状。对HMI触发指令的解析是指根据组件触发条件对应的指令,注册到触发监听器上。当触发监听器监听到该组件的触发事件时,执行已经注册的指令列表。
目标运行时环境是用于执行HMI应用的主机,在目标运行时环境中,驻留有组件绘制器和指令执行器。
组件绘制器,HMI应用运行时系统需要实现组件的绘制,即根据组件的参数如坐标、宽度、高度、以及纹理在显示界面上绘制出组件的样子。
指令执行器,HMI应用运行时系统需要能够执行每条通用指令,动态地修改组件的参数、触发新的指令或与系统交互。
一种创建具有通用组件的跨平台HMI应用的方法,包括以下步骤:
步骤S1,在HMI开发环境下,构建通用组件类;其具体包括编写组件类构造函数和编写组件类触发指令。
编写组件类构造函数,例如,对于按钮组件类来说,通过构造函数传入坐标、宽度、高度和纹理列表,即可构造出不同样式的按钮控件实例。
编写组件类触发指令,例如对于按钮组件来说,需要编写的触发指令包括按下(onMouseDown)和抬起(onMouseUp)。其中,按下指令包括[[set,layers.0.hidden,true],[set,layers.1.hidden,false],意思为设置第一张纹理(按下前图片)隐藏,设置第二张纹理(按下后图片)显示,这样就实现了按钮按下的效果。
步骤S2,根据步骤S1中的组件参数生成具有不同样式的但是逻辑结构一致的组件实例。
步骤S3,将应用涉及到的组件序列化为JSON等通用数据结构,用于描述应用的静态结构和逻辑。
步骤S4,将步骤S3中生成的通用数据结构,附加静态资源,将该数据结构和引用的静态资源打包成为完整的HMI应用。
步骤S5,将步骤S4生成的HMI应用从HMI开发环境转移到目标运行时环境。
步骤S6,在目标运行时环境下解析HMI应用,根据组件的属性,例如当前的坐标和宽度高度来确定组件的几何位置与形状,根据组件触发条件对应的触发指令,注册到触发监听器上,当触发监听器监听到该组件的触发事件时,执行已经注册的指令列表。
步骤S7,利用组件绘制器绘制组件,根据组件的参数在显示界面上绘制出组件的样式;例如,根据按钮的坐标、宽度、高度和当前显示纹理,绘制出按钮的样子。
步骤S8,判断是否有交互事件,若有,执行步骤S9,若没有,执行步骤S11。
步骤S9,处理交互事件;例如,当用户点击屏幕时,目标运行时环境需要处理按下的坐标,解析被点击的组件,从而触发该组件的按下或抬起事件。
步骤S10,利用指令执行器执行组件指令,返回步骤S7;例如对于按钮的[set,layers.0.hidden,true]指令,将当前按钮第一个纹理的hidden属性设为true。
步骤S11,HMI应用运行结束。
其中,所有目标运行时环境只需要实现步骤S7-S10就能够运行HMI开发环境开发的HMI应用,即使开发环境增加或修改组件,目标运行时环境依并不需要针对地修改,上述步骤S7-S10并不依赖于任何平台有关的或第三方的SDK,所以很方便实现跨平台。
本发明实现了一种具有通用组件的HMI应用创建方法和系统,并且创建的HMI应用可以跨平台运行,通用组件以通用的形式定义和创建,目标运行时环境不需要针对每个不同的通用组件进行定制运行,从而后续对通用组件的更改不需要花费大量时间进行目标运行时环境的适配,同时,由于不依赖于特定的SDK,能够很方便地跨平台运行。
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上内容仅仅是对本发明结构所作的举例和说明,所属本技术领域的技术人员对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (9)
1.一种创建具有通用组件的跨平台HMI应用的系统,其特征在于:包括具有HMI开发环境的开发计算机,若干具有目标运行时环境的目标计算机以及HMI应用;
所述HMI开发环境被用于创建可以在目标计算机中执行的HMI应用,在HMI开发环境中,驻留有通用组件和静态资源;
所述HMI应用包括运行在HMI开发环境下的应用开发模块、应用传输模块以及运行在目标运行时环境下的应用解析模块;
所述目标运行时环境是用于执行HMI应用的主机,在目标运行时环境中,驻留有组件绘制器和指令执行器;
创建具有通用组件的跨平台HMI应用步骤:
步骤S1,在HMI开发环境下,构建通用组件类,其具体包括编写组件类构造函数和编写组件类触发指令;
步骤S2,根据步骤S1中的组件参数生成具有不同样式的但是逻辑结构一致的组件实例;
步骤S3,将应用涉及到的组件序列化为通用数据结构,用于描述应用的静态结构和逻辑;
步骤S4,将步骤S3中生成的通用数据结构,附加静态资源,将该数据结构和引用的静态资源打包成为完整的HMI应用;
步骤S5,将步骤S4生成的HMI应用从HMI开发环境转移到目标运行时环境;
步骤S6,在目标运行时环境下解析HMI应用,根据组件的属性来确定组件的几何位置与形状,根据组件触发条件对应的触发指令,注册到触发监听器上,当触发监听器监听到该组件的触发事件时,执行已经注册的指令列表;
步骤S7,利用组件绘制器绘制组件,根据组件的参数在显示界面上绘制出组件的样式;
步骤S8,判断是否有交互事件,若有,执行步骤S9,若没有,执行步骤S11;
步骤S9,处理交互事件;
步骤S10,利用指令执行器执行组件指令,返回步骤S7;
步骤S11,HMI应用运行结束。
2.根据权利要求1所述的一种创建具有通用组件的跨平台HMI应用的系统,其特征在于:所述通用组件由属性、触发方法和指令构成,所述通用组件的显示由其属性所规定,所述通用组件的逻辑由触发方法和相应触发指令构成,通过触发指令改变组件的属性从而实现组件状态的更新。
3.根据权利要求2所述的一种创建具有通用组件的跨平台HMI应用的系统,其特征在于:所述通用组件的属性包括几何属性、纹理属性、参数属性以及通用属性。
4.根据权利要求2所述的一种创建具有通用组件的跨平台HMI应用的系统,其特征在于:所述通用组件的触发指令包括创建变量、算数指令、赋值以及系统交互的指令。
5.根据权利要求1所述的一种创建具有通用组件的跨平台HMI应用的系统,其特征在于:所述应用开发模块采用编程语言,注册好组件的触发条件以及该触发条件执行的指令,将两者打包成通用数据结构,然后采用GUI交互模式,可视化地产生通用数据结构,最后将前两步生成的通用数据结构加上涉及到的静态资源,完成整个HMI应用。
6.根据权利要求1所述的一种创建具有通用组件的跨平台HMI应用的系统,其特征在于:所述应用传输模块采用网络或者移动存储,将开发产生的数据结构和静态资源从HMI开发环境转移到目标运行时环境。
7.根据权利要求1所述的一种创建具有通用组件的跨平台HMI应用的系统,其特征在于:所述应用解析模块包括
对HMI应用静态结构的解析,根据组件的属性来确定组件的几何位置与形状;
对HMI触发指令的解析,根据组件触发条件对应的指令,注册到触发监听器上,当触发监听器监听到该组件的触发事件时,执行已经注册的指令列表。
8.根据权利要求1所述的一种创建具有通用组件的跨平台HMI应用的系统,其特征在于:所述组件绘制器根据组件的参数在显示界面上绘制出组件的样子,所述指令执行器动态地修改组件的参数、触发新的指令或与系统交互。
9.一种创建具有通用组件的跨平台HMI应用的方法,其特征在于,包括以下步骤:
步骤S1,在HMI开发环境下,构建通用组件类,其具体包括编写组件类构造函数和编写组件类触发指令;
步骤S2,根据步骤S1中的组件参数生成具有不同样式的但是逻辑结构一致的组件实例;
步骤S3,将应用涉及到的组件序列化为通用数据结构,用于描述应用的静态结构和逻辑;
步骤S4,将步骤S3中生成的通用数据结构,附加静态资源,将该数据结构和引用的静态资源打包成为完整的HMI应用;
步骤S5,将步骤S4生成的HMI应用从HMI开发环境转移到目标运行时环境;
步骤S6,在目标运行时环境下解析HMI应用,根据组件的属性来确定组件的几何位置与形状,根据组件触发条件对应的触发指令,注册到触发监听器上,当触发监听器监听到该组件的触发事件时,执行已经注册的指令列表;
步骤S7,利用组件绘制器绘制组件,根据组件的参数在显示界面上绘制出组件的样式;
步骤S8,判断是否有交互事件,若有,执行步骤S9,若没有,执行步骤S11;
步骤S9,处理交互事件;
步骤S10,利用指令执行器执行组件指令,返回步骤S7;
步骤S11,HMI应用运行结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710693099.1A CN107423074B (zh) | 2017-08-14 | 2017-08-14 | 一种创建具有通用组件的跨平台hmi应用的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710693099.1A CN107423074B (zh) | 2017-08-14 | 2017-08-14 | 一种创建具有通用组件的跨平台hmi应用的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107423074A CN107423074A (zh) | 2017-12-01 |
CN107423074B true CN107423074B (zh) | 2020-07-07 |
Family
ID=60436742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710693099.1A Active CN107423074B (zh) | 2017-08-14 | 2017-08-14 | 一种创建具有通用组件的跨平台hmi应用的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107423074B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614886B (zh) * | 2018-05-03 | 2021-10-15 | 北京云站科技有限公司 | 一种网站主题的生成方法及装置 |
CN108984174B (zh) * | 2018-07-03 | 2022-04-12 | 百度在线网络技术(北京)有限公司 | 跨平台的应用创建方法、装置、服务器和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647033A (zh) * | 2002-04-02 | 2005-07-27 | 西门子公司 | 自动生成自动化软件的装置和方法 |
CN101201596A (zh) * | 2006-10-20 | 2008-06-18 | 洛克威尔自动控制技术股份有限公司 | 用于模块设计的设计模式 |
CN101201599A (zh) * | 2006-09-29 | 2008-06-18 | 洛克威尔自动控制技术股份有限公司 | 用于工业控制系统的模块的人机界面视角 |
CN102124445A (zh) * | 2008-07-28 | 2011-07-13 | Abb研究有限公司 | 用于针对自动化过程创建hmi应用的方法和系统 |
CN105242937A (zh) * | 2014-06-27 | 2016-01-13 | 中兴通讯股份有限公司 | 一种动态更新应用界面的方法、终端及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011063269A1 (en) * | 2009-11-20 | 2011-05-26 | Alert Enterprise, Inc. | Method and apparatus for risk visualization and remediation |
-
2017
- 2017-08-14 CN CN201710693099.1A patent/CN107423074B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647033A (zh) * | 2002-04-02 | 2005-07-27 | 西门子公司 | 自动生成自动化软件的装置和方法 |
CN101201599A (zh) * | 2006-09-29 | 2008-06-18 | 洛克威尔自动控制技术股份有限公司 | 用于工业控制系统的模块的人机界面视角 |
CN101201596A (zh) * | 2006-10-20 | 2008-06-18 | 洛克威尔自动控制技术股份有限公司 | 用于模块设计的设计模式 |
CN102124445A (zh) * | 2008-07-28 | 2011-07-13 | Abb研究有限公司 | 用于针对自动化过程创建hmi应用的方法和系统 |
CN105242937A (zh) * | 2014-06-27 | 2016-01-13 | 中兴通讯股份有限公司 | 一种动态更新应用界面的方法、终端及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107423074A (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3304286B1 (en) | Data binding dependency analysis | |
US20210141523A1 (en) | Platform-independent user interface system | |
Healy et al. | Silk: A Java-based process simulation language | |
US20060117267A1 (en) | System and method for property-based focus navigation in a user interface | |
CN113342346B (zh) | 深度学习框架的算子注册方法、装置、设备和存储介质 | |
WO2015148424A1 (en) | Supporting dynamic behavior in statically compiled programs | |
US8935686B2 (en) | Error-code and exception-based function dispatch tables | |
CN112199086A (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
KR20140023971A (ko) | 고도로 동시적인 처리 작업들의 등록 및 실행 | |
WO2015039628A1 (zh) | 可视化步骤编程法 | |
CN107423074B (zh) | 一种创建具有通用组件的跨平台hmi应用的系统和方法 | |
EP2181387A1 (en) | A programming environment with support for handle and non-handle user-created classes | |
US11789775B2 (en) | Progress visualization of computational job | |
EP1192532B1 (en) | Extending the attributes of an application generated using a fourth generation programming tool | |
TW201835759A (zh) | 行動原生應用程式開發平台 | |
CN116909553A (zh) | 一种页面在线开发及本地编译运行系统 | |
Marinho et al. | Native and multiple targeted mobile applications | |
CN104267954A (zh) | 一种用户界面中所包含的部件的生成方法和装置 | |
CN110716716B (zh) | 移动端可视化ai编程平台 | |
CN114518875A (zh) | 一种图形化编程系统及其编程方法 | |
Gotti et al. | A Model Driven approach for multi-platform execution of interactive UIS designed with IFML | |
Heckler et al. | Javafx 8: Introduction by example | |
CN106445487B (zh) | 用于控制交互式组件的处理单元、软件以及方法 | |
Di Trapani et al. | NTGsim: A graphical user interface and a 3D simulator for nonlinear trajectory generation methodology | |
US10802844B2 (en) | Distributed application based off of stateful desktop application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |