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()
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()
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