コード例 #1
0
ファイル: application.py プロジェクト: mskinner5278/recsync
    def privilegedStartService(self):
        
        print 'Starting'

        # Start TCP server on random port
        self.tcpFactory = CastFactory()
        self.tcpFactory.protocol.timeout = self.tcptimeout
        self.tcpFactory.session.timeout = self.commitperiod
        self.tcpFactory.maxActive = self.maxActive
        
        # Attaching CastFactory to ProcessorController
        self.tcpFactory.commit = self.ctrl.commit

        self.tcp = self.reactor.listenTCP(0, self.tcpFactory,
                                          interface=self.bind)
        self.tcp.startListening()

        # Find out which port is in use
        addr = self.tcp.getHost()
        print 'listening on',addr

        self.key = random.randint(0,0xffffffff)

        # start up the UDP announcer
        self.udpProto = Announcer(tcpport=addr.port, key=self.key,
                                  udpaddrs=self.addrlist,
                                  period=self.annperiod)

        self.udp = SharedUDP(0, self.udpProto, reactor=self.reactor)
        self.udp.startListening()

        # This will start up plugin Processors
        service.MultiService.privilegedStartService(self)
コード例 #2
0
ファイル: showroom.py プロジェクト: Eikreis/showroom
    def __init__(self,
                 index=None,
                 outdir=OUTDIR,
                 max_downloads=MAX_DOWNLOADS,
                 max_priority=MAX_PRIORITY,
                 max_watches=MAX_WATCHES,
                 live_rate=LIVE_RATE,
                 schedule_ticks=SCHEDULE_TICKS,
                 end_hour=END_HOUR,
                 resume_hour=RESUME_HOUR,
                 new_index=True,
                 index_loc=NEW_INDEX_LOC,
                 logging=False,
                 exit_behaviour='hard',
                 noisy=False):
        self.session = WatchSession()

        if new_index:
            self.index = IndexerNew(index_loc)
        else:
            # TODO: convert this to IndexerOld
            self.index = index
        self.settings = {
            'outdir': outdir,
            'max_downloads': max_downloads,
            'max_watches': max_watches,
            'max_priority': max_priority,
            'live_rate': live_rate,
            'schedule_ticks': schedule_ticks,
            'logging': logging,
            'noisy': noisy
        }

        self.end_time = datetime.time(hour=end_hour,
                                      minute=10,
                                      tzinfo=TOKYO_TZ)
        self.resume_time = datetime.time(hour=resume_hour - 1,
                                         minute=50,
                                         tzinfo=TOKYO_TZ)

        self.live_rate = self.settings['live_rate']

        self.input_queue = InputQueue()

        self.scheduler = None
        self.watchers = None
        self.downloaders = None
        self.time = None

        if exit_behaviour == 'soft':
            self.soft_exit = True
        else:
            self.soft_exit = False

        self.quitting = False

        self._announcer = Announcer()
コード例 #3
0
ファイル: showroom.py プロジェクト: lalomartins/showroom
 def __init__(self, member, session, outdir, logging):
     self.session = session
     self._member = member
     self.process = None
     # self.failures = 0
     self.rootdir = outdir  # set by WatchManager
     self.destdir, self.tempdir, self.outfile = "", "", ""
     self._url = ""
     self._logging = logging
     self._announcer = Announcer()
コード例 #4
0
 def __init__(self, member, session, outdir, logging, noisy):
     self.session = session
     self._member = member
     self.process = None
     # self.failures = 0
     self.rootdir = outdir  # set by WatchManager
     self.destdir, self.tempdir, self.outfile = "", "", ""
     self._url = ""
     self._logging = logging
     if noisy:
         self._announcer = Announcer()
     else:
         self._announcer = DummyAnnouncer()
     self.sent_quit = False
     self.start_time = None
コード例 #5
0
    def __init__(self, config):
        self.logger = logging.getLogger('logger')
        self.logger.info('Starting lockd')

        #add_custom_print_exception()

        serialdevice = config.get('Master Controller', 'serialdevice')
        baudrate = config.get('Master Controller', 'baudrate')

        self.serial_interface = serialinterface.SerialInterface(serialdevice, baudrate, timeout=.1)

        self.input_queue = Queue.Queue()

        udpcommand = UDPCommand('127.0.0.1', 2323, self.input_queue)

        self.doors = {}

        self.master = None

        display = None
        
        self.display_controller = None

        self.logic = DoorLogic()

        for section in config.sections():
            if config.has_option(section, 'type'):
                t = config.get(section, 'type')
                if t == 'door':
                    door_name = section
                    self.logger.debug('Adding door "%s"'%door_name)
                    buttons = {1: 'manual_control', 2: 'bell_code'}
                    door = Door(door_name, config, self.serial_interface, self.input_queue, buttons)
                    door_address = config.get(door_name, 'address')
                    self.doors[door_address] = door
                    self.logic.add_door(door)
                else:
                    self.logger.warning('Unknown entry type "%s"', t)
            elif section == 'Master Controller':
                #txseq = int(config.get(section, 'txsequence'))
                #rxseq = int(config.get(section, 'rxsequence'))
                #key = config.get(section, 'key')
                
                buttons_section = 'Master Controller Buttons'
                buttons = {}
                for button_name in config.options(buttons_section):
                    button_pin = int(config.get(buttons_section, button_name))
                    buttons[button_pin] = button_name

                leds_section = 'Master Controller LEDs'
                leds = {}
                for led_name in config.options(leds_section):
                    led_pin = int(config.get(leds_section, led_name))
                    leds[led_name] = led_pin
                
                self.master = MasterController(self.serial_interface, self.input_queue, buttons, leds) 
            
            elif section == 'Display':
                display_type = config.get(section, 'display_type') 
                max_update_rate = float(config.get(section, 'max_update_rate'))
                if display_type == "Nokia_1600":
                    from display import Display
                    display = Display(self.serial_interface)
                elif display_type == 'simulation':
                    from display_pygame import Display
                    display = Display()
                elif display_type == 'network':
                    from display_network import Display
                    display = Display()
                elif display_type == 'None':
                    display = None
                else:
                    self.logger.warning('Unknown display type "%s"', display_type)
            elif section == 'Status Receiver':
                host = config.get(section, 'host')
                port = int(config.get(section, 'port'))
                self.announcer = Announcer(host, port)
                self.logic.add_state_listener(self.announcer.update_state)
        
        if self.master == None:
            self.logger.error('Please specify a self.master controller')
            sys.exit(1)

        self.interface_logic = UserInterfaceLogic(self.master)
        self.logic.add_state_listener(self.interface_logic.update_state)
        
        if display != None:
            self.display_controller = DisplayController(display, max_update_rate)
            self.display_logic = DisplayLogic(self.display_controller)
            self.logic.add_state_listener(self.display_logic.update_state)
            for door in self.doors.values():
                self.display_logic.add_door(door)

        else:
            self.logger.warning('No display specified.')

        self.input_queue.put({'origin_name': 'init',
                        'origin_type': DoorLogic.Origin.INTERNAL,
                        'input_name': '',
                        'input_type': DoorLogic.Input.COMMAND,
                        'input_value': 'down'})
コード例 #6
0
ファイル: lockd.py プロジェクト: nictally/luftschleuse2
handler = logging.handlers.SysLogHandler(address=(logger_host, logger_port),
                                         facility=19)

logger.addHandler(handler)

logger.info('Starting lockd')

#add_custom_print_exception()

try:
    #if 1:
    serialdevice = config.get('Master Controller', 'serialdevice')
    baudrate = config.get('Master Controller', 'baudrate')

    announcer = Announcer(False)

    ser = serialinterface.SerialInterface(serialdevice, baudrate, timeout=.1)
    command_queue = Queue.Queue()

    udpcommand = UDPCommand('127.0.0.1', 2323, command_queue)

    doors = {}

    master = None

    for section in config.sections():
        if config.has_option(section, 'type'):
            t = config.get(section, 'type')
            if t == 'door':
                name = section