示例#1
0
 def _findNextTarget(self, wait):
     minTarget = "z"
     minDownstreamTarget = "z"
     minSource = "z"
     minDownstreamSource = "z"
     edge = vehicleControl.getPosition(self.id)
     if edge == "cyberin":
         edge = "cyber"
     for task in self.running:
         if task.target < minTarget:
             minTarget = task.target
         if task.target < minDownstreamTarget and task.target > edge:
             minDownstreamTarget = task.target
     for task in self.tasks[:vehicleControl.getCapacity() - self.load]:
         if task.source < minSource:
             minSource = task.source
         if task.source < minDownstreamSource and task.source > edge:
             minDownstreamSource = task.source
     if minDownstreamTarget != "z":
         minTarget = minDownstreamTarget
     elif minDownstreamSource < minTarget:
         minTarget = minDownstreamSource
     elif minTarget < edge and minSource < minTarget:
         minTarget = minSource
     if minTarget == "z":
         minTarget = "cyberin"
     if minTarget != vehicleControl.getPosition(self.id):
         vehicleControl.leaveStop(self.id, delay=wait)
         vehicleControl.stopAt(self.id, minTarget)
 def _findNextTarget(self, wait):
     minTarget = "z"
     minDownstreamTarget = "z"
     minSource = "z"
     minDownstreamSource = "z"
     edge = vehicleControl.getPosition(self.id)
     if edge == "cyberin":
         edge = "cyber"
     for task in self.running:
         if task.target < minTarget:
             minTarget = task.target
         if task.target < minDownstreamTarget and task.target > edge:
             minDownstreamTarget = task.target
     for task in self.tasks[:vehicleControl.getCapacity() - self.load]:
         if task.source < minSource:
             minSource = task.source
         if task.source < minDownstreamSource and task.source > edge:
             minDownstreamSource = task.source
     if minDownstreamTarget != "z":
         minTarget = minDownstreamTarget 
     elif minDownstreamSource < minTarget:
         minTarget = minDownstreamSource
     elif minTarget < edge and minSource < minTarget:
         minTarget = minSource
     if minTarget == "z":
         minTarget = "cyberin"
     if minTarget != vehicleControl.getPosition(self.id):
         vehicleControl.leaveStop(self.id, delay=wait)
         vehicleControl.stopAt(self.id, minTarget)