查看“使用手册 - 更多交管细节用法”的源代码
←
使用手册 - 更多交管细节用法
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
管理员
您可以查看和复制此页面的源代码。
== 1.必空点 == === 1.1 必空点概念 === 在Simple中,可以通过站点上mustFree的字段添加必空点,在id为1的必空点上添加mustFree:[2,3]代表当1号点被锁时,2、3号点不能被锁。 注意必空点为单向的概念,即1号点被锁,2、3不能被锁,但2、3被锁不影响1号点的上锁情况。 === 1.2 如何配置必空点 === # 可以通过在站点上添加mustFree字段来添加必空点。 # 可以通过点击”设置必空点“来添加。 [[文件:2c247231da7eee82f61394abfcdabd9.png|600x600像素]] [[文件:982cbb082b59f743ed46acfef0eb665.png|600x600像素]] 此外,路线可以设置sconflicts或conflicts,前者是行走某个路径和某个站点冲突,后者是两个路径不能同时行走。可以用于一些交管复杂的情况。 == 2.修改Simple项目属性 == Simple中项目属性如下图,其中含义在”MDCS参数表:Simple“中有叙述。 [[文件:755a68e08f05a3e843db325873a5d2c.png]] === 1. 搜索路线时允许终点和别的车的终点重合 === plan里加“forbid_cross”字段,设置为“true”。 (Search_AllowDestOnRoute为True:表示允许本次搜索路线的终点在别的车的路径上) === 2. 寻路时某个点需要经过多次 === 将Search_MaxVisitPerSite(每个站点最多的经过次数)和Search_MaxDupVisit(整条路径上最多重复经过多少个站点)改大一些。 '''3. 寻路时和交管相关的抛出异常:''' * DestinationSameException:搜索路径的终点和其他车相同。conflictedCars包含了冲突车的列表。 ** 可以使用“forbid_cross”来暂时允许,多用于要连续拼接多条路线的情况。但如果整条路线终点确实和其他车的终点重合,那么无法进行交管规划。 ** 可编辑终点为terminal点或sink点。 ** 若其他车具有escape,则不会冲突。 * DestinationOnRouteException:搜索路径的终点停在其他车的路径上。这个异常可能会在未来被移除。可设置参数Search_AllowDestOnRoute为true来屏蔽该异常。 ** 之所以抛该异常是因为这会导致:当前车在到达终点前,必须先等其他车经过终点后才能前往终点。 * DestinationBlockedException: 有车堵塞了该车前往终点的路径:这些车停在当前车去目标点的必经路径上或即将到达堵塞位置。conflictedCars包含了堵塞车的列表。 ** 若堵塞车的终点为terminal点或sink点,或设置有escape路径,那么可以防止该异常发生。 == 交管事件 == 用户程序可以监听交管事件。目前提供以下事件:<syntaxhighlight lang="c#" line="1"> public delegate void TrafficControlEvent(AbstractCar car, int siteId); public delegate void TrafficDeadLockEvent(AbstractCar[] loopingCar); public delegate bool TrafficControlBeforeLockCallback(AbstractCar car, int siteId); public static TrafficControlBeforeLockCallback BeforeLock; //在小车试图获取锁时调用:参数为哪个车试图获取哪个锁,返回true表示允许获取,返回false表示拒绝。 public static TrafficControlEvent OnLockAcquired; //在小车已拿到锁时调用:参数为哪个车获取了哪个锁 public static TrafficControlEvent AfterLeave; //在小车释放锁时调用:参数为哪个车释放了哪个锁 public static TrafficDeadLockEvent OnDeadLock; //在系统检测到死锁情况时调用。参数为发生了死锁的车辆。 </syntaxhighlight>其中业务程序中常用的事件主要是BeforeLock/AfterLeave事件,这个事件可以用于控制车辆的诸如排队充电、排队取货等行为。
返回
使用手册 - 更多交管细节用法
。
导航菜单
个人工具
中文(中国大陆)
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息