- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们希望添加一个 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/
如何从 Depot 中移除 Parcel 对象,以便我们可以用 Vehicle 拾取它?有一个名为 addParcelIn() 的方法,但我们找不到它的对应方法。谢谢! 最佳答案 当前版本 (RinS
是否可以更改 CommDevice 的范围?我们希望以较小的范围广播一条消息,并在没有收到响应时逐渐扩大范围。 最佳答案 CommDevice 的范围旨在模拟通信设备的物理限制。当前的实现假设这些限制
我尝试使用基于 .dot 文件的 RoadModel 计算到送货位置的距离。但是,使用 Point.distance(currPos, destPos) 计算的距离给出的结果似乎不合适。我将其与 Mo
我正在尝试导入 RinSim 3.2.2 来自使用 IntelliJ IDEA 的 Maven。我正在运行 Windows 8.1 x64。以下是我的 POM 文件: 4.0.0
我们目前在 RinSim 上运行时遇到仓库 AGV 问题。有时在执行过程中我们会遇到以下错误: Exception in thread "main" java.lang.NullPointerExce
我们希望添加一个 ConnectionAgent 来监视与 PDPRoadModel 的特定连接,以支持预留。但是,这些 ConnectionAgent 具有 CommDevice,需要一个位置才能发
我是一名优秀的程序员,十分优秀!