代码之家  ›  专栏  ›  技术社区  ›  Jepessen

HLA:FOM对SOM

  •  0
  • Jepessen  · 技术社区  · 5 年前

    在联邦中,交换的数据是在FOM(联邦对象模型)中定义的,它包含所有必要的东西(类、交互等等)。没关系。

    我还读到,每个联邦成员都需要发布自己的SOM(仿真对象模型),这是对联邦成员发布和订阅的数据的描述。

    我的问题是:

    • 谁需要加载FOM文件?每个联邦成员?必须从RTI管理器中读取?
    • 谁读联邦成员发来的SOM?
    • SOM可以包含FOM中没有定义的类、交互等等?
    • 如果每个联邦成员都发布与SOM一起使用的对象的数据,为什么我们需要FOM?

    抱歉,如果这些问题很简单,但我对这一点还不熟悉,即使我了解HLA的编程方面,这些问题背后的逻辑对我来说也有点模糊(也许我不完美的英语也在其中)。

    0 回复  |  直到 5 年前
        1
  •  1
  •   ante    5 年前

    伊瑟比乌斯描述了FOM和SOM之间的区别。

    我已对你的直接问题作了一些答复。

    RTI使用FOM文件。它 必须提供

    • 如果FOM已经可用,为什么联邦成员需要发布SOM?如果FOM定义了所有可以交换的结构,那么SOM复制了FOM中只有联邦成员才需要的一个子部分?

    在运行时,当您的联邦成员被执行时,不需要SOM。SOM可以看作描述模拟器功能的文档。

    • 谁读联邦成员发来的SOM?

    • SOM中存储了哪些数据?FOM中定义了一些结构的深层副本,FOM中有指向它们的链接?

    • SOM可以包含FOM中没有定义的类、交互等等?

    是的,但是它们不能在运行时使用,除非它们被添加到FOM中。

    • 如果每个联邦成员都发布与SOM一起使用的对象的数据,为什么我们需要FOM?

    好问题。通常是相反的,联邦成员在运行时提供一个FOM,并且没有SOM来描述联邦成员。

        2
  •  -1
  •   Yserbius    5 年前

    对于迟交的答复,我深表歉意,希望这仍然适用。我假设您使用的是HLA 1.3或HLA 1516,因为hla1516-2010/evolution中的SOM一词已被FOM模块取代。

    1. 第一个创建联邦的联邦成员使用FOM文件(1.3中的Lisp变体和后续版本中的XML)创建联邦。然后,该FOM对加入的每个新联邦成员都可用。各个联邦成员不需要有FOM文件的副本。
    2. 你的任何软件实际上都不需要SOM。它只是FOM的一个子集。它的主要用途是进行符合性检查和验证,以便在部署联合之前,验证每个单独的联合成员可以和不能使用的对象和交互。运行联合时,可以忽略SOM(除非运行某种动态的多用途联合体,其活动可以通过交换SOM而不重新编译而修改)。
    推荐文章