Browse Source

add a maximum time to lose to define some constraints

Sven Czarnian 3 years ago
parent
commit
51c963de52
1 changed files with 14 additions and 0 deletions
  1. 14 0
      aman/types/ArrivalTime.py

+ 14 - 0
aman/types/ArrivalTime.py

@@ -8,10 +8,12 @@ class ArrivalTime:
     def __init__(self, **kargs):
         self.Star = None
         self.MaximumTimeToGain = None
+        self.MaximumTimeToLose = None
         self.FlightTimeUntilIaf = None
         self.FlightTimeUntilTouchdown = None
         self.InitialArrivalTime = None
         self.EarliestArrivalTime = None
+        self.LatestArrivalTime = None
 
         for key, value in kargs.items():
             if 'ttg' == key:
@@ -21,6 +23,13 @@ class ArrivalTime:
                     self.MaximumTimeToGain = timedelta(seconds = float(value))
                 else:
                     raise Exception('Invalid type for ttg')
+            elif 'ttl' == key:
+                if True == isinstance(value, timedelta):
+                    self.MaximumTimeToLose = value
+                elif True == isinstance(value, (int, float)):
+                    self.MaximumTimeToLose = timedelta(seconds = float(value))
+                else:
+                    raise Exception('Invalid type for ttl')
             elif 'star' == key:
                 if True == isinstance(value, ArrivalRoute):
                     self.Star = value
@@ -36,6 +45,11 @@ class ArrivalTime:
                     self.EarliestArrivalTime = value
                 else:
                     raise Exception('Invalid type for earliest')
+            elif 'latest' == key:
+                if True == isinstance(value, datetime):
+                    self.LatestArrivalTime = value
+                else:
+                    raise Exception('Invalid type for latest')
             elif 'touchdown' == key:
                 if True == isinstance(value, timedelta):
                     self.FlightTimeUntilTouchdown = value