예제 #1
0
def relative_to_ztp(ztp, time_, resolution="seconds"):
    """Returns the relative time between the given time_ (datetime) and the ztp (TimeStamp)"""
    if time_.isoformat().startswith("9999-12-31T"):
        r_time = float('inf')
    else:
        r_time = TimeStamp.from_datetime(time_).get_difference(ztp, resolution)
    return r_time
예제 #2
0
    def is_executable(self):
        current_time = TimeStamp()
        start_time = TimeStamp.from_datetime(self.start_time)

        if start_time < current_time:
            return True
        else:
            return False
예제 #3
0
    def fetch(self):
        try:
            self.logger.debug("Fetching timetable of robot %s", self.robot_id)
            timetable_mongo = TimetableMongo.objects.get_timetable(self.robot_id)
            self.stn = self.stn.from_dict(timetable_mongo.stn)
            self.dispatchable_graph = self.stn.from_dict(timetable_mongo.dispatchable_graph)
            self.ztp = TimeStamp.from_datetime(timetable_mongo.ztp)
            self.stn_tasks = {task_id: STNTask.from_dict(task) for (task_id, task) in timetable_mongo.stn_tasks.items()}

        except DoesNotExist:
            self.logger.debug("The timetable of robot %s is empty", self.robot_id)
            # Resetting values
            self.stn = self.stp_solver.get_stn()
            self.dispatchable_graph = self.stp_solver.get_stn()
예제 #4
0
 def get_current_timestamp(self):
     if self.simulator:
         return TimeStamp.from_datetime(self.simulator.current_time)
     else:
         return TimeStamp()