CreateEntity PDU如何工作?

时间:2016-12-29 13:08:52

标签: simulation distributed-system dis

我正在尝试为一个我想到的小项目学习DIS。

基本上我有一个运行场景的进程,它可以接收用于创建和删除实体的外部命令。

我有另一个进程,一个可以向场景进程发送命令的地图,我有两种情况:

  • 映射进程发送用于创建新实体的命令,方案进程接收它,并创建新实体。
  • 映射过程可以创建没有外部命令的新实体(即由内部场景逻辑触发)。应在DIS。
  • 中通知此新实体

DIS CreateEntity PDU包含以下字段:

  • OriginatingEntityID
  • ReceivingEntityID

地图流程应在此处插入哪些数据才能发送CreteEntity命令?如何指定我想创建哪种类型的玩家(F15,士兵)?

在第二种情况下,如何在没有外部命令的情况下通知新玩家?

在第二种情况下

1 个答案:

答案 0 :(得分:1)

这一切都取决于你的模拟设计。

SM(模拟管理器 - 您必须创建)将创建EntityID,您将在CreateEntity PDU中使用这些ID。您还可以对它们进行硬编码或创建自己的自定义算法来生成它们。 DIS本身并没有定义EntityIDs生成机制,但它确实要求每个EntityID都是唯一的。

话虽如此,DIS要求所有实体至少每5秒更新一次(对于DIS v7来说不是那么真实,因为现在可以按实体管理该延迟)。

我所知道的大多数DIS兼容软件都会监控EntityState PDU以检测新对象。如果一个物体没有被发现超过5秒,你可以认为它已被摧毁。

希望这有帮助。