JavaGenes, NASA Ames. Written largely by Al Globus

gov.nasa.javaGenes.EOSscheduling
Class AvailabilityTimeline

java.lang.Object
  extended bygov.nasa.javaGenes.EOSscheduling.Timeline
      extended bygov.nasa.javaGenes.EOSscheduling.AvailabilityTimeline
All Implemented Interfaces:
java.io.Serializable

public class AvailabilityTimeline
extends Timeline

when using duty cycle constraints, all task durations must fill the window to schedule. E.g., can't handle agile satellites

See Also:
Serialized Form

Field Summary
protected  DutyCycleConstraint[] dutyCycle
           
protected  boolean[] dutyCycleMask
           
 
Fields inherited from class gov.nasa.javaGenes.EOSscheduling.Timeline
debug, horizon, nodeArray, nodeFactory, nodeList, NOT_SCHEDULED
 
Constructor Summary
AvailabilityTimeline()
           
AvailabilityTimeline(Horizon inHorizon, int inTypicalTaskDuration)
           
 
Method Summary
 void assertIsValid()
           
protected  void deleteNodeAndNextNode(Node node)
           
protected  int findEarliest(int start, int end, int duration)
           
 int findEarliest(int start, int end, SchedulingData schedulingData)
           
 boolean fits(int start, int duration)
           
 boolean fits(int start, SchedulingData schedulingData)
           
 boolean fitsDutyCycles()
           
protected  boolean fitsDutyCycles(AvailableNode node, int startTime, int duration)
          is this time and duration compatible with the duty cylce constraint (if any).
 AvailableNode getAvailableNodeAtOrAfter(int atTime)
           
 Node getFirstNode()
           
 Node getInitialNodeForNodeArray()
           
 int[] getStartTimesArray()
          for test and debug
 void initialize()
           
protected  void insertAt(int startTime, int endTime)
          assumes the insertion is legal
 void insertAt(int start, SchedulingData schedulingData)
          assumes the insertion is legal
protected  void insertAt(Node node, int startTime, int endTime)
          assumes the insertion is legal
 int insertEarliest(int start, int end, int duration)
          This will happen a lot and must be very fast.
 void printToTsd(java.lang.String filename)
           
 void setDutyCycles(DutyCycleConstraint[] inDutyCycles)
           
 void setUpNodeList()
           
 
Methods inherited from class gov.nasa.javaGenes.EOSscheduling.Timeline
getEnd, getHorizon, getNodeAtTime, getStart, horizonIsValid, includes, includes, initializeAllTimelines
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

dutyCycle

protected DutyCycleConstraint[] dutyCycle

dutyCycleMask

protected boolean[] dutyCycleMask
Constructor Detail

AvailabilityTimeline

public AvailabilityTimeline()

AvailabilityTimeline

public AvailabilityTimeline(Horizon inHorizon,
                            int inTypicalTaskDuration)
Method Detail

initialize

public void initialize()
Overrides:
initialize in class Timeline

setDutyCycles

public void setDutyCycles(DutyCycleConstraint[] inDutyCycles)

getInitialNodeForNodeArray

public Node getInitialNodeForNodeArray()
Overrides:
getInitialNodeForNodeArray in class Timeline

setUpNodeList

public void setUpNodeList()
Overrides:
setUpNodeList in class Timeline

getFirstNode

public Node getFirstNode()
Overrides:
getFirstNode in class Timeline

getAvailableNodeAtOrAfter

public AvailableNode getAvailableNodeAtOrAfter(int atTime)

getStartTimesArray

public int[] getStartTimesArray()
for test and debug


assertIsValid

public void assertIsValid()
Overrides:
assertIsValid in class Timeline

fitsDutyCycles

public boolean fitsDutyCycles()

insertEarliest

public int insertEarliest(int start,
                          int end,
                          int duration)
This will happen a lot and must be very fast. Avoid unnecessary tests and object creation.


fits

public boolean fits(int start,
                    SchedulingData schedulingData)
Specified by:
fits in class Timeline

fits

public boolean fits(int start,
                    int duration)

findEarliest

public int findEarliest(int start,
                        int end,
                        SchedulingData schedulingData)
Specified by:
findEarliest in class Timeline

findEarliest

protected int findEarliest(int start,
                           int end,
                           int duration)

fitsDutyCycles

protected boolean fitsDutyCycles(AvailableNode node,
                                 int startTime,
                                 int duration)
is this time and duration compatible with the duty cylce constraint (if any). Note: there is an assumption in the calling code that durations always fill the entire access window (true for non-agile spacecraft).


insertAt

public void insertAt(int start,
                     SchedulingData schedulingData)
assumes the insertion is legal

Specified by:
insertAt in class Timeline

insertAt

protected void insertAt(int startTime,
                        int endTime)
assumes the insertion is legal


insertAt

protected void insertAt(Node node,
                        int startTime,
                        int endTime)
assumes the insertion is legal


deleteNodeAndNextNode

protected void deleteNodeAndNextNode(Node node)

printToTsd

public void printToTsd(java.lang.String filename)

JavaGenes, NASA Ames. Written largely by Al Globus