예제 #1
0
    def __init__(self, usbPort, baudRate=9600):
        super(ZigBeeDirect, self).__init__()
        import serial
        from Lib.xbee import ZigBee
        try:
            self._port = serial.Serial(usbPort, baudRate)
        except Exception as e:
            print >> sys.stderr, "Unable to connect to zigbee port, check that the port name (%s) and permissions are correct (should be a+rw)" % (
                usbPort)
            raise e
        self._zigbee = ZigBee(self._port)

        # Place for the callback methods to store "static" values.
        # Currently only needed for the Moving Average Filter for the MCP9700
        # temperature sensor temperature calculations.
        self._handler_memory = {}
        self._channels = {}
        self._sr = StateResolver()
        self._sensorDao = Sensors()
        self._sensors = self._sensorDao.findSensors()
        self._warned = []
예제 #2
0
    if activeLocation == None:
        print "Unable to determine active experiment Location"
        exit

    sensorPollers = []
    dataUpdaters = []
    for sensorType in config.locations_config[
            activeLocation['location']]['sensors']:
        sensor = None
        if sensorType == 'ZWaveHomeController':
            sensor = ZWaveHomeController(config.server_config['zwave_ip'])
        elif sensorType == 'ZWaveVeraLite':
            sensor = ZWaveVeraLite(config.server_config['zwave_ip'],
                                   config.server_config['zwave_port'])
        elif sensorType == 'ZigBee':
            sensor = ZigBee(config.server_config['udp_listen_port'])
        elif sensorType == 'ZigBeeDirect':
            sensor = ZigBeeDirect(config.server_config['zigbee_usb_port'])
        elif sensorType == 'GEOSystem':
            sensor = GEOSystem(config.server_config['mysql_geo_server'],
                               config.server_config['mysql_geo_user'],
                               config.server_config['mysql_geo_password'],
                               config.server_config['mysql_geo_db'],
                               config.server_config['mysql_geo_query'])

        if sensor != None:
            sensorPollers.append(sensor)
            dataUpdaters.append(
                SensorLog(sensor.channels, sensor.__class__.__name__))

    for sensorPoller in sensorPollers: