def __init__(self, task_runner, logger=None):

        # Logging
        self.logger = _Logger(logger)

        # Task Runner
        self.task_runner = task_runner

        # HTTP Server
        self._https = httpserver.HTTPServer(self,
                                            task_runner,
                                            logger=self.logger)

        # SSDP Client
        self._ssdpc = ssdpclient.SSDPClient(task_runner, logger=self.logger)
        self._ssdpc.set_add_handler(self._handle_ssdpc_add_device)
        self._ssdpc.set_remove_handler(self._handle_ssdpc_remove_device)

        # Non-blocking HTTP Client
        self._asynch_httpc = httpclient.AsynchHTTPClient(task_runner)

        # Blocking HTTP Client
        self.synch_httpc = httpclient.SynchHTTPClient(self._asynch_httpc)

        # Pending Non-blocking HTTP Requests
        self._pending = {}  # rid: uuid

        # UPnPDevice Specifications
        self._device_map = {}  # uuid:{}

        # Service Stubs (cache)
        self._stub_cache = ServiceStubCache()

        # Startup by TaskRunner
        self.task_runner.add_task(self.startup)
예제 #2
0
def start():
    packet_queue = Queue()
    relay_queue = Queue()
    server_thread = server.Server(packet_queue)
    http_thread = httpserver.HTTPServer(packet_queue)
    http_thread.start()
    server_thread.start()
    connect_device('/dev/ttyACM1', 9600, packet_queue, server_thread.broadcast,
                   relay_queue, False)
    connect_device('/dev/ttyACM0', 115200, packet_queue,
                   server_thread.broadcast, relay_queue, True)

    while threading.active_count() > 0:
        pass
예제 #3
0
 def start(self):
     self.logger = logging.getLogger(Constants.LOGNAME)
     self.logger.setLevel(logging.INFO)
     handler = logging.handlers.TimedRotatingFileHandler(
         filename="sprinkler.log", when="D")
     handler.setFormatter(logging.Formatter("%(asctime)s-%(message)s"))
     self.logger.addHandler(handler)
     self.logger.info("####Sprinkler started####")
     self.controller = controller.Controller()
     self.controller.readStatus()
     timerfilename = self.getTimerFileName()
     self.timers = timerh.TimerHandler(self._timercb, self.controller)
     if os.path.exists(timerfilename):
         self.logger.info("reading timers from %s" % (timerfilename))
         self.timers.readFromJson(open(timerfilename).read())
         self.logger.info(pprint.pformat(self.timers.info()))
     self.httpServer = httpserver.HTTPServer(httpserver.HTTPHandler, self)
예제 #4
0
def start(port, root_directory="/tmp/s3", bucket_depth=0):
    """Starts the mock S3 server on the given port at the given path."""
    application = S3Application(root_directory, bucket_depth)
    http_server = httpserver.HTTPServer(application)
    http_server.listen(port)
    ioloop.IOLoop.instance().start()