Package | Description |
---|---|
gui.entities.sectionEntities.trackEntities | |
simulator.scheduler |
Modifier and Type | Method and Description |
---|---|
StatusTraverseBlock |
Loop.traverseBlock(Train currTrain,
double arrivalTime,
double deptTime,
double startVelocity,
Link previousLink,
Link nextFastestLink,
double profileStartingMilePost,
SimulationInstance simulationInstance,
int nextReferenceLoopNumber)
Loop: StatusTraverseBlock traverseBlock((Train currTrain, double
arrivalTime, double deptTime, double startVelocity) 1) creates an
instance of the blockScheduler for this loop as the currentBlock and the
currTrain 2) goes to blockScheduler.traverseBlock(arrivalTime, deptTime,
startVelocity) (non-Javadoc)
|
StatusTraverseBlock |
Block.traverseBlock(Train train,
double arrivalTime,
double departureTime,
double startVelocity,
Link previousLink,
Link nextFastestLink,
double profileStartingMilePost,
SimulationInstance simulationInstance,
int nextReferenceLoopNumber) |
Modifier and Type | Class and Description |
---|---|
class |
StatusTraversePath |
Modifier and Type | Method and Description |
---|---|
StatusTraverseBlock |
BlockScheduler.computeEarliestFreeTimeSTP(Link previousLink,
Link nextLink,
int nFreeBlocksToBeTraversed,
double arrivalTime,
double departureTime,
double totalTimeTillEnd,
double startVelocity,
boolean linkPriorityIsNotOne,
double profileStartingMilePost,
int nextReferenceLoopNumber) |
StatusTraverseBlock |
BlockScheduler.handleDepTimeGreaterThanArrTime(double departureTime,
double arrivalTime,
double startVelocity,
Link previousLink,
Link nextFastestLink2,
double profileStartingMilePost,
int nextReferenceLoopNumber)
Handle the cases in which departure time is greater than the arrival time
|
StatusTraverseBlock |
BlockScheduler.handleRedSignal(double arrivalTime) |
StatusTraverseBlock |
BlockScheduler.handleSignalFailure(Link link,
double departureTime) |
StatusTraverseBlock |
BlockScheduler.reserveBlocksAndGetCurrentSTP(Link nextLink,
Link previousLink,
double tempDepartureTime,
RunTimeReturn runtimereturn,
int nFreeBlocksToBeTraversed,
double arrivalTime,
double totalTimeTillEnd,
int signal,
double profileStartingMilePost,
int nextReferenceLoopNumber)
Get the
StatusTraverseBlock for the current block if the
scheduling for the next block is successful. |
StatusTraverseBlock |
BlockScheduler.traverseBlock(double arrivalTime,
double departureTime,
double startVelocity,
Link previousLink,
Link nextFastestLink2,
double profileStartingMilePost,
int nextReferenceLoopNumber)
BlockScheduler: StatusTraverseBlock traverseBlock(arrivalTime, deptTime,
startVelocity) 1) if there is no next block it traverses the last block:
traverseLastBlock(arrivalTime, startVelocity) 2) if got a redSignal it
handles that with : handleRedSignal(arrivalTime); Then it calls the
getSortedLinks.
|
StatusTraverseBlock |
BlockScheduler.traverseLastBlock(double arrivalTime,
double startVelocity,
Link previousLink,
double profileStartingMilePost) |
StatusTraverseBlock |
BlockScheduler.traversePath(Link previousLink,
Link nextLink,
double arrivalTime,
double departureTime,
double startVelocity,
boolean linkPriorityIsNotOne,
int maxSignalAspectsToBeConsidered,
double profileStartingMilePost,
int nextReferenceLoopNumber)
1) It first finds what is the signal of the block for the train and the
arrival time by calling currentBlock.getSignal(currentTrain, noOfColor,
arrivalTime,currentTrain.direction); 2) It first tries to find the
running time required to traverse the path, by going to
currentBlock.getRunTimeSignal(currentTrain, j, arrivalTime,
startVelocity, !linkPriorityIsOne ? link.nextBlock.maximumPossibleSpeed :
0.0D); and setting that value in runTimeReturn 3) If the simulation is in
the signalFailureMode or if the linkPriority is one it resets the
runTimeReturn to a block whose starting milePost is the same but the
endMilePost is the actual endMilePost minus the warnerDistance.
|