예제 #1
0
class Main:
    def __init__(self, args):
        self.__init_logging()

        self.__logger.info("Going to initialize Gps()")
        self.__gps = Gps()

        self.__logger.debug("Going to read position and direction")
        start, start_bear = self.__gps.fetch_get_pos_bearing()
        self.__logger.debug("start=" + str(start))
        self.__logger.debug("start_bear=" + str(start_bear))

        destination = Point(args.lon, args.lat)

        announcer_manager = AnnouncerManager()

        self.__logger.debug("Going to initialize router")
        router = OrsRouter(start, start_bear, destination, announcer_manager)

        while self.__update_pos_wrapped(self.__gps.fetch_get_pos_bearing(), router) == False: time.sleep(config.routing['main_poll_interval'])

        self.__logger.info("Arrival at destination")

    def __update_pos_wrapped(self, pos_bear, router):
        return router.update_pos(pos_bear[0], pos_bear[1])

    def __init_logging(self):
        logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
        self.__logger = logging.getLogger(__name__)
        self.__logger.setLevel("DEBUG") # level for this class only