gpt4 book ai didi

java - Rinsim:添加除 Parcel、Depot 或 Vehicle 之外的另一个 PDPObject

转载 作者:太空宇宙 更新时间:2023-11-04 10:27:45 27 4
gpt4 key购买 nike

我们希望添加一个 ConnectionAgent 来监视与 PDPRoadModel 的特定连接,以支持预留。但是,这些 ConnectionAgent 具有 CommDevice,需要一个位置才能发挥作用,这意味着设备必须是 PDPObject

如果我们将它们实现为Vehicle,它们可能会与现有车辆发生碰撞,而我们仍然想模拟碰撞,所以这是不可能的。如果我们将它们实现为 Parcel,它们会显示在网格上,从而覆盖实际的 Parcel,这是我们试图避免的情况。

由于 PDPType 对象受到保护,我们无法实现新的 PDPType,这意味着我们目前无法正确实现 ConnectionAgent。

最佳答案

您可以通过不将 ConnectionAgent 作为物理实体添加到模型中,而将其作为具有特定位置的虚拟通信实体来解决 PDPRoadModel 的限制。例如,代理可以类似地实现:

public class ConnectionAgent implements CommUser {
final Point position;

public ConnectionAgent(Connection<LengthData> c) {
position = Point.centroid(asList(c.from(), c.to()));
}

@Override
public Optional<Point> getPosition() {
return Optional.of(position);
}

@Override
public void setCommDevice(CommDeviceBuilder builder) {}
}

如果您希望每个连接都有一个代理,您只需循环图中的连接,然后创建 ConnectionAgent 并将其添加到模拟器中。

关于java - Rinsim:添加除 Parcel、Depot 或 Vehicle 之外的另一个 PDPObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50344247/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com