コード例 #1
0
def reset_ncp():
    logger = customlogger.Logger('gpio')
    logger.debug('Resetting NCP')
    gpio_set_value(EMBER_NRST, 0)
    time.sleep(1)
    gpio_set_value(EMBER_NRST, 1)
    time.sleep(1)
コード例 #2
0
 def __init__(self, event_queue, bridge_configuration = None):
     self.logger = customlogger.Logger('api')
     self.event_queue = event_queue
     self.watchdog_delegate = None
     self.telemetry_delegate = None
     if type(bridge_configuration) == type(dict()):
         self.bridge_configuration = dict(WeminucheApi.DEFAULT_BRIDGE_CONFIGURATION.items() + bridge_configuration.items())
     else:
         self.bridge_configuration = default_bridge_configuration
     super(WeminucheApi, self).__init__()
     self.init()
     self.logger.info('Finished NCP init()')
     self._pending_response = threading.Event()
     self._pending_sent = threading.Event()
     self.callbackThread_run = threading.Event()
     self.callbackThread = threading.Thread(target=self._callbacks)
     self.callbackThread.start()
     try:
         if self.bridge_configuration['purge_link_keys']:
             self.logger.info('Removing all link keys')
             self.TCDeleteAllKeys()
         if not self._joinedNetwork:
             if self.bridge_configuration['network_create']:
                 self.logger.info('Attempting to create PAN on channels %s' % self.bridge_configuration['channel_list'])
                 self.scanForUnusedPanId(self.bridge_configuration['channel_list'])
     except KeyError:
         pass
コード例 #3
0
def setup_gpio():
    logger = customlogger.Logger('gpio')
    gpio_ports = [
        EMBER_NWAKE, EMBER_NRST, EMBER_NSSEL, LED_BERG_CLOUD, LED_ZIGBEE
    ]
    for port in gpio_ports:
        logger.debug("Setting GPIO port %d to 'out'" % port)
        gpio_export(port, 'out')
コード例 #4
0
 def __init__(self, options, log_queue):
     self.options = options
     self.log_queue = log_queue
     self.event_queue = Queue.Queue(EVENT_QUEUE_SIZE)
     self.command_queue = Queue.Queue(COMMAND_QUEUE_SIZE)
     self.logger = customlogger.Logger('bridge')
     self.shutdown_triggered = False
     self.should_reboot = False
     self.should_restart = False
コード例 #5
0
 def init(self, watchdog_enabled, thread_exit_event):
     self.logger = customlogger.Logger('watchdog')
     self.watchdog_enabled = watchdog_enabled
     self.thread_exit_event = thread_exit_event
     self.watchdog_keys = {}
     self.wd = None
     if watchdog_enabled:
         self.logger.info('Initialising watchdog')
         try:
             self.wd = watchdogdev.watchdog('/dev/watchdog')
             self.logger.info('Watchdog is now open!')
         except IOError as e:
             self.logger.error('Failed to open /dev/watchdog: %s' % e)
     else:
         self.logger.warning('Watchdog not enabled')
コード例 #6
0
    def __init__(self):
        self.cache = {}
        self.logger = customlogger.Logger('resolver')
        self.r = dns.resolver.Resolver()
        self.r.timeout = 5
        servers_to_remove = []
        for ns in self.r.nameservers:
            try:
                socket.inet_aton(ns)
            except socket.error:
                servers_to_remove.append(ns)

        for ns in servers_to_remove:
            self.r.nameservers.remove(ns)

        self.r.nameservers += ['4.2.2.1', '4.2.2.2']
コード例 #7
0
def set_led_state(name, state='off', quiet=False):
    logger = customlogger.Logger('gpio')
    if state == 'on':
        value = 0
    else:
        value = 1
    if name == 'bergcloud':
        gpio_set_value(LED_BERG_CLOUD, value)
    elif name == 'zigbee':
        gpio_set_value(LED_ZIGBEE, value)
    elif name == 'ethernet':
        gpio_set_value(LED_ETHERNET, value)
    else:
        logger.warning("Unknown LED '%s'" % name)
        return
    if not quiet:
        logger.info("Setting LED '%s' to '%s'" % (name, state))
コード例 #8
0
 def init(self, app=None):
     if app != None:
         self.app = app
     self.logger = customlogger.Logger('StatisticsMonitor')
     self.destination_eui64 = None
     self.commandLoopedTransfer = False
     self.loopNumber = 0
     self.successfulCommandTransfers = 0
     self.commandTransferring = False
     self.commandDestinationEui64 = None
     self.commandStartTime = 0
     self.commandEndTime = 0
     self.lastCommandSuccessful = False
     self.commandBytesTransferred = 0
     self.packetFailedCount = 0
     self.htmlLogLines = []
     self.loggedPacketsStatistics = {}
     self.packetLimit = 20
コード例 #9
0
def collectAndPostAll():
    logger = customlogger.Logger('statsd')
    try:
        stats = getMeminfo()
        stats.extend(getUptime())
        for pid in allPIDs():
            try:
                pss = getPSSForPID(pid)
                procName = getNameForPID(pid)
                if procName == 'python':
                    stats.extend(getProcInfo(pid, 'weminuche'))
                stat = makeStatHash('process-%s-pss' % procName, pss)
                stats.append(stat)
            except:
                pass

        postStats(stats)
    except:
        logger.exception('Unexpected statsd thread error:', sys.exc_info())
コード例 #10
0
 def handle_error(self, request, client_address):
     logger = customlogger.Logger('webserver')
     logger.error('Error in request %s from %s' % (request, client_address))