当前位置: 首页 > news >正文

网站怎么做的精致一点手机网站建设系统

网站怎么做的精致一点,手机网站建设系统,wordpress首页怎么进入,godaddy服务器做网站OpenTCS中的任务分派器router详解 1. 引言2. 路由器(router)2.1 代价计算函数#xff08;Cost functions#xff09;2.2 2.1 Routing groups2.1 默认的停车位置选择2.2 可选停车位置属性2.3 默认的充电位置选择2.4 即时运输订单分配 3. 默认任务分派器的配置项4. 参考资料与源… OpenTCS中的任务分派器router详解 1. 引言2. 路由器(router)2.1 代价计算函数Cost functions2.2 2.1 Routing groups2.1 默认的停车位置选择2.2 可选停车位置属性2.3 默认的充电位置选择2.4 即时运输订单分配 3. 默认任务分派器的配置项4. 参考资料与源码 1. 引言 openTCS是一项著名的开源运输控制系统我在之前的文章中对该系统也做了初步介绍 开源AGV调度系统 OpenTCS 5.4 开发环境配置与编译运行开源AGV调度系统OpenTCS中的任务分派器(dispatcher)详解 2. 路由器(router) openTCS中默认的任务路由器Default router是openTCS内置的重要策略模块当然也是允许用户自定义和替换的。 默认路由器会在行驶路线上找到从一点到另一点消耗成本最低的路线。通过使用Dijkstra算法的实现来实现。它考虑已经被锁定的路径但不考虑其他车辆的位置或被假定的未来行为。因此它不会绕过速度较慢或停在路上的车辆。 2.1 代价计算函数Cost functions 可用于评估驾驶过程中路径的成本函数可以通过配置进行选择。以下成本函数/配置选项可用 DISTANCE (default):路由成本等同于路径长度 TRAVELTIME路由成本的计算是以在路径上行驶的预期时间即路径长度/车辆允许的最大速度 EXPLICIT_PROPERTIES路径上行驶车辆的路由成本通过以下两个带键的路径属性中获取 tcs:routingCostForward and tcs:routingCostReverse。 HOPS:模型中每条路径的路由成本为1得到的路由代价最小路径/点被选中。 2.2 2.1 Routing groups 计算车辆的路径时对工厂中的不同车辆以不同的方式处理是可以的如果车辆有不同的特点并且实际上路径行驶有不同的最佳路线那么这是可取的。 为了实现这一点模型中的路径或所用的成本函数需要反映出来这种差异。默认情况下不会这样做因为默认路由器为所有的车辆计算路径同样的方式除非另有指示。 要让路由器知道它应该单独计算车辆的路由可以将键tcs:routingGroup的属性设置为任意字符串。(具有相同值集的车辆共享相同的路由表空字符串为所有车辆的默认值。) 2.1 默认的停车位置选择 当一辆小车被派往停车点时默认选择最接近依据路由且未被占用的停车点。可以通过设置以下关键属性来给车辆分配固定的位置。 tcs:preferredParkingPosition:模型中的点名。如果此停车点已被占用则车辆选择附近距离最近的停车点代替。tcs:assignedParkingPosition:模型中的点名。如果此停车点已被占用则车辆不会前往到其他停车点而是保持原地不动。 assignedParkingPosition优先级高于preferredParkingPosition。 2.2 可选停车位置属性 停车位置的优先级是可以明确的车辆也可以按照一种新的停车序列进行重新停车操作。例如将车辆停放在运输订单频繁的第一目的地附近的位置。 要给停车点设置一个优先级可以用tcs:parkingPositionPriority键设置一个属性在点上。该属性的值应为十进制整数值越小则会导致停车位的优先级更高。 1.3. Default recharging location selection 2.3 默认的充电位置选择 当车辆被派往充电位置时默认选择最接近依据路由且未被占用的充电位置。也可通过为以下键设置属性来给车辆分配固定位置 preferredRechargeLocation如果此充电位置已被占用则选择附近距离最近的充电位置。assignedRechargeLocation如果此充电位置已被选择则车辆不会被派往到其他充电位置。 assignedRechargeLocation优先级高于preferredRechargeLocation。 2.4 即时运输订单分配 系统除了根据默认的流程和规则分配运输订单外还可以显式分配运输订单(即时)。运输订单的即时分配支持具有预期车辆的运输订单。在这样的情况下运输订单及其预期车辆通常处于可能进行分配的状态但在常规调度程序流中被某些过滤条件阻止因此采取这种方法将会很有用。 Although the immediate assignment of transport orders bypasses some of the filter criteria in the regular dispatcher flow, it works only in specific situations. Regarding the transport order’s state: 尽管传输订单的即时分配绕过了常规调度流程中的一些过滤条件但它只在特定情况下起作用。考虑运输订单的状态: 运输订单的状态必须是可指派的DISPATCHABLE。运输订单不能是订单序列的一部分。必须设置运输订单的预定车辆。 至于(预定)车辆的状态: 车辆的处理状态必须为IDLE。车辆状态必须为IDLE或CHARGING。车辆的集成级别必须是TO_BE_UTILIZED。车辆必须被报告在已知位置。车辆不得处理订单序列。 除了运输订单和预定车辆的各自状态之外分派器可能还有其他特定的原因来拒绝即时分配。 3. 默认任务分派器的配置项 默认任务分派器提供以下配置项实现可配置. defaultdispatcher.orderCandidatePriorities Type: Comma-separated list of strings 逗号分隔的字符串列表Trigger for changes to be applied: on application start 触发要应用的更改:在应用程序启动时Description: Keys by which to prioritize transport order candidates for assignment. Possible values:BY_AGE: Sort by transport order age, oldest first.BY_DEADLINE: Sort by transport order deadline, most urgent first.DEADLINE_AT_RISK_FIRST: Sort orders with deadlines at risk first.BY_COMPLETE_ROUTING_COSTS: Sort by complete routing costs, lowest first.BY_INITIAL_ROUTING_COSTS: Sort by routing costs for the first destination.BY_ORDER_NAME: Sort by transport order name, lexicographically. defaultdispatcher.orderPriorities Type: Comma-separated list of stringsTrigger for changes to be applied: on application startDescription: Keys by which to prioritize transport orders for assignment. Possible values: BY_AGE: Sort by age, oldest first. BY_DEADLINE: Sort by deadline, most urgent first. DEADLINE_AT_RISK_FIRST: Sort orders with deadlines at risk first. BY_NAME: Sort by name, lexicographically. defaultdispatcher.vehicleCandidatePriorities Type: Comma-separated list of stringsTrigger for changes to be applied: on application startDescription: Keys by which to prioritize vehicle candidates for assignment. Possible values: BY_ENERGY_LEVEL: Sort by energy level of the vehicle, highest first. IDLE_FIRST: Sort vehicles with state IDLE first. BY_COMPLETE_ROUTING_COSTS: Sort by complete routing costs, lowest first. BY_INITIAL_ROUTING_COSTS: Sort by routing costs for the first destination. BY_VEHICLE_NAME: Sort by vehicle name, lexicographically. defaultdispatcher.vehiclePriorities Type: Comma-separated list of stringsTrigger for changes to be applied: on application startDescription: Keys by which to prioritize vehicles for assignment. Possible values: BY_ENERGY_LEVEL: Sort by energy level, highest first. IDLE_FIRST: Sort vehicles with state IDLE first. BY_NAME: Sort by name, lexicographically. defaultdispatcher.deadlineAtRiskPeriod Type: Integer Trigger for changes to be applied: on application start Description: The time window (in ms) before its deadline in which an order becomes urgent. defaultdispatcher.assignRedundantOrders Type: BooleanTrigger for changes to be applied: instantlyDescription: Whether orders to the current position with no operation should be assigned. defaultdispatcher.dismissUnroutableTransportOrders Type: BooleanTrigger for changes to be applied: instantlyDescription: Whether unroutable incoming transport orders should be marked as UNROUTABLE. defaultdispatcher.reroutingImpossibleStrategy Type: StringTrigger for changes to be applied: instantlyDescription: The strategy to use when rerouting of a vehicle results in no route at all. The vehicle then continues to use the previous route in the configured way. Possible values: IGNORE_PATH_LOCKS: Stick to the previous route, ignoring path locks. PAUSE_IMMEDIATELY: Do not send further orders to the vehicle; wait for another rerouting opportunity. PAUSE_AT_PATH_LOCK: Send further orders to the vehicle only until it reaches a locked path; then wait for another rerouting opportunity. defaultdispatcher.parkIdleVehicles Type: BooleanTrigger for changes to be applied: instantlyDescription: Whether to automatically create parking orders for idle vehicles. defaultdispatcher.considerParkingPositionPriorities Type: BooleanTrigger for changes to be applied: instantlyDescription: Whether to consider parking position priorities when creating parking orders. defaultdispatcher.reparkVehiclesToHigherPriorityPositions Type: BooleanTrigger for changes to be applied: instantlyDescription: Whether to repark vehicles to parking positions with higher priorities. defaultdispatcher.rechargeIdleVehicles Type: BooleanTrigger for changes to be applied: instantlyDescription: Whether to automatically create recharge orders for idle vehicles. defaultdispatcher.keepRechargingUntilFullyCharged Type: BooleanTrigger for changes to be applied: instantlyDescription: Whether vehicles must be recharged until they are fully charged. If false, vehicle must only be recharged until sufficiently charged. defaultdispatcher.idleVehicleRedispatchingInterval Type: IntegerTrigger for changes to be applied: when/after plant model is loadedDescription: The interval between redispatching of vehicles. 4. 参考资料与源码 本文内容参考:官方文档 该模块源码位于: openTCS-Strategies-Default/src/main/java/org/opentcs/strategies/basic/dispatching/DefaultDispatcher.java,代码如下: public DefaultDispatcher(OrderReservationPool orderReservationPool,TransportOrderUtil transportOrderUtil,InternalVehicleService vehicleService,ApplicationEventBus EventSource eventSource,KernelExecutor ScheduledExecutorService kernelExecutor,FullDispatchTask fullDispatchTask,ProviderPeriodicVehicleRedispatchingTask periodicDispatchTaskProvider,DefaultDispatcherConfiguration configuration,RerouteUtil rerouteUtil,OrderAssigner orderAssigner,TransportOrderAssignmentChecker transportOrderAssignmentChecker) {this.orderReservationPool requireNonNull(orderReservationPool, orderReservationPool);this.transportOrderUtil requireNonNull(transportOrderUtil, transportOrderUtil);this.vehicleService requireNonNull(vehicleService, vehicleService);this.eventSource requireNonNull(eventSource, eventSource);this.kernelExecutor requireNonNull(kernelExecutor, kernelExecutor);this.fullDispatchTask requireNonNull(fullDispatchTask, fullDispatchTask);this.periodicDispatchTaskProvider requireNonNull(periodicDispatchTaskProvider,periodicDispatchTaskProvider);this.configuration requireNonNull(configuration, configuration);this.rerouteUtil requireNonNull(rerouteUtil, rerouteUtil);this.orderAssigner requireNonNull(orderAssigner, orderAssigner);this.transportOrderAssignmentChecker requireNonNull(transportOrderAssignmentChecker,transportOrderAssignmentChecker);}Overridepublic void initialize() {if (isInitialized()) {return;}LOG.debug(Initializing...);transportOrderUtil.initialize();orderReservationPool.clear();fullDispatchTask.initialize();implicitDispatchTrigger new ImplicitDispatchTrigger(this);eventSource.subscribe(implicitDispatchTrigger);LOG.debug(Scheduling periodic dispatch task with interval of {} ms...,configuration.idleVehicleRedispatchingInterval());periodicDispatchTaskFuture kernelExecutor.scheduleAtFixedRate(periodicDispatchTaskProvider.get(),configuration.idleVehicleRedispatchingInterval(),configuration.idleVehicleRedispatchingInterval(),TimeUnit.MILLISECONDS);initialized true;}Overridepublic void terminate() {if (!isInitialized()) {return;}LOG.debug(Terminating...);periodicDispatchTaskFuture.cancel(false);periodicDispatchTaskFuture null;eventSource.unsubscribe(implicitDispatchTrigger);implicitDispatchTrigger null;fullDispatchTask.terminate();initialized false;}Overridepublic boolean isInitialized() {return initialized;}Overridepublic void dispatch() {LOG.debug(Scheduling dispatch task...);// Schedule this to be executed by the kernel executor.kernelExecutor.submit(fullDispatchTask);}Overridepublic void withdrawOrder(TransportOrder order, boolean immediateAbort) {requireNonNull(order, order);checkState(isInitialized(), Not initialized);// Schedule this to be executed by the kernel executor.kernelExecutor.submit(() - {LOG.debug(Scheduling withdrawal for transport order {} (immediate{})...,order.getName(),immediateAbort);transportOrderUtil.abortOrder(order, immediateAbort);});}Overridepublic void withdrawOrder(Vehicle vehicle, boolean immediateAbort) {requireNonNull(vehicle, vehicle);checkState(isInitialized(), Not initialized);// Schedule this to be executed by the kernel executor.kernelExecutor.submit(() - {LOG.debug(Scheduling withdrawal for vehicle {} (immediate{})...,vehicle.getName(),immediateAbort);transportOrderUtil.abortOrder(vehicle, immediateAbort);});}Overridepublic void topologyChanged() {if (configuration.rerouteOnTopologyChanges()) {LOG.debug(Scheduling reroute task...);kernelExecutor.submit(() - {LOG.info(Rerouting all vehicles due to topology change...);rerouteUtil.reroute(vehicleService.fetchObjects(Vehicle.class), ReroutingType.REGULAR);});}}Overridepublic void reroute(Vehicle vehicle, ReroutingType reroutingType) {LOG.debug(Scheduling reroute task...);kernelExecutor.submit(() - {LOG.info(Rerouting vehicle due to explicit request: {} ({}, current position {})...,vehicle.getName(),reroutingType,vehicle.getCurrentPosition() null ? null : vehicle.getCurrentPosition().getName());rerouteUtil.reroute(vehicle, reroutingType);});}Overridepublic void assignNow(TransportOrder transportOrder)throws TransportOrderAssignmentException {requireNonNull(transportOrder, transportOrder);TransportOrderAssignmentVeto assignmentVeto transportOrderAssignmentChecker.checkTransportOrderAssignment(transportOrder);if (assignmentVeto ! TransportOrderAssignmentVeto.NO_VETO) {throw new TransportOrderAssignmentException(transportOrder.getReference(),transportOrder.getIntendedVehicle(),assignmentVeto);}orderAssigner.tryAssignments(List.of(vehicleService.fetchObject(Vehicle.class, transportOrder.getIntendedVehicle())),List.of(transportOrder));} }
文章转载自:
http://www.morning.lhptg.cn.gov.cn.lhptg.cn
http://www.morning.ghxtk.cn.gov.cn.ghxtk.cn
http://www.morning.wqgr.cn.gov.cn.wqgr.cn
http://www.morning.prjns.cn.gov.cn.prjns.cn
http://www.morning.tqsgt.cn.gov.cn.tqsgt.cn
http://www.morning.lhptg.cn.gov.cn.lhptg.cn
http://www.morning.hqlnp.cn.gov.cn.hqlnp.cn
http://www.morning.jggr.cn.gov.cn.jggr.cn
http://www.morning.jphxt.cn.gov.cn.jphxt.cn
http://www.morning.hrnrx.cn.gov.cn.hrnrx.cn
http://www.morning.zdhnm.cn.gov.cn.zdhnm.cn
http://www.morning.gqfbl.cn.gov.cn.gqfbl.cn
http://www.morning.jgykx.cn.gov.cn.jgykx.cn
http://www.morning.lmrcq.cn.gov.cn.lmrcq.cn
http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn
http://www.morning.yjknk.cn.gov.cn.yjknk.cn
http://www.morning.lnbcx.cn.gov.cn.lnbcx.cn
http://www.morning.nkwgy.cn.gov.cn.nkwgy.cn
http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn
http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn
http://www.morning.mnbcj.cn.gov.cn.mnbcj.cn
http://www.morning.monstercide.com.gov.cn.monstercide.com
http://www.morning.wlnr.cn.gov.cn.wlnr.cn
http://www.morning.zwsgl.cn.gov.cn.zwsgl.cn
http://www.morning.gfqjf.cn.gov.cn.gfqjf.cn
http://www.morning.rzysq.cn.gov.cn.rzysq.cn
http://www.morning.lwnb.cn.gov.cn.lwnb.cn
http://www.morning.mpscg.cn.gov.cn.mpscg.cn
http://www.morning.nqpxs.cn.gov.cn.nqpxs.cn
http://www.morning.kpcky.cn.gov.cn.kpcky.cn
http://www.morning.sfqtf.cn.gov.cn.sfqtf.cn
http://www.morning.wjxyg.cn.gov.cn.wjxyg.cn
http://www.morning.xrct.cn.gov.cn.xrct.cn
http://www.morning.dlgjdg.cn.gov.cn.dlgjdg.cn
http://www.morning.zqmdn.cn.gov.cn.zqmdn.cn
http://www.morning.mtdfn.cn.gov.cn.mtdfn.cn
http://www.morning.daidudu.com.gov.cn.daidudu.com
http://www.morning.glcgy.cn.gov.cn.glcgy.cn
http://www.morning.dmzmy.cn.gov.cn.dmzmy.cn
http://www.morning.kwrzg.cn.gov.cn.kwrzg.cn
http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn
http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn
http://www.morning.wjqbr.cn.gov.cn.wjqbr.cn
http://www.morning.mwmxs.cn.gov.cn.mwmxs.cn
http://www.morning.fwkpp.cn.gov.cn.fwkpp.cn
http://www.morning.nmfml.cn.gov.cn.nmfml.cn
http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn
http://www.morning.hrjrt.cn.gov.cn.hrjrt.cn
http://www.morning.jlboyuan.cn.gov.cn.jlboyuan.cn
http://www.morning.sqlh.cn.gov.cn.sqlh.cn
http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn
http://www.morning.pznqt.cn.gov.cn.pznqt.cn
http://www.morning.nmwgd.cn.gov.cn.nmwgd.cn
http://www.morning.wtcyz.cn.gov.cn.wtcyz.cn
http://www.morning.lmzpk.cn.gov.cn.lmzpk.cn
http://www.morning.hbnwr.cn.gov.cn.hbnwr.cn
http://www.morning.jzykw.cn.gov.cn.jzykw.cn
http://www.morning.kqglp.cn.gov.cn.kqglp.cn
http://www.morning.bpmdr.cn.gov.cn.bpmdr.cn
http://www.morning.gfrtg.com.gov.cn.gfrtg.com
http://www.morning.2d1bl5.cn.gov.cn.2d1bl5.cn
http://www.morning.gyqnp.cn.gov.cn.gyqnp.cn
http://www.morning.pqwrg.cn.gov.cn.pqwrg.cn
http://www.morning.cjqcx.cn.gov.cn.cjqcx.cn
http://www.morning.nhzxr.cn.gov.cn.nhzxr.cn
http://www.morning.npfrj.cn.gov.cn.npfrj.cn
http://www.morning.nkiqixr.cn.gov.cn.nkiqixr.cn
http://www.morning.lwhsp.cn.gov.cn.lwhsp.cn
http://www.morning.qtkfp.cn.gov.cn.qtkfp.cn
http://www.morning.kncrc.cn.gov.cn.kncrc.cn
http://www.morning.xcfmh.cn.gov.cn.xcfmh.cn
http://www.morning.prkdl.cn.gov.cn.prkdl.cn
http://www.morning.dschz.cn.gov.cn.dschz.cn
http://www.morning.smmby.cn.gov.cn.smmby.cn
http://www.morning.kcrw.cn.gov.cn.kcrw.cn
http://www.morning.zcqbx.cn.gov.cn.zcqbx.cn
http://www.morning.knpbr.cn.gov.cn.knpbr.cn
http://www.morning.ncrk.cn.gov.cn.ncrk.cn
http://www.morning.bwttp.cn.gov.cn.bwttp.cn
http://www.morning.qhjkz.cn.gov.cn.qhjkz.cn
http://www.tj-hxxt.cn/news/275545.html

相关文章:

  • 虚拟主机建站教程wordpress video插件
  • 设计师网站使用不了网站备案 个人
  • 可以做app的网站企业网站建设 信息安全
  • 网站建设的目的及功能国外做的比较好的网站
  • 网站上传到虚拟主机wordpress怎么实现会员登录
  • 温州文成网站建设网站开发项目实训报告
  • 网站做那个效果好网站建设服务合同 律师
  • 做网站客户改来改去wordpress视频不全屏播放
  • 厦门网站建设建站中心网页制作的原则是什么
  • 网站开发流程包括创新创业大赛项目计划书
  • 建网站自己做服务器小地方做外卖网站怎样
  • 怎么做网站推广最有效做pc端网站案例
  • 家用电脑做网站后台做网站多少钱西宁君博相约
  • 网站建设玖金手指排名15枣庄专业做网站
  • 网站建设拓扑图网络营销的专业知识
  • 网站开发前端与后端区别桂平网络推广
  • 网站 mvc 设计wordpress 链接提交表单
  • 农村自建房室内装修设计效果图泰州seo
  • 怎么建立图片的网站虚拟主机app
  • 百度网站权重查询建设网站的体会
  • wordpress利用DW编辑宁波seo网站排名优化公司
  • 网站开发销售提成联想网站建设摘要
  • 怎么做照片网站zhi做网站
  • 找网站做任务领q币免费室内装修3d设计软件
  • 网站备案时网站没有内容可以深圳网站建设设计科技有限公司
  • 淘宝网站建设分析第三方网络营销平台有哪些
  • 杭州做网站小程序多少钱seo排名咨询
  • 做面膜的网站抖音直播间挂人气自助网站
  • 西安印象网站建设企业网站建设 属于什么费用
  • 普陀企业网站建设公司管理系统软件