def main():

    sfm = find_sensor_by_type('sfm3000')
    sdp = find_sensor_by_type('sdp600')
    sht = find_sensor_by_type('sht3x')
    if not all((sfm, sdp, sht)):
        sys.stderr.writelines("couldn't find all sensors\n")
        return

    def print_sensor_values(sensor_name):
        def print_to_console(timestamp, values):
            print "{0}: {1}".format(sensor_name, values.values()[0])
            return True
        return print_to_console

    try:
        sfm_reader = SensorReader((sfm,), 100, print_sensor_values('sfm'))
        sdp_reader = SensorReader((sdp,), 10, print_sensor_values('sdp'))
        sht_reader = SensorReader((sht,), 1, print_sensor_values('sht'))
        sfm_reader.start()
        sdp_reader.start()
        sht_reader.run()
    finally:
        sfm_reader.join()
        sdp_reader.join()
예제 #2
0
def main():

    sfm = find_sensor_by_type('sfm3000')
    sdp = find_sensor_by_type('sdp600')
    sht = find_sensor_by_type('sht3x')
    if not all((sfm, sdp, sht)):
        sys.stderr.writelines("couldn't find all sensors\n")
        return

    def print_sensor_values(sensor_name):
        def print_to_console(timestamp, values):
            print "{0}: {1}".format(sensor_name, values.values()[0])
            return True

        return print_to_console

    try:
        sfm_reader = SensorReader((sfm, ), 100, print_sensor_values('sfm'))
        sdp_reader = SensorReader((sdp, ), 10, print_sensor_values('sdp'))
        sht_reader = SensorReader((sht, ), 1, print_sensor_values('sht'))
        sfm_reader.start()
        sdp_reader.start()
        sht_reader.run()
    finally:
        sfm_reader.join()
        sdp_reader.join()
예제 #3
0
def main():
    # parse arguments
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('--frequency',
                        '-f',
                        type=int,
                        default=10,
                        help='read out frequency')
    parser.add_argument('log_file',
                        type=argparse.FileType('w'),
                        default=sys.stdout,
                        nargs='?',
                        help='Output file')
    args = parser.parse_args()

    # probe for sensors
    sensors = find_sensors_by_type('sfxx') + find_sensors_by_type('sht3x')
    if not sensors:
        sys.stderr.writelines('No sensors found!\n')
        return

    # set up the printing
    log_file = args.log_file
    if log_file == sys.stdout:
        start = time.time()
        separator = '\t'
        value_format = '{0:.3f} {1}'
        missing_format = 'None {1}'
    else:
        start = 0
        separator = ','
        value_format = '{0:.3f}'
        missing_format = ''

    # print a header
    log_file.write('timestamp[s]{0}'.format(separator))
    log_file.write(
        separator.join('{0}[{1}]'.format(type(s).__name__, u) for s in sensors
                       for u in s.get_units()))
    log_file.write('\n')

    def print_values(timestamp, values):
        log_file.write(value_format.format(timestamp - start, 's'))
        for sensor, sensor_values in values.iteritems():
            for value, unit in zip(sensor_values, sensor.get_units()):
                log_file.write(separator)
                if value is None:
                    log_file.write(missing_format.format(value, unit))
                else:
                    log_file.write(value_format.format(value, unit))
        log_file.write('\n')
        return True

    # run the sensor reader synchranously
    try:
        reader = SensorReader(sensors, args.frequency, print_values)
        reader.run()
    finally:
        log_file.close()
def main():
    # parse arguments
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('--frequency', '-f', type=int, default=10, help='read out frequency')
    parser.add_argument('log_file', type=argparse.FileType('w'), default=sys.stdout, nargs='?', help='Output file')
    args = parser.parse_args()

    # probe for sensors
    sensors = find_sensors_by_type('sfxx') + find_sensors_by_type('sht3x')
    if not sensors:
        sys.stderr.writelines('No sensors found!\n')
        return

    # set up the printing
    log_file = args.log_file
    if log_file == sys.stdout:
        start = time.time()
        separator = '\t'
        value_format = '{0:.3f} {1}'
        missing_format = 'None {1}'
    else:
        start = 0
        separator = ','
        value_format = '{0:.3f}'
        missing_format = ''

    # print a header
    log_file.write('timestamp[s]{0}'.format(separator))
    log_file.write(separator.join('{0}[{1}]'.format(type(s).__name__, u) for s in sensors for u in s.get_units()))
    log_file.write('\n')

    def print_values(timestamp, values):
        log_file.write(value_format.format(timestamp - start, 's'))
        for sensor, sensor_values in values.iteritems():
            for value, unit in zip(sensor_values, sensor.get_units()):
                log_file.write(separator)
                if value is None:
                    log_file.write(missing_format.format(value, unit))
                else:
                    log_file.write(value_format.format(value, unit))
        log_file.write('\n')
        return True

    # run the sensor reader synchranously
    try:
        reader = SensorReader(sensors, args.frequency, print_values)
        reader.run()
    finally:
        log_file.close()
def main():
    # parse arguments
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument('--frequency', '-f', type=int, default=10, help='read out frequency')
    args = parser.parse_args()

    # probe for sensors
    sensors_list = ['sfm3000', 'sdp600']	 
    sensors = find_sensors_by_type(sensors_list[0]) + find_sensors_by_type(sensors_list[1])
    if not sensors:
        sys.stderr.writelines('No sensors found!\n')
        return

    value_format = '{0:.3f}'
    
    # write data JSON to stdout
    def print_values(timestamp, values):
	i = 0
	sdata = ''
	sdata += '\"{'
        for sensor, sensor_values in values.iteritems():
            for value, unit in zip(sensor_values, sensor.get_units()):
                if value is None:
		    continue
                else:
		    if (i > 0):
			sdata += ','
		    sdata += '\\\"' + sensors_list[i] + '\\\":'
                    sdata += value_format.format(value)
		i += 1
	sdata += '}\"'
        sdata += '\n'
		
       	sys.stdout.write(sdata) 
	sys.stdout.flush()
	return True

    # run the sensor reader synchranously
    try:
        reader = SensorReader(sensors, args.frequency, print_values)
        reader.run()
    except:
        pass