Skip to main content
jBEAM Logo

jBEAM 架构

jBEAM基于清晰的部件结构,并能在不同的环境中使用。

jBEAM architecture operating system independence


jBEAM可在不同的操作系统中使用。

jBEAM软件是以面向对象设计,并包含生产者-消费者结构。用户信息存储在数据对象中,事件把状态的改变通知消费者。

您有一个测量数据的文件。比如,数据文件以DIAdem格式为例。在jBEAM里,您可创建DIAdem导入类的一个新的实例。类包含所有信息,DIAdem文件如何读写,以及所有信息,比如如何在jBEAM里生成数据对象。DIAdem导入在这个例子中生成两个数据对象,分别是双精度和浮点型。因此,数据导入是数据对象的“生产者”。

一个数据消费者的例子,我们创建一个通用2D图表对象。在图表中,我们定义一个“XY图表”,它的输入是数据对象1,即DIAdem文件里的测量值自动以曲线显示。第二个数据对象可以第二条曲线显示在同一个“XY”图表中,也可以显示在第二个独立的XY图表中。

jBEAM architecture file import
例子:数据导入

自动更新

现在,如果DIAdem导入实例被修改,一个含导入参数的对话框自动打开。一个参数是文件本身。如果我们选择一个不同的DIAdem文件,并确认,则下面的流程自动处理:

  1. 新文件的内容被加载,并存储在数据对象中。如果通道名称或类型匹配,现有的将被新数据填充。
  2. 由事件通知数据对象和它的消费者(这个例子对应图表对象)内容已更新。
  3. 消费者响应这些信息。对应这个例子,图表曲线将重新画。

因而,用户可一直确信目前jBEAM显示的是正确的,并无调用任何序列。

分支和计算

数据导入带计算
数据导入带计算

现在,读入的测量通道需要转换或进行FFT分析,我们定义“公式编辑器”类。公式本身是实例的参数,并可在编辑器中输入。

该计算既是消费者又是生产者。它消费数据对象1“Data Object1”,并生成数据对象3“Data Object 3”。在数据文件改变时同样会自动更新:

  1. 新文件内容被加载,并存储在数据对象1和2中。如果通道名称或类型匹配,现有的将被新数据填充。
  2. 由事件通知数据对象和它的消费者(这个例子对应计算和图表对象)内容已更新。
  3. 计算知道输入数据已更新,并对新的数据执行计算。数据对象3(Data Object 3)将更新通知XY图表组件。
  4. 现在是消费者响应这些信息。对应本例是图表曲线重新画。

外部CEA组件

jBEAM是ASAM-CEA兼容框架,可通过外部兼容ASAM-CEA标准的插入式组件进行扩展。

外部ASAM-CEA组件如同jBEAM内部组件方式工作。因为它们是编译的,所以处理速度极快。如果您想开发自定义的CEA组件,请联系AMS。我们将提供规范文档。

外部CEA组件
外部CEA组件

对象 – 架构: 类 – 实例

面向对象软件jBEAM允许直观的操作。不过,有一个陷进是用户不清楚类和实例之间的关系。

参考IT技术,每个导入,任何计算,每个图表对应一个类。这个类包括所有的逻辑,这对这些组件是非常重要的。例如通过菜单创建新的计算,这个类的实例将被通知。这个实例现在包含的参数可能和其它实例不同。例如,通过公式编辑器创建5个计算公式,这是对应同一个类的5个实例。这5个计算可以包含不同的参数,或者不同的输入通道,存储在不同的实例中。

如果用户进入公式编辑器菜单,一个新实例自动创建。对话框自动打开,实例可参数化。如果用户要修改这已存在的公式计算,必须通过“修改”回调已存在的实例。当回到公式编辑器菜单项,一个新的实例创建,用户可能会对参数化对话框感到惊奇,所有初始化设置已不见。

因此,如果需要对已存在的组件进行更改,您必须在已有实例中点击“修改”。