コード例 #1
0
    def get_pickup_route(self, user_status):
        start_point = {
            "arrow_code": user_status.trip_schedules[0].route.arrow_codes[0],
            "waypoint_id":
            user_status.trip_schedules[0].route.start_waypoint_id,
        }
        vehicle_ids = self.get_dispatchable_vehicle_ids(user_status)
        if len(vehicle_ids) == 0:
            logger.warning("no dispatchable vehicles")
            return None, None

        goal_points = []
        for vehicle_id, goal_waypoint_id, goal_arrow_code in map(
                lambda x:
            (x, self.vehicle_schedules[x][-1].route.goal_waypoint_id, self.
             vehicle_schedules[x][-1].route.arrow_codes[-1]), vehicle_ids):
            goal_points.append({
                "goal_id": vehicle_id,
                "arrow_code": goal_arrow_code,
                "waypoint_id": goal_waypoint_id,
            })
        routes = self.route.get_shortest_routes(start_point,
                                                goal_points,
                                                reverse=True)
        if len(routes) == 0:
            logger.warning("no pickup_route")
            return None, None
        pickup_route = min(routes.items(),
                           key=lambda x: x[1]["cost"] + self.vehicle_schedules[
                               x[0]][-1].period.end)[1]
        vehicle_id = pickup_route.pop("goal_id")
        pickup_route.pop("cost")
        return pickup_route, vehicle_id
コード例 #2
0
 def get_carry_route(self, user_status):
     start_point = {
         "arrow_code": user_status.trip_schedules[0].route.arrow_codes[0],
         "waypoint_id":
         user_status.trip_schedules[0].route.start_waypoint_id,
     }
     goal_points = [{
         "goal_id":
         None,
         "arrow_code":
         user_status.trip_schedules[0].route.arrow_codes[-1],
         "waypoint_id":
         user_status.trip_schedules[0].route.goal_waypoint_id,
     }]
     routes = self.route.get_shortest_routes(start_point,
                                             goal_points,
                                             reverse=False)
     if len(routes) == 0:
         logger.warning("cant carry_route")
         return None
     carry_route = routes[None]
     carry_route.pop("cost")
     carry_route.pop("goal_id")
     return carry_route
コード例 #3
0
ファイル: route.py プロジェクト: ericyao2013/UGV-CPFL_AMS
 def split_route_code(route_code):
     logger.warning(
         logger.deprecation_warning_message("decode_route_code",
                                            "split_route_code"))
     return Route.decode_route_code(route_code)
コード例 #4
0
ファイル: route.py プロジェクト: ericyao2013/UGV-CPFL_AMS
 def get_route_code(route):
     logger.warning(
         logger.deprecation_warning_message("encode_route",
                                            "get_route_code"))
     return Route.encode_route(route)
コード例 #5
0
ファイル: route.py プロジェクト: ericyao2013/UGV-CPFL_AMS
 def get_route_waypoint_ids(self, route):
     logger.warning(
         logger.deprecation_warning_message("get_waypoint_ids",
                                            "get_route_waypoint_ids"))
     return self.get_waypoint_ids(route)
コード例 #6
0
ファイル: route.py プロジェクト: ericyao2013/UGV-CPFL_AMS
 def get_arrow_waypoint_array(self, route):
     logger.warning(
         logger.deprecation_warning_message("get_locations",
                                            "get_arrow_waypoint_array"))
     return self.get_locations(route)
コード例 #7
0
 def __on_connect(self, _client, _userdata, _flags, response_code):
     if response_code == 0:
         self.subscribe()
     else:
         logger.warning('connect status {0}'.format(response_code))