CN103155016A - 将新的子系统与现有计算架构进行集成 - Google Patents
将新的子系统与现有计算架构进行集成 Download PDFInfo
- Publication number
- CN103155016A CN103155016A CN2011800488310A CN201180048831A CN103155016A CN 103155016 A CN103155016 A CN 103155016A CN 2011800488310 A CN2011800488310 A CN 2011800488310A CN 201180048831 A CN201180048831 A CN 201180048831A CN 103155016 A CN103155016 A CN 103155016A
- Authority
- CN
- China
- Prior art keywords
- data
- software modules
- combination
- software
- subset
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/02—Simulators for teaching or training purposes for teaching control of vehicles or other craft
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Abstract
一种用于将新子系统与现有计算架构进行集成的装置,该装置包括:第一物理接口,用于从该现有计算架构接收数据;第二物理接口,用于向该新子系统输出数据;处理装置以及存储器,该存储器具有存储在其上的第一软件模块、多个其他软件模块和第一存储配置,其中,当被该处理装置执行时,该第一软件模块被配置为读取该第一存储配置,并且使得该处理装置加载该多个其他软件模块中的其他软件模块的组合,该多个其他软件模块中的其他软件模块的该组合与该多个其他软件模块中的其他软件模块的该组合的第一子集是由该第一存储配置定义的,当被该处理装置执行时,该组合的该第一子集可进行操作以将在该第一物理接口处接收的数据变换成与该新子系统兼容的形式,并且经由该第二物理接口向该新子系统输出变换数据。
Description
技术领域
本发明涉及将新子系统与现有计算架构进行集成的装置、方法和计算机可读指令。
背景技术
交通工具仿真器通常用于训练人员如何操作交通工具。该交通工具仿真器的一个示例是飞行仿真器,飞行仿真器是航空工业中非常重要的工具并且被商业航空公司、第三方训练中心和军方用于训练飞行员。
飞行仿真器是包括硬件和软件组件的无数子系统的复杂装配。这些子系统可以包括用于执行大部分软件组件的中央主机、飞行器特有的飞行模型、包括飞行器电子单元中的驾驶员座舱仪器、作为用于负责向飞行员提供在移动飞行器中的感觉的组件的飞行控制载入系统和运动平台、可视化图像生成器和显示系统、声音和听觉提示系统和教练员操作系统(IOS)。
飞行仿真器制造昂贵并且开销的范围可能在一千万到一千五百万美元。它们的寿命预期最初典型地大约20年,但是通过更新仿真器的软件和/或硬件,可以将其延长到近似30年。可能需要更新以使得仿真器与常规要求、新技术和信的和不同分析器配置的改变一致。
传统而言,存在两种不同方式用于执行飞行仿真器上的软件更新。第一种方式涉及主机上的新软件的安装和集成。第二种方式使用外部计算机向该平台提供新功能,并且将该外部计算机与该主机集成。这两种方式都是非常复杂的过程,其依赖于现有系统和该系统需要更新的新软件。就这点而言,结果是更新仿真器所需要的软件和硬件是特定于该仿真器的,并且即使差异相对很小也不可用于更新不同类型/规格的仿真器。此外,这些种类的更新需要对于现有仿真器软件配置的显著的修改以便允许与新软件的集成。该修改涉及时间和费用。该更新是更复杂的,因为主机软件的配置可能未被良好的注解,因而工程师通常需要花费时间解析(unravel)仿真器配置。此外,由于主机软件的配置通常未知,所以工程师面临由于丢块等等而使得仿真器的保真度降级的严重问题。
在飞行仿真器的寿命期间更新的飞行仿真器子系统的典型的示例是可视化图像生成器(VIG)子系统。VIG子系统有时候以8到10年的间隔在仿真器的寿命期间更新两或三次。
图1是在经由两个上述方法中的第一方法的更新以包括新子系统、即在该示例中的新VIG子系统之后的飞行仿真器的计算机装置的示意图。该计算机装置10包括主机100、IOS 102和新VIG子系统104。IOS 102经由现有接口106连接到主机。新VIG子系统104经由新接口108连接到主机系统。主机包括现有软件110和新接口软件112。新接口软件112在更新期间被引进,并且被配置为允许新VIG子系统104与原始软件110之间的交互。新接口软件112定制(bespoke)用于每个不同的仿真器,并且依赖于现有仿真器系统和新VIG子系统104的配置。原始主机软件110被严重修改以便允许其与新接口软件112通信并且继而与新VIG子系统104通信。还更新IOS 102以包括根据新VIG子系统104的附加控制。因为来自不同原始设备制造商的仿真器的配置可以有所不同,通常无法从在一个仿真器的更新中由工程师花费的时间和努力所得到的经验用于在另一个不同仿真器的更新。这是特别低效的。
在交通工具仿真器的更新中涉及的过程可以包括以下步骤:
1)解除现有VIG接口软件;
2)向主机100增加用于与新VIG子系统的物理接口(未示出)的新硬件和驱动器软件;
3)将新VIG子系统104物理地连接到主机100;
4)将新VIG接口软件112加载到主机100上;
5)执行VIG接口软件112的广泛修改以便将其与现有仿真软件110集成;
6)执行对现有仿真软件110的修改以支持其与新VIG软件112的集成;
7)执行IOS 102的修改以用于新VIG子系统104的新特征的集成;并且
8)从主机100上的源文件生成包括预更新软件与新更新软件的组合的新软件版本。
由于不熟悉仿真器的属性,上述每个步骤花费时间并且使工程师暴露于风险中。其中一个最突出的风险是由于确定建立新软件版本所需要的正确文件而造成的。在上述升级中执行向主机100传递的软件具备非常有限的或者不具备维护能力。
本发明的一个目的在于,提供一种可用于更新各种不同类型的仿真器而不需要该仿真器的现有软件和/或硬件的显著修改的系统。本发明的另一个目的在于提供一种用于降低或消除主机软件的修改所涉及的技术风险的更新机制,以仿真器更新过程进行标准化,以提供实质上可重复的过程,从而降低仿真器更新所所涉及的无效率的数量。
发明内容
根据第一方面,提供了一种用于将新子系统与现有计算架构进行集成的装置,该装置包括:第一物理接口,用于从该现有计算装置接收数据;第二物理接口,用于向该新子系统输出数据;处理装置以及存储器,该存储器具有存储在其上的第一软件模块、多个其他软件模块和第一存储配置,其中,当被该处理装置执行时,该第一软件模块被配置为读取该第一存储配置,并且使得该处理装置加载该多个其他软件模块中的其他软件模块的组合,该多个其他软件模块中的其他软件模块的该组合与该多个其他软件模块中的其他软件模块的该组合的第一子集是由该第一存储配置定义的,当被该处理装置执行时,该组合的该第一子集可进行操作以将在该第一物理接口处接收的数据变换成与该新子系统兼容的形式,并且经由该第二物理接口向该新子系统输出变换数据。
该处理装置可以包括一个或多个处理器和/或微处理器。该处理装置还或备选地可以包括一个或多个专用集成电路。
该存储装置可以包括一个或多个存储器模块,该一个或多个存储器模块是例如RAM、ROM、闪存、EEPROM等等的任意组合。
该装置可以被配置为使得该第一软件模块读取该第一存储配置,并且使得该处理装置在该装置的启动时加载该多个其他软件模块中的其他软件模块的组合。
该新子系统的集成可以向现有计算架构提供附加特征。
当被该处理装置执行时,其他软件模块的该组合的该第一子集中的第一软件模块可以被配置为响应于在该第一物理接口处的数据的到达,向该第一软件模块发送用于指示在该第一物理接口处的该数据的该到达的信号,该第一软件模块可以响应于该用于指示该第一物理接口处的该数据的该到达的信号的接收,相继地向其他软件模块的该组合的该第一子集中的每个其他的其他软件模块发送第一命令信号,并且其他软件模块的该组合的该第一子集中的每个其他的其他软件模块可以响应于该命令信号的接收,在从其他软件模块的该组合的该第一子集中的先前的其他软件模块传递的数据上进行操作。
备选地,可以将其他软件模块的该组合的该第一子集中的该其他的其他软件模块配置成并行或混合串行/并行的配置。
该第二物理接口可以被配置为从该新子系统接收数据,其中,当被该处理装置执行时,该第一软件模块进行操作以使得该处理装置执行该多个其他软件模块中的其他软件模块的该组合的第二子集,该多个其他软件模块中的其他软件模块的该组合的该第二子集由该第一存储配置定义,并且当被该处理装置执行时可进行操作以将在该第二物理接口处接收的数据变换成与该现有计算装置兼容的形式,并且经由该第一物理接口向该现有计算装置提供变换数据。在这里,当被该处理装置执行时,其他软件模块的该组合的该第二子集中的第一软件模块可以被配置为响应于在该第二物理接口处的数据的到达,向该第一软件模块发送用于指示在该第二物理接口处的该数据的该到达的信号,该第一软件模块可以响应于该用于指示该在第二物理接口处的该数据的该到达的信号的接收,相继地向其他软件模块的该组合的该第二子集中的每个其他的其他软件模块发送第二命令信号,并且其他软件模块的该组合的该第二子集中的每个其他的其他软件模块可以响应于该命令信号的接收,在从其他软件模块的该组合的该第二子集中的先前的其他软件模块输出的数据上进行操作。
该第二子集可以完全包括该第一子集,即该第一子集可以包括该多个其他软件模块中的其他软件模块的该组合的全部。备选地,该第一子集可以包括不处于该第二子集中的模块,并且反之亦然。
该其他软件模块可以被配置为以多个预定义数据结构中的一个预定义数据结构输出数据。该预定义数据结构可以被存储在共享存储器中。
该第一存储配置定义该其他软件模块中的哪些其他软件模块被配置为响应于在该第一物理接口处的数据的到达,而向该第一软件模块发送用于指示该第一物理接口处的该数据的该到达的信号。
该第一软件模块可以被配置为使得已加载其他软件模块中的一个或多个读取相应的其他存储配置,该相应的其他存储配置的身份是由该第一存储配置定义的。该第一软件模块可以被配置为使得每个该已加载其他软件模块读取相应的其他存储配置,该相应的其他存储配置的身份是由该第一存储配置定义的。在任意一个情况中,每个该其他存储配置可以定义该已加载其他软件模块中的相应的一个已加载其他软件模块的设置。每个该其他存储配置可以包括初始化文件。
该第一存储配置可以包括初始化文件。
根据第二方面,一种用于将新子系统与现有计算架构集成的方法,该方法包括:读取第一存储配置;加载该多个软件模块中的软件模块的组合,多个软件模块中的软件模块的该组合与该多个软件模块中的软件模块的该组合的第一子集是由该第一存储配置定义的,并且在第一物理接口处从该现有计算机架构接收数据,该多个软件模块中的软件模块的该组合的该第一子集将在该第一物理接口处接收的该数据变换成与该新子系统兼容的形式,并且经由该装置的第二物理接口向该新子系统提供变换数据。
根据第三方面,提供了一种用于计算装置的计算机可读指令,其可选地存储在非瞬态计算机介质上、用于将新子系统与现有计算架构集成,该计算机可读指令包括:第一软件模块和多个其他软件模块,当被该计算装置执行时,该第一软件模块使得该计算装置读取该第一存储配置,并且加载该多个软件模块中的软件模块的组合,该多个软件模块中的软件模块的该组合与该多个软件模块中的软件模块的该组合的第一子集是由该第一存储配置定义的;当被该计算装置执行时,该多个软件模块中的软件模块的该组合的该第一子集使得该计算装置将在第一物理接口处从该现有计算架构接收的数据变换成与该新子系统兼容的形式,并且经由第二物理接口向该新子系统提供变换数据。
附图说明
图1是根据现有技术利用新可视化接口生成器子系统更新的飞行仿真器系统的计算装置的简化示意图;
图2是具有新子系统并结合根据本发明的更新装置的飞行仿真器系统的简化示意图;
图3是根据本发明的更新装置的简化示意图;
图4是用于示出图3的更新装置的初始化的简化示意图;
图5是用于示出在第一方向中经过图3的装置的数据的示例性流程的简化示意图;
图6是用于示出在第二方向中经过图3的装置的数据的示例性流程的简化示意图;
图7A到7C分别是参考图4、5和6的操作的备选的说明。
具体实施方式
图2是已经利用新子系统更新并且结合根据本发明的方面的更新装置206的交通工具仿真器系统的计算装置20的简化示意图。在该示例中,交通工具仿真器系统是飞行仿真器并且新子系统是新VIG子系统204。将要认识到,本发明还适用于其他类型的交通工具仿真器系统以及不同类型的新子系统,以便与仿真器系统的集成。将要认识到,该更新装置可以进行操作以将多个子系统与现有仿真器系统集成。在这些示例中的集成包括向现有系统增加新特征和新功能。
计算装置20包括主机200、IOS 202和新VIG子系统204。计算装置20还包括根据本发明的更新装置206和专用控制面板208。该专用控制面板是包括运行在计算硬件上的软件的可选用户接口面板。新VIG子系统204经由第一接口210连接到更新装置206。更新装置206经由第二接口216与主机200的VIG接口模块214相连接。这样,新VIG子系统204经由更新装置206与主机相连接。换言之,更新装置充当新VIG子系统204与主机200之间的中介。该专用控制面板208经由第三接口218连接到更新装置206。该更新装置还可以包括维护接口(见图3),其中计算装置(例如属于维护工程师的)如膝上计算机可以通过该维护接口被连接到更新装置,以便允许执行该更新装置的维护。在该更新装置被用于将多个新子系统与主机200集成的实施方式中,该更新装置包括附加接口(未示出),其中一个附加接口用于一个新子系统。
系统20还可以包括被连接到主机的IOS(未示出)。
新VIG子系统204与主机200之间存在的更新装置206,这个意味着仅向主机200的VIG接口模块214提供相对小的软件更新。即,部分地因为更新装置206提供用于必要的新软件的平台,否则该新软件将如同参考图1所述的传统更新中将必须被集成到主机200中。小的软件更新实质上比参考图1所述的更新方法中所要求的复杂度更低。稍后将更详细地描述。
专用控制面板208提供用于教练员控制新子系统204的方面的装置。因此,IOS 202不需要更新来操作新子系统204。换言之,不修改IOS 204。因此将理解,使用本发明的更新装置206的飞行仿真器的计算装置20的更新不需要对现有硬件或软件进行实质修改。此外,如下文所述的,该更新装置是至少部分地通用的,因为该更新装置的各种方面可以与多个不同类型的仿真器和子系统一起使用。
物理上,更新装置206可以是“黑盒”嵌入式方案。可选地,更新装置的前面板可以包括用于提供高级诊断和状态信息的LCD接口、用于外部接口的端口例如以太网端口以及用于维护接口(见下文)的端口。更新装置内部可以包括处理器和/或微处理器和存储器介质如ROM和/或RAM的组合。
图3是根据本发明的更新装置206的示意图。更新装置206包括主机接口组件302,主机接口组件302包括第一子组件302-1和第二子组件302-2。第一子组件302-1是物理主机接口组件,其中在该接口组件处从主机200接收数据。第二子组件302-2是数据格式化和操作组件。该数据格式化和操作组件302-2可以进行操作以将在物理主机接口302-1组件处接收的数据进行格式化,以成为用于仿真组件的预定义数据格式。更新装置206还包括一个或多个仿真组件304,仿真组件304提供用于向仿真器增加的子系统的仿真控制。更新装置206还包括目标接口组件306,其在更新装置206与新VIG子系统204之间提供通信接口。更新装置206可选地还包括控制面板组件308,其向新VIG子系统204提供教练员仿真接口。可以依赖于仿真器和新子系统来配置这些组件中的每个组件。更新装置206的组件302、304、306、308、310、312中的每一个是从可动态加载的库中选择的、并且可由更新装置206的一个或多个处理器执行的软件组件。
更新装置206还包括执行程序组件310,其是用于控制可配置组件的加载和更新装置206中的执行的执行框架。更新装置206还包括维护接口组件312,其提供网页维护接口并且支持对更新装置206的配置的修改和保持在存储器314中的事实评价的修改。无关于仿真器和新子系统204,执行程序组件310和维护接口组件312对于更新装置206的全部示例共用。
可以广泛地配置更新装置206的可配置组件302、304、306、308(即主机接口组件302、仿真组件304、目标接口组件306和控制面板组件308)。针对仿真器和新子系统204的给定配置,可配置组件302、304、306、308经由可能被存储在存储器314中的存储配置。在该示例中,该存储配置是初始化文件。然而,将要理解,该存储配置可替换地包括注册表项、执照设置、数据库条目或者用于以及后续读取配置的任意其他手段。可配置组件302、304、306、308在初始化时被执行程序组件310动态加载。基于初始化文件动态地加载可配置组件302、304、306、308,其中由执行程序组件310读取该初始化文件,并且该初始化文件识别将要加载哪些可配置组件。在运行时由执行程序组件310管理可配置组件302、304、306、308。这支持更新装置206包括用于提供可以针对任意类型或年龄的仿真器配置的新功能范围的组件套。更新装置206能够与多个数据源通信并且可以提供可配置组件302、304、306、308的大量组合。
执行程序组件310可进行操作以至少执行以下功能:
1.读取初始化文件,初始化文件定义用于将新子系统204与给定主机200的组件302、304、306、308进行集成;
2.基于初始化文件从动态可加载的库中动态加载可配置组件302、304、306、308;
3.使用多线程软件触发机制,配置并且执行该可配置组件的调度;
4.监视更新装置206的组件的状态并且向维护接口组件312返回任意检测错误的报告以;
5.如果需要则提供从错误状态的动态恢复。
至少部分地由动态可加载并且可配置的组件302、304、306、308提供更新装置206与任意不同类型的仿真器和子系统一起操作的能力。将这些组件作为单独共享的对象存储在库中。对于可以被存储在该库中的可配置组件302、304、306、308的数量没有具体的限制。
依赖于新子系统204的要求,可配置组件302、304、306、308中的每一个可以提供两个核心功能路径。典型地,第一路径用于操作源于现有主机200数据以便准备被另一个可配置组件使用或者用到新子系统204的传输。第二路径典型地用于操作源于新VIG子系统204的数据以便被另一个可配置组件使用或者回到主机200的传输。
可配置组件302、304、306、308中的每一个是基于标准模板,该标准模板包括用于与执行程序组件310接口所需要的4个关键函数的占位符。这些函数是:
1.init(…),其在初始化时被调用以提供可配置组件的任意预约初始化;
2.run1(…),其被可执行程序组件调用以执行两个功能路径中的一个,典型地第一路径(即在从主机200到新VIG子系统204的方向中的路径);
3.run2(…),其被可执行程序组件调用以执行两个功能路径中的一个,典型地第二路径(即在从新VIG子系统204到主机200的方向中的路径);
4.term(…),其在来自用户的退出命令之后或者严重错误的检测之后被可执行程序组件调用以关于可配置组件执行任意合适的错误修正操作。
将可配置组件302、304、306、308之间传递数据分组封装到多个不同数据结构中的一个数据结构中。该数据结构提供该数据所被传递到的组件所需要的信息的具体分组。每个可配置组件具有可用数据结构的子集。该数据结构存在于存储器(如在全部可配置组件302、304、306、308之间共享的存储器314)中。可以由可配置组件302、304、306、308根据他们的需要创建数据库。备选地,在初始化时可以由执行程序组件310动态地加载每个数据结构。
用于传递数据的预定义数据结构的使用允许工程师通过需要预约软件的生成,规定主机接口缓冲器302-3的内容。在数据格式和操作组件302-1中的初始化文件中定义适用于给定主机接口的数据结构。
可以向存储在更新装置206上的库增加附加可配置组件而不影响以前发布的可配置组件。这可以发生在生产或更新新子系统时并且需要与现有仿真器的集成。
虽然在图4中将存储器314示出为单个单元,但是认识到存储器314可以包括不同的存储器模块。可以依赖于存储在其上的数据的类型来配置存储器模块。可配置组件的库的可以例如被存储在只读存储器上,这是因为仅需要更新装置读取而不需写入这些组件。但是用于存储数据结构的共享存储器可以包括一个或多读写存储器模块。
图4示出了根据本发明的一个示例性实施方式的更新装置206的初始化。
在更新装置206的启动时,执行程序组件310读取它的执行初始化文件400,并且将来自那里的合适的信息保持在存储器314中。该初始化文件识别将要被加载的可配置组件302、304、306、308。执行程序组件310因此使得加载由初始化文件识别的可配置组件302、304、306、308。
在图4的示例中,执行程序组件310加载主机接口组件302、仿真组件304、目标接口组件306、和控制面板组件308。执行程序组件310对于每个可配置组件调用初始化函数init(…),并且使得向每个可配置组件302、304、306、308传递(从该执行程序组件的执行初始化文件400读取的)合适的初始化文件402、404、406、408、410。这样,更新装置206的可配置组件302、304、306、308中的每一个被完全初始化,并且准备就绪以响应于来自执行程序组件310的进一步的指令而运行。
被传递到第一子组件302-1的初始化文件400例如可以提供IP地址和端口信息。该初始化文件还可以向主机接口组件指示输入数据应该被写入到的位置。被传递到数据格式化和操作组件302-2的初始化文件402例如可以向数据格式化和操作组件302-2指示数据到达的格式或结构。被传递到目标接口组件306的初始化文件408可以指示数据结构的身份和与目标接口组件306相关联的缓冲器的位置,其中应该将在目标接口组件处接收的数据写成该数据结构并且存储在该位置。因此将要理解,被传递到可配置组件302、304、306、308的初始化文件402、404、406、408、410提供与具体可配置组件相关的信息或设置。与可配置组件302、304、306、308的初始化文件的使用提供可配置性和弹性,并且因此允许该装置被用于将新子系统集成到多个不同类型的仿真器系统中。并非全部可配置组件都需要初始化文件,并且在该情况中执行初始化文件400不定义用于具体可配置组件的初始化文件。
下文是执行初始化文件400(在下文中被称为NUQ.int)的示例。
NUQ.ini
[TRIGGERS]
Trig1=HOST_IF,run1,DataManipulator,SC1,SC3,SC2,TARG_IF
Trig2=TARG_IF,run2,SC1,DataManipulator,HOST_IF
[HOST_IF]
load=./RAW.so
iniFile=HostIf.ini
[DataManipulator]
load=DM.so
iniFile=DM.ini
[SC1]
load=./cSimCompOne.so
iniFile=SC1.ini
[SC3]
load=./cSimCompThree.so
iniFile=SC3.ini
[SC2]
load=./cSimCompTwo.so
iniFile=SC2.ini
[TARG_IF]
load=./Targ_IF.so
iniFile=TARGIF.ini
HOST_IF涉及主机接口组件302的第一子组件302-1(即物理主机接口组件)。DataManipulator(数据操作器)涉及主机接口组件302的第二子组件302-2。SC1涉及第一仿真组件304-1,SC2涉及第二仿真组件304-2,并且SC3涉及第三仿真组件304-3。TARG_IF涉及目标接口组件306。就这点而言,对于将要被加载并且配置的可配置组件302、304、306、308的定义执行初始化文件400的节(section)。
涉及每个组件的节定义对象如Linux共享对象,其将要被加载并且还定义将要被组件在下载之后读取的初始化文件。例如NUQ.int的与物理主机接口组件302-1相关的节(参见[HOST_IF]节)定义将要被加载的对象被称为“RAW.so”,并且在加载之后该组件应该读取命名为“HostIf.ini”的初始化文件。
执行初始化文件400“NUQ.int”还定义当从主机向新子系统204传递数据时可配置组件302、304、306、308应该如何操作。这被定义在“NUQ.int”的“TRIGGERS”节中。
“TRIGGERS”节中的每个触发器定义3个参数。在每个触发器(即“Tirg1”和“Trig2”)中的第一参数定义用于向执行程序组件310通知数据何时到达该组件的接口的可配置组件。例如在“Tirg1”中第一参数是“HOST_IF”,其识别物理主机接口组件302-1。因此,“Tirg1”定义当数据到达物理主机接口组件302-1时物理主机接口组件302-1通知执行程序组件310。
第二参数定义在通知被执行程序组件310接受之后在一个或多个可配置组件处执行的函数组。在“Tirg1”中,该函数组是“run1(…)”。
第三、第四和后续参数应该执行如第二参数所定义的函数组中的哪个可配置组件以及它们的执行次序。因此,响应于从数据已到达的物理主机接口组件302-1接收到通知,“Tirg1”定义该执行程序组件应该使得在数据格式化和操作组件302-2、第一仿真组件304-1、第三仿真组件304-3、第二仿真组件304-2、目标接口组件306以及随后最后在控制面板组件308中的每一个中,顺序地执行函数组“run1(…)”。
目标接口组件306(Trig1中的TARG_IF)是这样一种组件,其中经由该组件从更新装置206输出数据。如从Trig1可以看出的,它不是执行函数“run1(…)”的最后一个组件。因此,很清楚,可以在从装置206输出数据之后运行附加可配置组件。就这点而言,在从装置206输出关键数据之后可以执行非关键的软件。
虽然在示例性初始化文件中未示出,但是该文件还可以定义背景风险组件。可以由执行程序组件310控制并且触发该组件。可以使用触发以代替数据的到达来触发该组件,其中该触发基于内部低优先权的定时器。因此当定时器到期时,向执行程序组件发送触发,控制组件向背景组件发送控制信号,该控制信号使得背景组件被执行。该背景组件可以执行基本家务和/或无需在从数据分组经过外部接口组件的到达开始的严格确定的次序中运行的仿真功能。该背景任务和无序软件功能的示例包括错误和性能检查以及软件命令如开始或停止命令的报告。
如前所述,在一些实施方式中,该存储配置例如可以是数据库条目以代替初始化文件。这些实施方式实质上以与上述实施方式相同的方式进行操作。但是,用于执行程序组件310和其他可配置组件302、304、306、308的配置被存储在关系数据库中。与独立的组件相关的每个存储配置可以被存储在独立的数据库条目中。该数据库条目可以包括与上文参考初始化文件所述的信息相同的信息。响应于来自执行程序组件310和/或其他可配置组件302、304、306、308的查询,由运行在更新装置206上的服务器应用访问并且返回该配置。在这些实施方式中,在启动时,执行程序组件310向服务器应用发出查询,请求返回它的相关存储配置400。在该存储配置的接收之后,执行程序组件310使用该所存储配置中的信息来加载需要的可配置组件。在加载可配置组件之后,执行程序组件310调用这样一种函数,该函数使得可配置组件302、304、306、308中的每一个在合适的时候向服务器应该发出用于请求它们的相关存储配置402、404、406、408、410的返回的查询。响应于从组件接收到查询,服务器应用从数据库溯源在该查询中识别的存储配置,并且将其返回请求组件。在存储配置的来自服务器的接收之后,根据其中存储的信息配置该组件。
虽然在本文中没有详细描述,但是本领域技术人员将理解,在使用不同类型的存储配置如注册表项或执照设置的实施方式中如何获取存储配置。
图5示出了数据经过更新装置206从主机300到新VIG子系统204的传递。在图5中未示出更新装置206的在该示例性数据传递中未涉及的那些组件。在图5中所述的示例中,更新装置206包括三个仿真组件340-1、340-2、340-3。由执行程序组件310控制仿真组件340-1、340-2、340-3中的每一个。
物理主机接口组件302-1被配置为与主机200通信。在物理主机接口组件302-1处从主机200接收到的数据被置入缓冲器302-3中。在从主机200接收数据之后,物理主机接口组件302-1向执行程序组件310发送同步脉冲“Trig1”。
在主机200处可以将从主机200到达的数据预封装到预定义数据结构中。物理主机接口组件302-1从预定义数据结构提取数据,并且将其存储在缓冲器302-3中准备就绪用于数据格式化和操作组件302-2。
如上所述,同步脉冲“Trig1”的接收使得在数据格式化和操作组件302-2、第一仿真组件304-1、第三仿真组件304-3、第二仿真组件304-2和目标接口组件306的每一个中执行程序组件310使得顺序地执行函数组“run1(…)”。“Trig1”还可以使得在控制面板组件308中执行函数“run1(…)”。然而,由于这与经过更新装置的数据流无关,所以在图5中未示出。
现在将描述在“run1(…)”函数组的执行之后可配置组件302、304、306的示例性操作。
“run1(…)”函数在数据格式化和操作组件302-2中的执行使得数据格式化和操作组件302-2执行缓冲器中的数据,以根据需要来格式化/操作数据,并且将已格式化/操作的数据置入第一数据结构DS-A中。
在该情况中,到达物理主机接口组件302-1的数据未被预封装到预定义数据结构中,例如因为不能够修改主机200的软件。在该情况中,数据格式化和操作组件302-2根据需要来操作数据,并且输出并将其存储在第一数据结构DS-A中。在一些示例中,如果需要,则数据格式化和操作组件302-2可以包括两个独立的组件,一个组件用于格式化数据,并且另一个组件用于操作数据。
第一仿真组件304-1被配置为执行主机接口组件302与第二仿真组件304-2和第三仿真组件304-3之间的内部接口功能。换言之,第一仿真组件304-1进行操作,以将从主机接口组件302接收的数据转换成可以被第二仿真组件304-2和第三仿真组件304-3利用的格式。在该示例中,在“run1(…)”函数的接收之后,第一仿真组件304-1分离和/或处理存储在第一数据结构DS-A中的数据,并且将其置入到第二数据结构DS-B和第三数据结构DS-C中。
第三仿真组件304-3是次级仿真组件,其提供附加功能和数据操作,以增强在该示例中作为第二仿真组件304-2的主仿真组件的功能。在“run1(…)”函数的接收之后,第三仿真组件304-3处理存储在第三数据结构DS-C中的数据,并且将其置入第四数据结构DS-D中。
第二仿真组件304-2是主仿真组件,其执行正在向现有计算机环境增加的VIG子系统204所需要的核心功能。在“run1(…)”函数的接收之后,第二仿真组件304-2从第二数据结构DS-B和第四数据结构DS-D读取数据。第二仿真组件被配置为处理该数据,并且将其置入第五数据结构DS-E中。
目标接口组件306被配置为与新VIG子系统204通信,新VIG子系统204将要与现有主机100通信。将要向新VIG子系统204输出的数据被存储在缓冲器(未示出)中。
主机200与更新装置206之间的接口可以经由以太网实现。但是,该接口可以备选地经由但不限于任意以下协议实现:Raw、UDP、TCP/IP。依赖于所需要的协议来选择合适的物理主机组件302-1和合适的数据格式化和操作组件302-2。
图6示出了数据经过更新装置206从新VIG子系统204到主机200的传递的一个示例。在图6中未示出更新装置206的在该示例性数据传递中未涉及的那些组件。
响应于从新VIG子系统204接收到数据,目标接口组件306向缓冲器(未示出)写入该数据,并且向执行程序组件310发送同步脉冲“Trig2”。目标接口组件306还可进行操作以取出从新VIG子系统204接收到的数据,并且将其存储在第六数据结构DS-F中。
响应于从目标接口组件接收到同步脉冲“Trig2”,执行程序组件310在第一仿真组件304-1、数据格式化和操作组件302-2和物理主机接口组件302-1中顺序地执行“run2(…)”函数。
在“run2(…)”函数的执行之后,第一仿真组件304-1从第五数据结构DS-F读取数据,处理该数据并且将其存储在第六数据结构DS-G中。
数据格式化和操作组件302-2然后从第六数据结构DS-G读取数据,将该数据格式化成为主机200可读的格式,并且将其存储在缓冲器(未示出)中。物理主机接口组件302-1可进行操作,以在“run2(…)”函数的执行之后将该数据从该缓冲器(未示出)传递到主机200。
可以看出,从新VIG子系统204到主机的返回路径不需要第二仿真组件304-2和第三仿真组件304-3。就这点而言,在这些组件中不包括“run2(…)”函数。
图7A到7C分别是参考图4到6所述的操作的备选的说明。
图7A示出了根据本发明的一个示例性实施方式的更新装置206的初始化。在图7A的步骤S1中,执行程序组件310读取执行初始化文件400例如NUQ.ini,并且使得该信息被写入存储器314。
在步骤S2中,基于来自执行初始化文件400的信息,执行程序组件310使得物理主机接口组件302-1被加载。在步骤S3中,基于从执行程序组件310接收到的命令信号,物理主机接口组件302-1从存储器314读取如执行初始化文件400(在以上示例性“HostIf.ini”)中所定义的它的初始化文件402。
在步骤S4中,基于来自执行初始化文件400的信息,执行程序组件310使得数据格式化和操作组件302-2被加载。在步骤S5中,基于从执行程序组件310接收的命令信号,格式化和操作组件302-2从存储器314读取如执行初始化文件400(在以上示例性“DM.ini”)中所定义的它的初始化文件404。
在步骤S6中,基于来自执行初始化文件400的信息,执行程序组件310使得第一仿真组件304-1被加载。在步骤S7中,基于从执行程序组件310接收的命令信号,第一仿真组件304-1从存储器314读取如执行初始化文件400(在以上示例性“SC1.ini”)中所定义的它的初始化文件406。
在步骤S8中,基于来自执行初始化文件400的信息,执行程序组件310使得第三仿真组件304-3被加载。在步骤S9中,基于从执行程序组件310接收的命令信号,第三仿真组件304-3从存储器314读取如执行初始化文件400(在以上示例性“SC3.ini”)中所定义的它的初始化文件410。
在步骤S10中,基于来自执行初始化文件400的信息,执行程序组件310使得第二仿真组件304-2被加载。在步骤S11中,基于从执行程序组件310接收的命令信号,第二仿真组件304-2从存储器314读取如执行初始化文件400(在以上示例性“SC2.ini”)中所定义的它的初始化文件406-2。
在步骤S12中,基于来自执行初始化文件400的信息,执行程序组件310使得目标接口组件306被加载。在步骤S13中,基于从执行程序组件310接收的命令信号,目标接口组件306从存储器314读取如执行初始化文件400(在以上示例性“TARGIF.ini”)中所定义的它的初始化文件408。
虽然在图7A上未示出,但是执行程序组件310可以基于执行初始化文件400,通过从存储器314读取其他可配置组件如控制面板组件308的初始化文件410,使得它们被加载并且被配置。
认识到,可以同时地或者以任意次序执行步骤S2、S4、S6、S8、S10和S12。在已经加载组件之后发散由加载组件进行的初始化文件的读取。
图7B示出了更新装置使得来自主机200的数据被传递到新VIG子系统204的操作。在步骤S14中,在物理主机接口组件302-1处从主机200接收数据。
在步骤S15中,由物理主机接口组件302-1将从主机200接收的数据置入可以是存储器314的一部分的缓冲器中。
在步骤S16中,物理主机接口组件302-1向执行程序组件310发送同步脉冲“Trig1”,以通知它已经从主机200接收的数据。
在初始化文件400的“TRIGGERS”节中,并且在该示例中“NUQ.ini”的“Trig1”中定义了执行程序组件310用于从物理主机接口接收同步脉冲的方式。结果,在步骤S17中,响应于接收到同步脉冲,执行程序组件310向数据格式化和操作组件302-2发送用于使得数据格式化和操作组件302-2执行“run1(…)”函数的命令信号。
响应于“run1(…)”函数的执行,在步骤S18中,数据格式化和操作组件302-2从缓冲器读取数据,将该数据格式化并且将该数据置入被存储在共享存储器例如存储器314中的第一数据结构DS-A中。
接下来,在步骤S19中,执行程序组件310向第一仿真组件304-1发送用于使得第一仿真组件304-1执行“run1(…)”函数的命令信号。
响应于“run1(…)”函数的执行,第一仿真组件304-1从共享存储器314中的第一数据结构DS-A读取数据,在该数据上进行操作并且将其置入到被存储在共享存储器314中的第二数据结构DS-B和第三数据结构DS-C中。
在步骤S21中,执行程序组件310向第三仿真组件304-3发送用于使得第三仿真组件304-3执行“run1(…)”函数的命令信号。响应于该命令信号,在步骤S22中,该第三仿真组件304-3从第三数据结构DS-C提取数据并且将结果置入第四数据结构DS-D中。
接下来在步骤S23中,执行程序组件310向第二仿真组件304-2发送用于使得第二仿真组件304-2执行“run1(…)”函数的命令信号。响应于该命令信号,在步骤S24中,该第二仿真组件304-2从第二数据结构DS-B和第四数据结构DS-D提取数据,并且将结果置入第五数据结构DS-E中。
在步骤S25中,执行程序组件310向目标接口组件306发送用于使得目标接口组件306执行“run1(…)”函数的命令信号。响应于此,在步骤S26中,目标接口组件306从第五数据结构DS-FE读取数据,并且在步骤S27中将其发送到新VIG子系统204。
图7C示出了更新装置的使得数据从新VIG子系统204被传递到主机200的操作。
在步骤S28中,在目标接口组件306处从新VIG子系统204接收数据。在步骤S29中,由目标接口组件306将从新VIG子系统204接收的数据置入可以是存储器314的一部分的缓冲器中。
在步骤S30中,目标接口组件306向执行程序组件310发送同步脉冲“Trig2”,以通知它已经从新VIG子系统204接收到数据。
在初始化文件400的“TRIGGERS”节中并且在该示例中“NUQ.ini”的“Trig2”中定义了执行程序组件310用于从目标接口组件接收同步脉冲的方式。结果,在步骤S31中,响应于接收到同步脉冲,执行程序组件310向第一仿真组件304-1发送用于第一仿真组件304-1执行“run2(…)”函数的命令信号。
响应于“run2(…)”函数的执行,在步骤S32中,第一仿真组件304-1从该缓冲器读取数据,在该数据上进行操作并且将其置入到被存储在共享存储器314中的第六数据结构DS-F中。
接下来,在步骤S33中,执行程序组件310向数据格式化和操作组件302-2发送用于使得数据格式化和操作组件302-2执行“run2(…)”函数的命令信号。
响应于“run2(…)”函数的执行,在步骤S34中,数据格式化和操作组件302-2从第六数据结构DS-F提取数据、处理器和/或格式化该数据,并且将该数据置入到被存储在共享存储器例如存储器314中的第七数据结构DS-G中。
接下来,在步骤S35中,执行程序组件310向物理主机接口组件302-1发送用于使得物理主机接口组件302-1执行“run2(…)”函数的命令信号。响应于此,在步骤S36中,物理主机接口组件302-1提供从第七数据结构DS-G中读取数据并且在步骤S37中将其发送到新主机200。
在上述实施方式中,在新子系统204与更新装置206之间存在一个物理接口,并且在更新装置206与主机200之间存在一个物理接口。然而将要认识到,在新子系统204与更新装置206之间和/或在更新装置206与主机200之间可以存在多个物理接口。经由一个物理接口到达更新装置的数据,其可以由与经由第二物理接口到达的数据不同的可配置组件的集合来操作。这样,通过更新装置的路径可以多于一个,其中数据经由该路径来向仿真组件传输或者从该仿真组件传输。类似地,数据可以经由单一物理接口到达更新装置,但是被分割,因而其经由可配置组件的两个或更多个不同的集合相继地经过更新装置206。
现在将提供具体实现的细节。这些细节补充上文的描述,并且可用于展示在C++编程语言中可以如何实现本发明。下文是当将新可视化子系统与现有主机200集成时用于更新装置206的一个具体示例性实施方式的仿真组件的描述
NUQLEUS
TM
软件组件
由单独共享的对象库中所包括的软件组件的集合提供该系统和NUQLEUSTM系统的具体功能。对于可以存在与给定系统上的NUQLEUSTM的数量没有实际限制。
依赖于由软件所需要的接口,每个功能可以提供两个核心功能路径。典型地,路径1用于操作源于现有计算机系统的数据以准备就绪用于另一个NUQLEUSTM组件或到新子系统的传输。路径2典型地用于返回路径,即源自新子系统的数据的操作,其准备就绪用于其他软件组件或者回到原始计算机系统的传输。
每个组件基于标准模板,该模板包括用于与NUQLEUSTM执行程序接口所需要的4个关键函数的占位符。这些函数是:
1.init(…),其在NUQLEUSTM初始化时被调用,以提供可配置组件的任意定制初始化;
2.run1(…),其被NUQLEUSTM执行程序调用,以执行两个功能路径中的一个(典型地,从现有系统到新子系统);
3.run2(…),其被NUQLEUSTM执行程序调用,以执行两个功能路径中的一个(典型地从新子系统到原始系统);
4.term(…),其在命令退出或检测到严重错误时被NUQLEUSTM执行程序调用,以执行用于NUQLEUSTM组件的必要的清除操作。
NuqCode
TM
将由NUQLEUSTM组件需要的数据封装到NuqCode中。NuqCodesTM向具体分组提供一个或多个分组需要的信息。
使用NuqCode实现在单独NUQLEUSTM组件之间的通信。每个NUQLEUSTM组件具有一个可用NuqCodeTM子集被定为输入,并且另一个可用NuqCodeTM子集被定为输出。
NuqCodeTM存在于共享存储器中并且根据组件的需要被创建,因为他们被执行程序动态地加载。该方法的益处包括如下能力:动态地配置主机接口缓冲器而无需源文件的再编译,并且支持在运行时的不同NUQLEUSTM组件的互换。
图8示出了NUQLEUS组件之间的数据传递。图8示出了经由执行程序接口控制的多个互斥的数据接口。
NUQLEUS
TM
外部接口组件1
该组件被配置为与现有外部计算机系统通信。动态地拆解所接收数据并且将其置入NuqCodeTMA中。
NUQLEUS
TM
外部接口组件1
该组件被配置为与将要与现有计算机接口的外部计算机系统通信。从保持在NuqCodeTME中的数据中动态地拆解将要从NUQLEUSTM输出的数据。
NUQLEUS
TM
组件1
该组件执行外部接口组件1与NUQLEUSTM仿真组件之间的内部接口功能。根据函数处理并且分离保持在NuqCodeTM A的数据。然后向NuqCodeTMB和NuqCodeTMC输出该数据。
NUQLEUS
TM
组件2
该组件是主仿真组件,其执行正在向现有计算机环境增加的系统所需要的核心功能。对该组件的输入来自NuqCodeTMB和NuqCodeTMD,来自该组件的全部输出被包括在NuqCodeTME中。
NUQLEUS
TM
组件3
该组件是次仿真组件,其提供附加功能和数据操作以增强主NUQLEUSTM仿真组件的功能。对该组件的输入来自NuqCodeTC,来自该组件的全部输出被包括在NuqCodeTMD中。
在运行时可经过配置文件的集合动态地配置每个NUQLEUSTM组件。
类似的通信路径适用于从新子系统返回的数据。NUQLEUSTM组件的库可以随时间增长而不影响以前发布的可执行软件。由于NUQLEUSTM组件之间所需要的接口的数量增加,则可用的NuqCodeTM数量也增加。这提供与该系统的全部版本的后向兼容。
NUQLEUS
TM
示例性配置
由NUQLEUSTM执行程序使用初始化文件的系统在运行时实现NUQLEUSTM配置。
示出了NUQ.ini的以下示例,以描述如何使用该文件。该字段的描述遵循该示例。
NUQ.ini
[TRIGGERS]
Trig1=HOST_IF,run1,DataManipulator,SC1,SC2,VIS_IF,SC_IO
Trig2=EXT_IF,run2,SC1,DataManipulator,HOST_IF
Trig3=RACK_IF,run2,SC_IO
Trig4=EGPWS_IF,run2,SC_AVIOINCS
[HOST_IF]
load=./RAW.so
iniFile=HostIf.ini
[DataManipulator]
load=DM.so
iniFile=DM.ini
[SC1]
load=./cSimCompOne.so
iniFile=SC1.ini
[SC2]
load=./cSimCompTwo.so
iniFile=SC2.ini
[SC_IO]
load=./IO.so
iniFile=IO.ini
[SC_AVIONICS]
load=./Avionics.so
iniFile=Avionics.ini
[EXT_IF]
load=./RAW.so
iniFile=VisIf.ini
触发器
TRIGGERS节有效地定义数据的三个项:
-第一参数定义当数据到达仿真组件的接口时通知NuqCodeTM的仿真组件,
-第二参数定义响应于该触发器来运行的函数组
-参数3向前定义哪个仿真组件应该响应于该触发器而运行以及它们应该运行的次序。
例如,在以上示例性文件中,Trig1在DataManipulator、SC1、SC2、VIS_IF以及最终SC_Rack的每一个中顺序地运行函数run1()。
应当注意,突出显示的仿真器组件是数据从NUQLEUSTM被输出的位置。其示出在输出数据之后可以运行附加仿真组件,即其示出存在用于在已经输出关键数据之后运行非关键软件的设施。
仿真组件参考应用于ini文件中的另一个节,如在的ini文件中更下方出现的HOST_IF节。
作为TRIGGERS节中定义的仿真组件的结果,NUQLEUSTM执行程序调用该仿真组件中的函数setReference(设置参考)到具体触发器号码。仿真组件保持该参考作为成员变量。作为触发器的全部仿真组件包括成员函数setReference。
当数据到达仿真组件接口时,通知NUQLEUSTM执行程序:具体地,调用函数processData(处理数据),其中参数被设置为保存(成员变量)参考号码。组件为了调用processData,向该组件给出该回调函数的地址。这是使用作为C++的特征的多态来实现的:
·抽象类上的基类cNUQLEUSTM
·向触发器组件构造器传递cNUQLEUSTM对象的地址(使用“该”,但是将其作为指针传递到抽象类)
·该指针然后可用于从触发器组件调用processData。
在TRIGGERS节中的项/值的第二参数指示由于该触发器的结果应该运行哪个函数如run1()。
总而言之,该TRIGGERS节指示哪个仿真组件触发函数组。
仿真组件
对于每个仿真组件定义应该节。每个仿真组件被构造成Linux共享对象。用于每个仿真组件的设置指示要加载的共享对象的名称和在启动时被该组件读取的初始化文件,例如在以上示例中,HOST_IF仿真组件被构造成共享对象RAW并且读取初始化文件HostIf.ini。
如上所述,NUQLEUSTM执行程序完成共享对象的加载。
执行程序框架
将NUQLEUSTM架构概述如下:
·每个可传递NUQLEUSTM产品包括多个仿真组件,每个仿真组件满足NUQLEUSTM的具有要求。
·在NUQLEUSTM的启动时动态地加载这些仿真组件。
·主NUQLEUSTM类作为控制任务,响应于同步脉冲调度仿真组件。
·由于数据到达其中一个接口而提供同步脉冲。通常,存在两个路径:一个路径从主机到外部接口(Lire视觉的),并且另一个路径从外部接口到主机。结果,当数据从主机到达时并且类似地当数据从外部接口到达时触发同步脉冲。
·将同步脉冲传递回到NUQLEUSTM执行程序,这使得在NUQLEUSTM中(顺序地)运行其他仿真组件中的功能。从主机到外部接口的数据使得在每个仿真组件中(可选地)调用函数‘run1()’;而来自第二外部接口的数据使得在每个仿真组件中(可选地)调用函数‘run2()’。并非全部仿真组件需要run1()和run2()过程,并且它们仅需要被写入/包括在需要它们的仿真组件中。
·到主机的NUQLEUSTM接口是以太网,但是可以是任意协议Raw、UDP、TCP/IP。选择合适的仿真组件以支持所需要的任何协议。
·将从主机到达的数据(通常)(在主机处)预封装成预定义NUQLEUSTM代码。以太网接口仿真组件提取数据,准备被数据格式化器/数据操作器使用。
·数据格式化器组件被配置为在主机以太网组件之后运行。其检查主机数据缓冲器,将数据格式化成标准NUQLEUSTM代码。结果数据被加载到共享存储器中的结构中。如果存在非标准NUQLEUSTM代码或者主机软件不能被改变(例如没有源),则需要数据操作器。
·数据操作器执行与数据格式化器非常相似的功能,但是处理任何非标准NUQLEUSTM代码。数据操作器是仿真器特有的并且由系统工程师设计/实现。再次,结果生成的数据也被加载到共享存储器中的结构中。
·一个或多个专用仿真组件取得NUQLEUSTM代码,并且执行所需要的任何功能例如格式化数据以便到可视化系统的输出。
类
该节提供关于实现软件的次序的信息:
1.typedefs.h
2.templates.h
3.cIniFile类
4.主NUQLEUSTM程序(nuqMain.cpp)
5.cSharedMem类
6.cNUQLEUSTM类及其基础抽象类cNUQLEUSTMBase
7.NUQLEUSTM,代码头部文件(nuqCode<Num>.h)
8.cHostIf类-提供到现有主机的接口的触发器类
9.cVisIf类-提供到正在向仿真器增加的VIG系统的接口的触发器类
10.endianSwap模板
11.cDataFormatter类
12.cDataManipulator类
13.cSimComp1类-提供用于更新的软件仿真模型的仿真组件
14.cSimComp2类-提供用于更新的软件仿真模型的仿真组件
15.IEEE转换模板
用于NUQLEUS
TM
的基础的抽象类
已经叙述了需要抽象类,其中NUQLEUSTM任务基于抽象类。这支持NUQLEUSTM创建的组件调用保持在NUQLEUSTM类中的函数。具体地,接口仿真组件要求当数据到达时通知NUQLEUSTM,即支持触发机制。该抽象类包括头部文件并且具有与以下类似的格式:
主类-cNUQLEUS
TM
基本功能
该类包括以下功能:
·提供用于动态地加载仿真组件的能量。这允许在无需重编译的情况下改变配置。
·支持用于定义各种参数以控制NUQLEUSTM,并且尤其是将要被加载的具体仿真组件的操作的初始化文件。
·加载并且初始化仿真组件,同时向仿真组件传递具体初始化文件的名称。
·当数据到达接口时调用每个仿真中的具体功能。
操作
该类进行操作以:
·在初始化文件(例如NUQ.ini)中进行读取。
·以这样一种方式存储该信息以允许其中的数据准备被使用。
·以这样一种方式加载每个仿真组件以允许该仿真组件中的函数被调用。
·启动任何负责提供同步脉冲的仿真组件:
○当前,仅一个仿真组件正在响应于在接口处的数据到来
○存在对主机的接口并且存在对可视化的接口
·进入“不费时间”响应控制请求的循环(例如停止、重加载、开始等等)。
·作为(来自任意接口仿真组件的)外部触发的结果,NUQLEUSTM调用每个仿真组件中的函数。
·典型地,对于从(例如)主机到可视化系统的数据,在每个仿真组件中调用的函数是run1(),而在反方向中(从可视化到主机)使得run2()被调用。
·为了支持部分号码的显示的要求,NUQLEUSTM类应该包括它的部分号码并且支持全部组件返回关于它们的部分号码的信息。包括版本信息。可以将该部分号码信息保持在初始化文件(NUQ.ini等等)内,或者可以备选地保持在C++实现源文件内部。这是通过以下实现的:
○char m_szRevision[]=“$Revision:$”;
○char m_szPartNumber[]=“<enter part number>”;
在一些实施方式中,将这些变量和访问器(accessor)函数放到通用类内部,并且“全部”类基于此。
支持类特征:
·初始化文件读取器(见‘初始化文件读取器/写入器-cInifile’)。
·抽象类允许由NUQLEUSTM创建的仿真组件调用NUQLEUSTM中的函数(这在下文中描述)。
cNUQLEUS
TM
.cpp和cNUQLEUS
TM
.h
·该类构成用于NUQLEUSTM框架的主类。
·进入点是函数‘run()’。
·该类基于cNUQLEUSTM基础。这允许支持多态的使用,以允许由NUQLEUSTM创建/加载的任意类进行到执行对NUQLEUSTM的回调。这是由全部被加载、正在被传递到指向基类的指针所实现的。该基类然后被这些“子类”用于调用cNUQLEUSTM内的函数processData。注意:processData被定义为纯虚函数。
·当构造cNUQLEUSTM对象时,其利用部分号码加载成员变量和NUQLEUSTM的当前版本。
·通过调用成员函数run()来启动该框架。其使得该类:
○将工作文件夹设置为$NUQLEUSTM/bin(其简化仿真组件的动态加载和初始化文件的定位等等)
○检查types.h内所保持的全部数据类型的尺寸,以确保该尺寸与操作系统一致
○等待直到其被指示开始为止(经由psControl->bRun)
○读取NUQLEUSTM.ini文件
○加载在NUQLEUSTM.ini内定义的仿真组件共享对象
○进入(在函数bg内)仅存在与控制C或psControl->bExitRequested上的循环
○在该循环内检查NUQLEUSTM代码版本是正确的
·当加载每个仿真组件时,NUQLEUSTM框架调用用于该仿真组件的init函数。该init函数被定义为纯虚函数,因此向全部仿真组件声明它。在该init函数中将参数传递到每个仿真组件:指向NUQLEUSTM抽象基类的指针、触发器参考和初始化文件(如NUQLEUSTM.ini中定义的)。对于未被用作触发器的全部仿真组件,将该触发器参考设置为-1;而其将该索引保持在用于触发器的仿真触发器组件的列表中(在NUQLEUSTM.ini中定义了该次序)。
·由其他仿真组件特别是被定义为触发器的那些仿真组件实现该框架的实时方面。当‘触发器’仿真组件接收数据时,其通过使用用于此的NUQLEUSTM基类,经由processData函数通知NUQLEUSTM(如上所述)。
·在processData内定义互斥锁,以确保在任意一个时刻仅有一个仿真组件可以调用processData。这避免共享数据的问题。在processData的开始的时候,创建该互斥锁;在processData的结束时将其释放。结果,如果任意仿真组件在processData正在被使用时调用它,则该仿真组件被操作系统推迟,直到互斥锁被释放为止。
·当关闭NUQLEUSTM时,该框架调用用于全部仿真组件的“销毁”函数。注释:“term”函数是对于全部仿真组件可选的:如果其不存在,则改为调用cNUQLEUSTM基本版本。
初始化文件读取器/写入器-cIniFile
基本功能
该类包括以下功能:
·提供对初始化文件读取/写入的能力。
·接口是“简单的”,因此任何系统工程师可以无难度地使用。
操作
·函数的最小集合是:
○构造器:具有被覆写的默认构造器以允许传递初始化文件的名称,将初始化文件读取到存储器中。后续增加的默认构造器允许延迟ini文件的加载直到调用负载函数为止。
○getIniSetting:具有节的名称和关键字的名称的参数,返回一个值
例如见下文。提供<节>和<关键字>,返回值:
[<SECTION>]
<Key>=<Value>
getSectionData-具有<节>的参数,返回全部关键字/值对,例如见下文。向<节>提供全部关键字/值对:
[<SECTION>]
<Key1>=<Value1>
<Key2>=<Value2>
<Key3>=<Value3>
○putIniSetting:具有节名称、关键字名称和值的参数,在文件的存储器副本中增加/编辑现有细节。
○removeIniSetting:具有节名称和关键字名称的参数,从文件的存储器副本中删除该设置。
○Save:保存初始化文件的存储器副本。
○saveAs:将初始化文件的存储器副本保存为另一个ini文件。
共享存储器类-cSharedMen
使用Linux共享存储器来管理在仿真组件之间共享数据的方式。在实时主机开发程序期间创建的类利用共享存储器‘simple(简单)’。该类被称为cSharedMem并且需要两个文件cSharedMem.cpp和cSharedMem.h。
下文示出了它的使用的一个示例:
在该示例中,定义用于虚构NUQLEUSTM代码100的(非常小的)结构。typedef tNQ100声明该结构。由变量poNQ100定义指向该类型的结构的指针。使用cSHared Mem构造器,用关键字100定义共享存储器段(以匹配NUQLEUSTM代码)。由于调用该构造器的结果,poNQ100结构可用于访问NUQLEUSTM代码100结构的任意成员。
需要对该共享存储器的访问的任意仿真组件还包括oNQ100共享存储器变量的定义。这自动地附接到共享存储器(如果已经存在)或者创建共享存储器(如果不存在)。
当任意仿真组件被销毁时(在出口或有可能在重加载时),自动地断开共享存储器。被自动地关闭的最后一个仿真组件使得共享存储器被释放。
cNuqCode<xxx>.cpp和cNuqCode<xxx>.h
每个NUQLEUSTM代码具有(在类中)定义的实现。该类基于cNuqCodeTM和cNuqCodeBase类。
对于每个NUQLEUSTM代码提供以下成员函数:
·构造器,具有合适的初始化参数
·loadNuqCodeShMem
并且可选地:
·析构器
并且将以下函数定义为外部C函数:
·创建
·销毁
因为与现有NUQLEUSTM代码实现相比它们是直观的,在这里没有给出完整的细节。可以创建模板以便于创建新NUQLEUSTM代码的过程。由于需要用于定义该NUQLEUSTM代码的初始化文件,使得由数据格式化器自动地创建cNuqCodexxx类的实例。
cNuqCodeBase.cpp和cNuqCodeBase.h
每个将要被动态加载的NUQLEUSTM代码是基于该类。
其支持cDataFormatter类动态地加载任意NUQLEUSTM代码。该类被定义为纯虚拟的,因而绝不可以直接使用。
cNuqCode.cpp和cNuqCode.h
该类也由全部NUQLEUSTM代码用作它们的基类。其在用于该代码的cSharedMem的周围提供‘包装(wrapper)’。(除了cSharedMem功能之外)该类的主要特征在于对NUQLEUSTM代码提供自动版本检查。
Endian交换类-cEndianSwap
该类包括支持任意数据类型的两个模板类:
endianSwapInt:用于任意非浮点数据类型;
endianSwapReal:用于任意非浮点数据类型。
作为模板设计意味着当使用该类时,用于操作该类的数据类型被包括在尖括号中,例如以交换长整数,将该类调用为:
lSwappedVariable=endianSwapInt<long>lVariable;
数据格式化器类-cDataFormatter
该类支持将主机数据卸载到NUQLEUSTM代码(对于从主机传递到外部接口的数据),并且支持将NUQLEUSTM代码卸载到主机数据缓冲器(对于正在从外部接口向主机传递的数据)。
这是用于cDataManipulator的基类:这是用于处理与数据格式化器相同的功能但是用于非标准NUQLEUSTM代码的类。
完整地说,数据格式化器(和数据操作器)类进行以下处理:
·将主机缓冲器和NUQLEUSTM代码共享存储器结构进行卸载/加载
·特定主机平台所需要的数据的字节存储顺序(Endian)交换
·特定主机平台所需要的IEEE 754的转换
·确保NUQLEUSTM代码结构中的数据填充不引起问题(即在主机缓冲器和NUQLEUSTM代码共享存储器结构之间的直接memcpy是不可行的)
附加注释(如下覆盖):
该类还处理用于每个NUQLEUSTM代码的版本信息。
cDataFormatter.cpp和cDataFormatter.h
·该类处理到达主机接口的数据并且将该数据加载到NUQLEUSTM代码类中。
·期望主机数据作为连续的字节序列而存在于共享存储器中。
·用于数据格式化器的初始化文件定义用于主机共享存储器的项,并且期望在该数据中找到NUQLEUSTM代码帽子(hat)。
该初始化文件的一个示例是:
DF.ini
[NUQLEUSTMCodes]
NUQ_CODE1=200
NUQ_CODE2=201
NUQ_CODE3=202
NUQ_CODE4=203
NUQ_CODE5=500
[BufferIn]
SH_MEM_KEY=1234
SIZE=576
[BufferOut]
SH_MEM_KEY=5678
SIZE=1280
[InputData]
BIG_ENDIAN=false
·其自动地创建节NUQLEUSTM代码之下列出的NUQLEUSTM代码。
·BufferIn节定义用于主机输入数据的共享存储器
·BufferOut节定义用于主机输出数据的共享存储器
·InputData节定义主机是否是大端模式(Big Endian)(即需要交换NUQLEUSTM内的全部字节)。
主机和接口类
为了支持外部主机和外部接口缓冲器的显示,将这些缓冲器也加载到共享存储器中。
这还助于数据格式化器(和数据操作器)读取该信息。如果需要,其还允许任意仿真组件访问该数据。
硬件方案
用于NUQLEUSTM的硬件封装是“黑盒”嵌入式方案。NUQLEUSTM的前面板包括用于提供顶级诊断和状态信息的LCD接口、以及用于外部接口的以太网端口加上用于维护web前端的附加端口。
可视化仿真组件
图9示出了用于可视化仿真组件的顶层架构。
针对软件设计的主要约束在于:组件的类要基于cAbsSimComponent类、并且最终二进制数要被编译为Linux共享对象的要求。
使用用于g++编译器的-共享的和-fPIC交换,来编译Linux共享对象。
使用对于实时主机系统开发的cSharedMemory来创建共享存储器段。
对于可视化仿真组件来标识以下子组件:
·到IG的NUQLEUSTM输出缓冲器,保持在共享存储器中的分组IG op代码数据的字节数组,用于由NUQLEUSTM外部接口组件向IG的传输
·来自IG的输入NUQLEUSTM缓冲器,保持在共享存储器中并且源自IG的未处理OP代码数据的字节数组。
·IG Op代码数据格式化器,将NUQLEUSTM输入/输出缓冲器中的IG Op代码编码,并且解码成IG所需要的类或方法集合。包括浮点/固定点注释转换和用于由OEM OCD定义的每个op代码的例程。
·包括与可视化仿真相关的全部逻辑的可视化仿真功能类,包括视点(eyepoint)偏移量(如果需要)、预设值天气条件、路程交通控制等等的计算。
·可视化NUQLEUSTM代码输入,提供驱动可视化仿真特征所需要的全部数据的全部可用NUQLEUSTM代码的子集。这些内容可以源于主机(经由数据格式化器ref DPC 4)或者其他NUQLEUSTM仿真组件(例如TCAS)。
·可视化NUQLEUSTM代码输出,包括从可视化仿真输出的全部数据的、全部可用NUQLEUSTM代码的子集,包括地形反馈和用于教练员控制面板的状态信息的项。
用于可视化仿真组件的NUQLEUSTM内部ICD包括被用作输入和输出的NUQLEUSTM代码的定义。
图10示出了高级NUQLEUSTM组件通信路径。典型的可视化函数和IG数据格式化器形成两个独立的仿真组件。经由NuqCode的定义的子集传递数据。不存在从NUQLEUSTM数据格式化器到Op代码格式化器的直径路程。
虽然该方法很可能延迟视点位置到由可视化所需要的格式的转换(以及输出缓冲器的后续封装),但是到IG的以太网输出仍然需要完成全部所识别组件。因此,总体引起的延迟是零。
IG Op代码格式化器
IG Op代码格式化器利用指向用于保持IG外部输入/输出缓冲器的共享存储器段的指针。
IG Op代码格式化器需要用于处理工程与技工CLI Opcode手册中所定义的IG Op代码之间的数据的功能。正如全部NUQLEUSTM仿真组件,从cSimCompBase类得出可视化数据格式化器。该可视化数据格式化器利用cSimCompBase的Init()、run1()和run2()方法。可以省略term()方法。
用于该sim组件的类包括用于与其他仿真组件的通信所需要的任意NuqCodeTM的头部文件。
将格式化op代码数据保持在共享存储器缓冲器中,其使用NUQLEUSTM执行程序中的以太网接口任务向传递/从IG传递。以下段落定义该组件的功能:
类:cIGDataFmtr
从cSimCompBase继承
INI文件设置
用于NUQLEUSTM与IG之间的以太网传递的TX&RX缓冲器的共享存储器关键字。
成员
以下的本地副本:
指向共享存储器以太网缓冲器的指针
指向NuqCode的指针
OpCode转换器类的实例,提供用于在工程和IG数据格式之间转换的方法。
Init()功能
功能:
1)读取INI文件并且保存设置
2)创建/附接到用于以太网传递缓冲器的共享存储器分段
3)保存指向共享存储器和NuqCode的指针的本地副本。
Run1()功能
Run1()执行准备就绪用于向IG的传输的数据的格式和以太网缓冲器的封装。数据输入的形式是NuqCodeTM加上具有传输标志位集合的具体NuqCodeTM。全部输入源自VisualSimComponent(可视化仿真组件)。
对保持在共享存储器中的缓冲器的输出包括一系列已格式化并且排序的OpCode。
功能:
1)封装可视化以太网头部
2)初始化指向共享存储器以太网Tx缓冲器的指针
3)针对每个可视化特征输入:
检查所需要的PACK&SEND,其所需要的布尔标志位的NuqCodeTM输入
如果(缓冲器中的空间)
则利用来自NuqCodeTM输入的合适的自变量,调用需要的封装
<OpCode>方法
将指针增加长度(Op代码)字节
清除PACK&SEND标志位
检查缓冲器空间剩余
Run2()功能
Run2()执行必要功能以拆解并且解码从IG返回的以太网缓冲器中的任意数据。对该函数的输入是保持在共享存储器中的缓冲器,该共享存储器包括源自IG的可变数量的已格式化OpCode。来自该函数的输出是工程单元中的一系列NuqCodeTM。
功能:
1)检查共享存储器缓冲器中的数据
2)将指向以太网数据的起点的指针进行初始化
3)对于共享存储器缓冲器中的每个opcode
提取Opcode号码
调用可用的拆解<OpCode>方法
封装可用NuqCodeTM数据
将指针增加长度(OpCode)字节
附加方法
除了由cBaseSimComp类定义的方法之外,cVisDataFormatter需要方法执行以下步骤:
packOpCode<nnnn>:每个IG数据项需要特定方法以将数据封装成由IG需要的格式。
由参数将待封装的数据传递到该方法。
通过对指向以太网Tx缓冲器的指针进行增量,将数据封装到所定义的位置。
unpackOpCode<nnnn>:每个IG数据项需要特定的方法以解码来自由增加指针所指示的位置的数据,并且将该数据转换成工程格式。由参数将存储输出数据的位置传递到该方法。
转换<号码格式>:IG需要使用固定点符号向/从它传递数据。需要多个方法来处理从IEEE浮点格式到固定点符号的转换。在OEMICD文献中定义里该转换算法。例程将固定点符号转换成IEEE浮点格式。
可视化仿真函数
可视化仿真函数提供典型地由可视化系统需要的功能。这包括如设置预先调节的天气设置(例如CAT II可视性)。
将该可视化仿真函数封装成以下组:
可视化系统控制
本机可视化特征
机场可视化特征
环境可视化特征
移动模型可视化特征
如同全部NUQLEUSTM仿真组件,从cSimCompBase类得出该可视化仿真组件。该可视化仿真组件利用cSimCompBase的init()、run1()和run2()方法。在此时不清楚是否需要term()方法。
用于该sim组件的类包括用于与其他仿真组件的通信所需要的任意NuqCodeTM的头部文件。对该组件的全部输入和输出经由NuqCode进行。定义的类结构封装在该实现阶段的早期所识别的组所需要的不同的功能。
图11中示出了该类结构:
该仿真组件具有用于控制在仿真类中可用的全部可配置选项的单个INI文件。以下段落定义该组件的功能以及其包括子类:
类:cVisualSimComp
从cBaseSimComp继承
INI文件设置
IG类型
视点偏移量
HAT测试点(号码和位置)
冲突检测测试点(号码和位置)
可视化平面消隐定时器
成员
到NuqCodeTM共享存储器对象的本地副本
在以上类图中识别的每个类的示例
视点X、Y、Z偏移量
可视化平面消隐可视化限制
用于以上识别的类之间的cVisualSimComp内部通信的结构。
Init()功能
保存指向NuqCodeTM共享存储器对象的指针的本地副本创建cVisManagement、cVisOwnship、cVisEnvironment、cVisAirfield、cVisMovingModels和cVisReturn类的实例读取Ini文件设置并且保存在本地成员变量中。
Run1()功能
cVisualSimComp的Run1()方法的功能被限制为依次调用运行cVisManagement、cVisOwnship、cVisEnvironment、cVisAirfield和cVisMovingModels类的方法。
Run2()功能
cVisualSimComp的Run2()方法的功能被限制为调用运行cVisReturn的方法。
Term()功能
待定
类:cVisManagement
目的
cVisManagement类处理可视化仿真特征的总体控制。期望它包括特征例如:
·可视化参数的初始化
·可视化系统显示消隐/到期
·重定位屏幕消隐
·监视用于丢失分组的NUQLEUSTM-IG通信(分组计数器)
·测试模式控制
·视口(viewport)和视点偏移量控制
成员
可视化系统不活动性定时器和相关参数
指向作为到该类的输入和输出而传递的数据的指针的本地副本。
构造器
保存输入参数:
保存指向输入/输出数据的指针的本地副本
保存可视化不活动性定时器限制的本地副本
初始化不活动性定时器
析构器
将可视化设置为OFF(消隐可视化等等)
方法
run()从cVisualSimComponent类调用该方法,并且提供用于可视化系统的顶层逻辑。如果需要则该方法调用附加内部(尚未识别的)方法。
输入
教练员可视化系统开/关控制
本机定位
系统冰冻(飞行/总共)
输出
命令可视化系统开/关
选择测试形式
类:cVisOwnship
目的
cVisOwnship着手将来自主机输入的本机可视化数据处理成由IG数据格式化器所需要的格式。期望其满足的特征包括:
·视点位置(纬度、经度、高度和X、Y、Z格式)
·视点回转控制
·飞行器光照命令
·定义HAT返回点
·冲突检测请求
成员
指向用于作为对类的输入和输出而传递的数据的存储器位置的指针的本地副本
距离标称CG位置的视点偏移量
HAT测试点的数量和位置
冲突检测测试点的数量和位置
构造器
保存输入参数:
指向输入/输出数据位置的指针。
析构器
没有识别功能
方法
Run():从cVisualSimComponent类调用该方法,并且该方法提供用于cVisOwnship功能的顶层逻辑。该方法顺序地调用包括该类的其他私有方法。
eyepointPosition():该方法考虑距标称CG位置的X、Y、Z飞行员的眼睛位置偏移量来求解本机视点的位置。包括控制以提供纬度、经度、高度和X、Y、Z格式。
eyepointSlew():该方法提供视点回转的控制。这主要用在可视化系统的初始任命期间以确认飞机场校准和重定位点。
Lighting():该方法提供本机照明效应的控制。如飞行员选择座舱开关所定义的,请求本机照明球。
setHat():该方法当被调用时确保从IG请求地形高度反馈。该方法配置测试点的可用数量和位置。
setCollisionDetect():该方法当被调用时配置本机冲突检测测试点。
输入
本机CG位置(纬度、经度、地面之上的高度)
本机姿势(倾斜/翻转/偏航)
着陆灯-开关位置(闸门、着陆灯、导航灯等等)
视点回转请求控制
输出
用于到IG数据格式化器的输入的视点位置
本机照明效果
HAT测试点位置
冲突检测测试点
类:cVisAirfield
目的
cVisAirfield类将来自原NuqCodeTM的主机和教练员控制面板输入处理成IG数据格式化器所需要的格式。
在该类中处理的特征包括:
·活动飞机场
·通用飞机场控制
·跑道照明控制
成员
到用于作为输入和输出向该类传递的数据的存储器位置的指针的本地副本
活动飞机场(包)
通用飞机场建立
构造器
保存输入自变量:
到输入/输出数据位置的指针。
析构器
当前没有识别功能
方法
Run():从cVisualSimComponent类调用该方法并且该方法提供用于cVisAirfield功能的顶层逻辑。该方法顺序地调用包括该类的其他私有方法。
activeParcel():该方法当被调用时确定活动可视化系统包。
genericAirfield():该方法基于由教练员选择的特征,配置IG系统的通用飞机场参数。可用于选择的特征包括:地形、跑道标记、英国对美国跑道标记等等。
airfieldLighting():该方法控制各种飞机场照明效果的选择。可用的照明特征包括着陆辅助、跑道、计程车线路照明。
输入
用于通用飞机场建立的教练员命令
用于飞机场照明的教练员命令
本机位置(用于加载定制模型/包)
输出
准备就绪用于输入到可视化数据格式器所处理的可视化飞机场和照明数据
类:cVisEnvironment
目的
cVisEnvironment类处理在教练员控制面板上选择的环境条件的解释,并且将输入NuqCodeTM处理成IG数据格式化器所需要的格式。由该类创建的特征包括:
·可视性
·云底/顶
·风暴控制
·日期时间
·季节/雪景选择
·火山灰
·跑道污染
·风向袋
成员
到用于作为输入和输出向该类传递的数据的存储器位置的指针的本地副本
构造器
保存输入自变量的本地副本:
到输入/输出数据位置的指针。
方法
Run():从cVisualSimComponent类调用该方法,并且该方法提供用于cVisEnvironment功能的顶层逻辑。该方法顺序地调用包括该类的其他私有方法。
visibility():该方法基于教练员选择提供可视性的控制。这包括雾、基本RVR、总体可视性以及预先条件的可视性(CAT I、II、III和CAVOK)的单独的选择。
cloudControl():该方法提供云层上下的控制。当前,预见到两个云层。另外,该方法控制诸如消散云团的特征的选择。云层包括增强的特征,包括上/下绒毛和过渡层。
storm():该方法提供风暴(具体地天气RADAR风暴)控制的解释,来自该方法的输出包括风暴云团模型和雨柱的定位的需求。为了确保仅当风暴云团和雨柱对于机组人员可见时请求风暴云团和雨柱,定义用于基于本机高度来控制每个模型的活动的规则。
timeOfDay():该方法处理可视化系统日期时间请求。这包括传统日期时间选择与自动过渡之间的切换。
weatherEffects():该方法提供可用于教练员的季节性影响的选择的控制。这包括雨、雪、扬沙、闪电和其他天气条件的选择。允许自动季节过渡选择。
volcanicAsh():该方法控制火山灰故障引起的影响。稍后确定该控制的精确的影响。
runwayContamination():该方法允许参考跑道可用的各种跑道污染影响的选择。这包括如覆盖跑道的水或雪的污染。实际影响依赖于在IG上的模型可用性。
windsockControl():该方法提取驱动风向标模型所需要的必要数据。期望需要的信息是风速和由教练员选择的方向。
输入
教练员选择的天气条件
满足现有IOS和专用控制面板
本机高度
输出
准备输入到可视化数据格式器所处理的环境影响数据
类:cVisMovingModels
目的
cVisMovingModels类处理从NuqCodeTM数据到IG数据格式化器所需要的格式的移动交通对象的映射。由在该类中创建的对象类型的示例包括:
·TCAS交通/空中交通
·飞机场交通(例如行李车)
·鸟群
·Marshaler(信号员)
·飞机推迟起飞拖拽控制
·动画控制(提供)
成员
到用于作为输入和输出向该类传递的数据的存储器位置的指针的本地副本。
构造器
保存输入自变量的本地副本:
指向输入/输出数据位置的指针。
方法
Run():从cVisualSimComponent类调用该方法,并且该方法提供用于cVisMovingModels功能的顶层逻辑。该方法顺序地调用包括该类的其他私有方法。
processAirTraffic():该方法处理包括用于定义控制飞行器的位置、状态和类型的数据的结构。这些结构包括不可用于可视化系统的数据;该方法提取IG数据格式化器所需要的信息,并且将数据置入到合适的NuqCode中。
NuqCodeTM输入和输出支持多个交通结构定义。
processAirfieldTraffic():该方法基于飞机场的交通控制地面的移动。该方法路程交通。到该方法的输入可能源自在IOS或专用控制面板处的教练员选择。
marshallerControl():该方法控制Marshaller的活动和行为。输入源自IOS和专用控制面板。该方法可选地调用标准Marshaller动画序列或者NUQLEUSTM指定和控制动画序列(进一步的增强)
pushBackControl():该方法控制飞机推迟起飞拖拽的激活需求。对该方法的输入指定飞机推迟起飞拖拽是否是活动的。
animationControl():该方法是用于利用目标IG的可用动画功能的进一步的增强的占位符。惯用动画的可用性可能是IG特有的。
输入
用于定义空中交通状态和位置的结构数组
用于控制动画顺序、路程交通和飞机推迟起飞激活的教练员输入
输出
准备就绪用于输入到可视化数据格式器所处理的移动模型数据。
类:cVisReturn
目的
cVisReturn类处理来自IG的任意返回数据在被传递回到主机之前的解释。这包括:
·坠毁条件
·地形高度/地形之上的高度
·本机之下的地形
·路程信息反馈
成员
指向作为输入和输出向该类传递的数据的存储器位置的指针的本地副本
构造器
保存输入自变量的本地副本:
指向输入/输出数据位置的指针。
析构器
当前没有识别功能
方法
Run():从cVisualSimComponent类调用该方法,并且该方法提供用于cVisReturn功能的顶层逻辑。该方法顺序地调用包括该类的其他私有方法。
crashDetect():该方法处理坠毁检测的IG输出并且按照NuqCode所需要来对数据进行格式化。该方法应用任意必要的锁存逻辑以确保主机软件能够发现瞬态冲突。
terrainHeightReturn():该方法处理来IG的原地形高度反馈并且在输出到主机之前应用任意附加处理逻辑(例如平滑)。在该方法中计算偏离跑道条件。
informationFeedback():提供该方法以用于从IG返回的附加数据如SMCGS和路程交通描述的处理
输入
包括已解码但未处理IG opcode数据的NuqCodeTM。
输出
准备输入到可视化数据格式器所处理的可视化系统反馈数据。
软件流
初始化
图12示出了在NUQLEUSTM的仿真期间的典型的仿真组件:
图12示出:
·用于主机以太网接口、数据格式器/操作器、应用、具有用于控制该系统的NUQLEUSTM执行程序的可视化以太网接口的仿真组件。
·在NUQLEUSTM执行程序建立时:
○读取它的初始化文件(NUQ.ini)并且将该信息保持在存储器内。
○结果,其加载合适的仿真组件(动态对象)。
○其对于每个仿真组件调用init(),将(如从NUQ.ini读取的)合适的初始化文件传递到每个。
·结果,每个仿真组件被完全初始化并且准备响应于来自NUQLEUSTM执行程序的命令来运行。
主机到可视化数据传递
图13示出了用于从主机接收的并且被传递到外部接口(例如可视化系统)上的数据的典型的数据路径。
图13示出:
·用于主机以太网接口、数据格式器/操作器、应用、具有用于控制该系统的NUQLEUSTM执行程序的可视化以太网接口的仿真组件。
·经由以太网接口仿真组件获取来自主机的数据。这将数据加载到缓冲器中,并且(经由回调)通知NUQLEUSTM执行程序该数据可用。
·NUQLEUSTM执行程序然后依次调用仿真组件中的每一个:数据格式器/操作器、应用、可视化以太网接口:
○数据格式器/操作器取得主机缓冲器中的数据,并且创建共享存储器中的NUQLEUSTM代码结构
○由该应用使用这些结构中的信息。当需要时,可以向(其他)NUQLEUSTM代码结构回写数据
○可视化以太网接口向可视化发出该数据。
可视化到主机数据传递
14示出了用于从外部接口(可视化)接收的并且被传递回主机的数据的典型的数据路径。
图14示出:
·用于主机以太网接口、数据格式器/操作器、应用、具有用于控制该系统的NUQLEUSTM执行程序的可视化以太网接口的仿真组件。
·经由以太网接口仿真组件获取来自可视化的数据。这将数据加载到缓冲器中并且(经由回调)通知NUQLEUSTM执行程序该数据可用。
·NUQLEUSTM执行程序然后依次调用仿真组件:应用、数据格式器/操作器、主机以太网接口中的每一个:
○应用仿真组件按照需要将数据格式化为NUQLEUSTM代码结构
○数据格式器/操作器取得该数据并且创将其封装到缓冲器中以便向主机传输
○主机以太网接口向主机发出该数据。
虽然已经参考新VIG系统204和用于飞行仿真器的现有计算架构的集成来描述了以上示例性实施方式,但是将要认识到,可以利用根据本发明的更新装置206来集成任意新子系统,例如新航空电子设备或声音和听觉提示子系统。
更新装置206还可进行操作以将多个新子系统集成到现有计算架构中。例如可以利用该更新装置来集成新VIG系统和新航空电子设备系统。在该实施方式中,更新装置206的执行程序组件310可以被配置为在执行程序初始化文件400的控制之下,使得加载仿真组件的两个不同的集合。因此,该执行程序组件可以实现:两个不同的目标接口模块,一个目标接口模块用于一个新子系统;两个不同的主机接口系统,每个用于接收与不同的新子系统相关的数据;以及仿真组件的两个不同的集合,每个用于在与不同的新子系统相关的数据上进行操作。执行程序初始化文件400可以规定多个触发器,每个触发器关于经过更新装置206的不同数据路径中的每个路径。用于集成两个新子系统的更新装置可以例如具有四个不同数据路径(即去向和来自每个新子系统),并且因此执行程序初始化文件400指定四个不同的触发器。
将要理解,本发明还涉及其他类型的交通工具仿真器如坦克和卡车仿真器。此外本发明可用于将新子系统与多种类型的计算和硬件架构集成。本发明有利地用于更新包括软件和具有相对长的寿命的昂贵硬件的任意系统。本发明例如可以由升级医疗成像系统如磁共振成像系统、计算机轴向体层摄影术系统以及脑电图和脑磁图系统。类似地,本发明可以用于升级其他类型的大小机器如工厂机器或娱乐公园或游乐场机器。
应该认识到,前述实施方式不应该解释为限制。在阅读申请之后,其他变形和修改将对于本领域的本领域技术人员显而易见。此外,应该将本申请的公开理解为包括任意新颖特征或本文明确地或隐含地公开的特征的组合或者它们的任意概括,并且在本申请或者它的衍生案的申请期间,可以形成新的权利要求以覆盖任意该特征和/或该特征的组合。
Claims (28)
1.一种用于将新子系统与现有计算架构进行集成的装置,所述装置包括:
第一物理接口,用于从所述现有计算装置接收数据;
第二物理接口,用于向所述新子系统输出数据;
处理装置;以及
存储器,具有存储在其上的第一软件模块、多个其他软件模块和第一存储配置,
其中,当被所述处理装置执行时,所述第一软件模块被配置为读取所述第一存储配置,并且使得所述处理装置加载所述多个其他软件模块中的其他软件模块的组合,所述多个其他软件模块中的其他软件模块的所述组合与所述多个其他软件模块中的其他软件模块的所述组合的第一子集是由所述第一存储配置定义的;当被所述处理装置执行时,所述组合的所述第一子集可进行操作以将在所述第一物理接口处接收的数据变换成与所述新子系统兼容的形式,并且经由所述第二物理接口向所述新子系统提供经变换的数据。
2.如权利要求1所述的装置,其中,所述装置被配置为使得所述第一软件模块读取所述第一存储配置,并且使得所述处理装置在所述装置的启动时加载所述多个其他软件模块中的其他软件模块的组合。
3.如权利要求1或2所述的装置,其中,所述新子系统的集成向现有计算架构提供附加特征。
4.如前述权利要求中任一项所述的装置,其中,当被所述处理装置执行时,其他软件模块的所述组合的所述第一子集中的第一其他软件模块被配置为响应于在所述第一物理接口处的数据的到达,向所述第一软件模块发送用于指示在所述第一物理接口处的所述数据的所述到达的信号,
其中,所述第一软件模块响应于所述用于指示在所述第一物理接口处的所述数据的所述到达的信号的接收,相继地向其他软件模块的所述组合的所述第一子集中的每个其他的其他软件模块发送第一命令信号,
其中,其他软件模块的所述组合的所述第一子集中的每个其他的其他软件模块响应于所述命令信号的接收,在从其他软件模块的所述组合的所述第一子集中的先前的其他软件模块传递的数据上进行操作。
5.如前述权利要求中的任一项所述的装置,其中,所述第二物理接口被配置为从所述新子系统接收数据,其中,当被所述处理装置执行时,所述第一软件模块可进行操作以使得所述处理装置执行所述多个其他软件模块中的其他软件模块的所述组合的第二子集,所述多个其他软件模块中的其他软件模块的所述组合的所述第二子集被所述第一存储配置定义,并且当被所述处理装置执行时可进行操作以将在所述第二物理接口处接收的数据变换成与所述现有计算装置兼容的形式,并且经由所述第一物理接口向所述现有计算装置提供经变换的数据。
6.如权利要求5所述的装置,其中,当被所述处理装置执行时,其他软件模块的所述组合的所述第二子集中的第一其他软件模块被配置为响应于在所述第二物理接口处的数据的到达,向所述第一软件模块发送用于指示在所述第二物理接口处的所述数据的所述到达的信号,
其中,所述第一软件模块响应于所述用于指示在所述第二物理接口处的所述数据的所述到达的信号的接收,相继地向其他软件模块的所述组合的所述第二子集中的每个其他的其他软件模块发送第二命令信号,
其中,其他软件模块的所述组合的所述第二子集中的每个其他的其他软件模块响应于所述命令信号的接收,在从其他软件模块的所述组合的所述第二子集中的先前的其他软件模块输出的数据上进行操作。
7.如前述权利要求中的任一项所述的装置,其中,其他软件模块被配置为以多个预定义数据结构中的一个预定义数据结构输出数据。
8.如权利要求7所述的装置,其中,所述预定义数据结构被存储在共享存储器中。
9.如权利要求1-4、6、7或8中的任一项所述的装置,其中,所述第一存储配置定义所述其他软件模块中的哪些其他软件模块被配置为响应于在所述第一物理接口处的数据的到达,向所述第一软件模块发送用于指示在所述第一物理接口处的所述数据的所述到达的信号。
10.如前述权利要求中的任一项所述的装置,其中,所述第一软件模块被配置为使得已加载的其他软件模块中的一个或多个读取相应的其他存储配置,所述相应的其他存储配置的身份是由所述第一存储配置定义的。
11.如前述权利要求中的任一项所述的装置,其中,所述第一软件模块被配置为使得所述已加载的其他软件模块中的每一个读取相应的其他存储配置,所述相应的其他存储配置的身份是由所述第一存储配置定义的。
12.如权利要求10或11所述的装置,其中,所述其他存储配置中的每一个定义针对所述已加载的其他软件模块中的相应已加载其他软件模块的设置。
13.如权利要求10到12中的任一项所述的装置,其中,每个所述其他存储配置包括初始化文件。
14.如前述权利要求中的任一项所述的装置,其中,所述第一存储配置包括初始化文件。
15.一种用于将新子系统与现有计算架构进行集成的方法,所述方法包括:
读取第一存储配置;
加载所述多个软件模块中的软件模块的组合,所述多个软件模块中的软件模块的所述组合与所述多个软件模块中的软件模块的所述组合的第一子集是由所述第一存储配置定义的;以及
在第一物理接口处从所述现有计算机架构接收数据;
所述多个软件模块中的软件模块的所述组合的所述第一子集将在所述第一物理接口处接收的所述数据变换成与所述新子系统兼容的形式,并且经由所述装置的第二物理接口向所述新子系统提供经变换的数据。
16.如权利要求15所述的方法,包括:使得所述第一软件模块读取所述第一存储配置,并且使得所述处理装置在所述装置的启动时加载所述多个其他软件模块中的其他软件模块的组合。
17.如权利要求15或16所述的方法,其中,所述新子系统的集成向现有计算架构提供附加特征。
18.如权利要求15到17中的任一项所述的方法,包括:
其他软件模块的所述组合的所述第一子集中的第一其他软件模块响应于在所述第一物理接口处的数据的到达,向所述第一软件模块发送用于指示在所述第一物理接口处的所述数据的所述到达的信号,
所述第一软件模块响应于所述用于指示在所述第一物理接口处的所述数据的所述到达的信号的接收,相继地向其他软件模块的所述组合的所述第一子集中的每个其他的其他软件模块发送第一命令信号,
其他软件模块的所述组合的所述第一子集中的每个其他的其他软件模块响应于所述命令信号的接收,在从其他软件模块的所述组合的所述第一子集中的先前的其他软件模块传递的数据上进行操作。
19.如权利要求15到18中的任一项所述的方法,包括:
在第二物理接口从所述新子系统接收数据;
所述多个其他软件模块中的其他软件模块的所述组合的第二子集将在所述第二物理接口处接收的数据变换成与所述现有计算装置兼容的形式;以及
经由所述第一物理接口向所述现有计算装置提供经变换的数据,
其中,所述多个其他软件模块中的其他软件模块的所述组合的所述第二子集是由所述第一存储配置定义的。
20.如权利要求15到19中的任一项所述的方法,包括:
所述第一软件模块使得已加载的其他软件模块中的一个或多个读取相应的其他存储配置,所述相应其他存储配置的身份是由所述第一存储配置定义的。
21.一种当被计算装置执行时使得该装置执行如权利要求15到20中的任一项所述的方法的机器可读指令。
22.一种可选地存储在非瞬态计算机介质上的、用于将新子系统与现有计算架构进行集成的、用于计算装置的计算机可读指令,所述计算机可读指令包括第一软件模块和多个其他软件模块,当被所述计算装置执行时所述第一软件模块使得所述计算装置:
读取第一存储配置;以及
加载所述多个软件模块中的软件模块的组合,所述多个软件模块中的软件模块的所述组合与所述多个软件模块中的软件模块的所述组合的第一子集是由所述第一存储配置定义的,
当被所述计算装置执行时,所述多个软件模块中的软件模块的所述组合的所述第一子集使得所述计算装置:
将在第一物理接口处从所述现有计算架构接收的数据变换成与所述新子系统兼容的形式,以及
经由第二物理接口向所述新子系统提供经变换的数据。
23.如权利要求22所述的计算机可读指令,被配置为使得所述第一软件模块读取所述第一存储配置,并且使得所述处理装置在所述装置的启动时加载所述多个其他软件模块中的其他软件模块的组合。
24.如权利要求22或23所述的计算机可读指令,其中,所述新子系统的集成向现有计算架构提供附加特征。
25.如权利要求22到24中的任一项所述的计算机可读指令,其中:
当被所述计算装置执行时,其他软件模块的所述组合的所述第一子集中的第一其他软件模块使得所述计算装置响应于在所述第一物理接口处的数据的到达,向所述第一软件模块发送用于指示所述第一物理接口处的所述数据的所述到达的信号,
当被所述计算装置执行时,所述第一软件模块使得所述计算装置响应于在所述第一物理接口处的所述数据的所述到达的信号的所述接收,相继地向其他软件模块的所述组合的所述第一子集中的每个其他的其他软件模块发送第一命令信号,
当被所述计算装置执行时,其他软件模块的所述组合的所述第一子集中的每个其他的其他软件模块使得所述计算装置于响应所述命令信号的接收,在从其他软件模块的所述组合的所述第一子集中的先前的其他软件模块传递的数据上进行操作。
26.如权利要求22到25中的任一项所述的计算机可读指令,其中:
当被所述计算装置执行时,所述多个其他软件模块中的其他软件模块的所述组合的第二子集使得所述计算装置将在所述第二物理接口处接收的数据变换成与所述现有计算装置兼容的形式,并且经由所述第一物理接口向所述现有计算装置提供经变换的数据,
其中,所述多个其他软件模块中的其他软件模块的所述组合的所述第二子集是由所述第一存储配置定义的。
27.如权利要求22到26中的任一项所述的计算机可读指令,其中,当被所述计算装置执行时,所述第一软件模块使得所述计算装置使得已加载的其他软件模块中的一个或多个读取相应的其他存储配置,所述相应的其他存储配置的身份是由所述第一存储配置定义的。
28.一种装置,该装置具有至少一个处理器和至少一个存储器,该至少一个存储器具有存储在其上的计算机可读代码,当该计算机可读代码被执行时控制该至少一个处理器执行一种方法,该方法包括:
读取第一存储配置;
加载所述多个软件模块中的软件模块的组合,所述多个软件模块中的软件模块的所述组合与所述多个软件模块中的软件模块的所述组合的第一子集是由所述第一存储配置定义的;以及
在第一物理接口处从所述现有计算机架构接收数据;
所述多个软件模块中的软件模块的所述组合的所述第一子集将在所述第一物理接口处接收的所述数据变换成与所述新子系统兼容的形式,并且经由所述装置的第二物理接口向所述新子系统提供经变换的数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1013362.7A GB2482681B (en) | 2010-08-09 | 2010-08-09 | A configurable bridge circuit for integrating a new subsystem with an existing computing environment |
GB1013362.7 | 2010-08-09 | ||
PCT/GB2011/051501 WO2012020252A1 (en) | 2010-08-09 | 2011-08-09 | Integrating a new subsystem with an existing computing architecture |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103155016A true CN103155016A (zh) | 2013-06-12 |
CN103155016B CN103155016B (zh) | 2016-09-07 |
Family
ID=42931390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180048831.0A Expired - Fee Related CN103155016B (zh) | 2010-08-09 | 2011-08-09 | 将新的子系统与现有计算架构进行集成的装置及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9626876B2 (zh) |
EP (1) | EP2603909A1 (zh) |
CN (1) | CN103155016B (zh) |
GB (1) | GB2482681B (zh) |
WO (1) | WO2012020252A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110148332A (zh) * | 2019-06-12 | 2019-08-20 | 大连海事大学 | 船舶主机遥控操作模拟训练系统 |
CN111736887A (zh) * | 2020-05-06 | 2020-10-02 | 广东金赋科技股份有限公司 | 一种利旧设备的访问系统、方法、装置及存储介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI469052B (zh) * | 2008-12-12 | 2015-01-11 | Genesys Logic Inc | 具有複數修正儲存單元的程式更新系統及其方法 |
US9098106B2 (en) * | 2012-08-10 | 2015-08-04 | Comsol Ab | Systems and methods for creating application interfaces for forming and solving problems in a modeling system |
US10650177B2 (en) | 2012-12-20 | 2020-05-12 | Comsol Ab | System and method for creating application interfaces for multiphysics modeling |
EP3474166A1 (en) * | 2012-12-20 | 2019-04-24 | Comsol AB | System and method for creating reusable geometry sequences for multiphysics modeling |
CN103605551A (zh) * | 2013-11-28 | 2014-02-26 | 金蝶软件(中国)有限公司 | 一种基于ios程序的插件更新方法、系统及相关设备 |
EP2990974B1 (de) * | 2014-08-28 | 2023-01-04 | Löwenstein Medical Technology S.A. | Beatmungsgerät und verfahren für ein beatmungsgerät |
US11756543B2 (en) * | 2020-10-27 | 2023-09-12 | Incentive Marketing Group, Inc. | Methods and systems for application integration and macrosystem aware integration |
US11775276B2 (en) * | 2020-10-27 | 2023-10-03 | Incentive Marketing Group, Inc. | Methods and systems for application integration and macrosystem aware integration |
CN112363479B (zh) * | 2020-12-09 | 2022-04-08 | 南昌航空大学 | 一种现场设备间的数字通信传输方法及系统 |
CN113407469B (zh) * | 2021-06-10 | 2023-04-07 | 浙江华创视讯科技有限公司 | 一种参数配置方法及装置、存储介质及电子装置 |
US11601303B1 (en) * | 2021-09-02 | 2023-03-07 | Rivian Ip Holdings, Llc | System and method for enabling persistent vehicle software interfaces |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074386A1 (en) * | 2001-10-01 | 2003-04-17 | Microsoft Corporation | Method and system for migrating computer state |
CN1537271A (zh) * | 1998-09-18 | 2004-10-13 | 韦尔西・法伯尔斯 | 使用自主数据处理机的计算机处理和程序设计方法 |
CN1879082A (zh) * | 2003-11-12 | 2006-12-13 | 株式会社Ntt都科摩 | 用于编译软件的方法和装置 |
US20070142062A1 (en) * | 2003-12-12 | 2007-06-21 | Sung-Ki Cho | Satellite simulation model system based on interface standard model |
US20090164491A1 (en) * | 2007-12-21 | 2009-06-25 | Make Technologies Inc. | Data Modernization System For Legacy Software |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5481712A (en) * | 1993-04-06 | 1996-01-02 | Cognex Corporation | Method and apparatus for interactively generating a computer program for machine vision analysis of an object |
US6405254B1 (en) * | 1996-01-03 | 2002-06-11 | Sterling Commerce, Inc. | System and method for protocol conversion using facilities and utilities |
FR2816786B1 (fr) * | 2000-11-14 | 2003-09-12 | Schneider Automation S A | Dispositif d'adaptation programmable pour protocoles de communication |
US7290030B2 (en) * | 2001-07-13 | 2007-10-30 | Rockwell Automation Technologies, Inc. | Internet object based interface for industrial controller |
US6996589B1 (en) * | 2002-01-16 | 2006-02-07 | Convergys Cmg Utah, Inc. | System and method for database conversion |
US7856628B2 (en) * | 2006-01-23 | 2010-12-21 | International Business Machines Corporation | Method for simplifying compiler-generated software code |
US8266105B2 (en) * | 2006-10-31 | 2012-09-11 | Rebit, Inc. | System for automatically replicating a customer's personalized computer system image on a new computer system |
-
2010
- 2010-08-09 GB GB1013362.7A patent/GB2482681B/en active Active
- 2010-08-27 US US12/807,109 patent/US9626876B2/en active Active
-
2011
- 2011-08-09 CN CN201180048831.0A patent/CN103155016B/zh not_active Expired - Fee Related
- 2011-08-09 WO PCT/GB2011/051501 patent/WO2012020252A1/en active Application Filing
- 2011-08-09 EP EP11745818.2A patent/EP2603909A1/en not_active Ceased
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1537271A (zh) * | 1998-09-18 | 2004-10-13 | 韦尔西・法伯尔斯 | 使用自主数据处理机的计算机处理和程序设计方法 |
US20030074386A1 (en) * | 2001-10-01 | 2003-04-17 | Microsoft Corporation | Method and system for migrating computer state |
CN1879082A (zh) * | 2003-11-12 | 2006-12-13 | 株式会社Ntt都科摩 | 用于编译软件的方法和装置 |
US20070142062A1 (en) * | 2003-12-12 | 2007-06-21 | Sung-Ki Cho | Satellite simulation model system based on interface standard model |
US20090164491A1 (en) * | 2007-12-21 | 2009-06-25 | Make Technologies Inc. | Data Modernization System For Legacy Software |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110148332A (zh) * | 2019-06-12 | 2019-08-20 | 大连海事大学 | 船舶主机遥控操作模拟训练系统 |
CN110148332B (zh) * | 2019-06-12 | 2021-12-21 | 大连海事大学 | 船舶主机遥控操作模拟训练系统 |
CN111736887A (zh) * | 2020-05-06 | 2020-10-02 | 广东金赋科技股份有限公司 | 一种利旧设备的访问系统、方法、装置及存储介质 |
CN111736887B (zh) * | 2020-05-06 | 2023-12-15 | 广东金赋科技股份有限公司 | 一种利旧设备的访问系统、方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
GB2482681A (en) | 2012-02-15 |
WO2012020252A1 (en) | 2012-02-16 |
GB201013362D0 (en) | 2010-09-22 |
GB2482681B (en) | 2013-01-09 |
CN103155016B (zh) | 2016-09-07 |
EP2603909A1 (en) | 2013-06-19 |
US9626876B2 (en) | 2017-04-18 |
US20120036503A1 (en) | 2012-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103155016A (zh) | 将新的子系统与现有计算架构进行集成 | |
CN108509185B (zh) | 用于任意软件逻辑建模的系统和方法 | |
CN102609248B (zh) | 一种基于mda的综合航空电子系统建模仿真平台 | |
CN1703703B (zh) | 用于检验用来命令装备特别是站场装备的铁路逻辑软件引擎的设备和方法 | |
US8881094B2 (en) | Container-based architecture for simulation of entities in a time domain | |
CN107041158A (zh) | 用于模块化反射的限制性访问控制 | |
CN102216931A (zh) | 用于模拟飞行器数据处理系统的方法和装置 | |
CN105159670A (zh) | 一种通用座舱显示控制系统软件开发框架 | |
CN102654765B (zh) | 物联网设备的控制方法、装置和物联网 | |
CN107871050B (zh) | 面向数据和面向对象的混合建模方法及存储介质 | |
CN109116315A (zh) | 一种通用雷达航电仿真系统 | |
CN104331530A (zh) | 一种基于xml描述的电子战视景仿真平台及工作方法 | |
US20090119310A1 (en) | Saving and restarting discrete event simulations | |
US20030220987A1 (en) | System and method with environment memory for input/output configuration | |
CN103914288A (zh) | 判断控件状态的方法 | |
CN111651190B (zh) | 一种基于多维融合元素的发射控制软件动态装配方法 | |
US7171656B2 (en) | Generic embedded application technology architecture | |
CN114707242A (zh) | 一种通用的机载数据总线监控及测试软件框架设计方法 | |
CN107491308A (zh) | 利用脚本及插件快速定制多点定位监控系统的系统及方法 | |
CN106897120A (zh) | 双层动态分布式仿真平台 | |
CN107215479B (zh) | 一种飞行模拟器通用数据处理框架及其构建方法 | |
Mehlitz et al. | Analyzing airspace data with race | |
US9015653B2 (en) | Aeronautical software application development workbench comprising a structured functional description language | |
CN109947407A (zh) | 一种数据获取方法及装置 | |
US20090199205A1 (en) | Configurable graphics virtual machine based display system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160907 Termination date: 20200809 |
|
CF01 | Termination of patent right due to non-payment of annual fee |