我开始研究如何在正在开发的项目中实施HLA,有些事情我不太了解。
在联盟中,交换的数据在FOM(联盟对象模型)中定义,该模型包含所有必要的内容(类,交互等)。没关系。
我还阅读到每个联盟都需要发布自己的SOM(模拟对象模型),这是对联盟发布并为其订阅的数据的描述。
我的问题是:
很抱歉,如果它们只是简单的问题,但是我对此并不陌生,即使我了解HLA的编程方面,这些东西背后的逻辑对我来说还是有点晦涩(也许我不太熟练的英语也参与其中) )。
答案 0 :(得分:1)
Yserbius描述了FOM和SOM之间的区别。
我已经对您的直接问题添加了一些回复。
- 谁需要加载FOM文件?每个联邦?必须从RTI Manager中读取吗?
RTI使用FOM文件。创建联盟时,必须提供。只有第一个联盟需要提供它。
- 如果FOM已经可用,为什么联邦需要发布SOM?如果FOM定义了可以交换的所有结构,那么SOM会复制FOM的子部分,而联邦成员只需要它?
在执行联盟时,在运行时不需要SOM。 SOM可以看作是描述模拟器功能的文档。
- 谁读取了联盟发送的SOM?
运行时不需要SOM。
- 哪些数据存储在SOM中?在FOM中定义了一些结构的深层副本,在FOM中有指向它们的链接吗?
SOM是FOM的子集。
- SOM可以包含FOM中未定义的类,交互等吗?
是的,但是除非将它们添加到FOM中,否则它们不能在运行时使用。
- 如果每个联盟发布有关SOM使用的对象的数据,为什么我们需要FOM?
好问题。通常是相反的方式,联邦在运行时提供FOM,并且不存在描述该联邦的SOM。
答案 1 :(得分:0)
很抱歉,我的回答很晚,希望仍然适用。我假设您使用的是HLA 1.3或HLA 1516,因为HLA 1516-2010 / Evolved中的术语SOM已被FOM模块取代。