def find_mettler_toledo_device_ports(baudrate=None, try_ports=None, debug=DEBUG): serial_device_ports = find_serial_device_ports(try_ports=try_ports, debug=debug) os_type = platform.system() if os_type == 'Darwin': serial_device_ports = [ x for x in serial_device_ports if 'tty.usbmodem' in x or 'tty.usbserial' in x ] mettler_toledo_device_ports = [] for port in serial_device_ports: try: dev = MettlerToledoDevice(port=port, baudrate=baudrate, debug=debug) try: serial_number = dev.get_serial_number() mettler_toledo_device_ports.append(port) except: continue dev.close() except (serial.SerialException, IOError): pass return mettler_toledo_device_ports
def find_modular_server_ports(baudrate=None, model_number=None, serial_number=None, try_ports=None, debug=DEBUG, *args, **kwargs): serial_device_ports = find_serial_device_ports(try_ports=try_ports, debug=debug) os_type = platform.system() if os_type == 'Darwin': serial_device_ports = [x for x in serial_device_ports if 'tty.usbmodem' in x or 'tty.usbserial' in x] if type(model_number) is int: model_number = [model_number] if type(serial_number) is int: serial_number = [serial_number] modular_device_ports = {} for port in serial_device_ports: try: dev = ModularDevice(port=port,baudrate=baudrate,debug=debug) device_info = dev.get_device_info() if ((model_number is None ) and (device_info['model_number'] is not None)) or (device_info['model_number'] in model_number): if ((serial_number is None) and (device_info['serial_number'] is not None)) or (device_info['serial_number'] in serial_number): modular_device_ports[port] = {'model_number': device_info['model_number'], 'serial_number': device_info['serial_number']} dev.close() except (serial.SerialException, IOError): pass return modular_device_ports
def find_zaber_device_ports(baudrate=None, try_ports=None, serial_number=None, debug=DEBUG, *args, **kwargs): serial_device_ports = find_serial_device_ports(try_ports=try_ports, debug=debug) os_type = platform.system() if os_type == 'Darwin': serial_device_ports = [x for x in serial_device_ports if 'tty.usbmodem' in x or 'tty.usbserial' in x] zaber_device_ports = {} for port in serial_device_ports: try: dev = ZaberDevice(port=port,baudrate=baudrate,debug=debug) try: test_data = 123 echo_data = dev.echo_data(test_data) if test_data == echo_data: s_n = dev.get_serial_number() if (serial_number is None) or (s_n == serial_number): zaber_device_ports[port] = {'serial_number':s_n} except ZaberError as e: zaber_device_ports[port] = {'serial_number':None} except ReadError: continue dev.close() except (serial.SerialException, IOError): pass return zaber_device_ports
def find_mightex_device_ports(baudrate=None, try_ports=None, serial_number=None, debug=DEBUG, *args, **kwargs): serial_device_ports = find_serial_device_ports(try_ports=try_ports, debug=debug) os_type = platform.system() if os_type == 'Darwin': serial_device_ports = [x for x in serial_device_ports if 'tty.usbmodem' in x or 'tty.usbserial' in x] mightex_device_ports = {} for port in serial_device_ports: try: dev = MightexDevice(port=port,baudrate=baudrate,debug=debug) try: s_n = dev.get_serial_number() if (serial_number is None) or (s_n == serial_number): mightex_device_ports[port] = {'serial_number':s_n} except: continue dev.close() except (serial.SerialException, IOError): pass return mightex_device_ports
def find_mettler_toledo_device_port(baudrate=None, model_number=None, serial_number=None, try_ports=None, debug=DEBUG): mettler_toledo_device_ports = find_mettler_toledo_device_ports(baudrate=baudrate, try_ports=try_ports, debug=debug) if len(mettler_toledo_device_ports) == 1: return mettler_toledo_device_ports[0] elif len(mettler_toledo_device_ports) == 0: serial_device_ports = find_serial_device_ports(try_ports) err_string = "Could not find any MettlerToledo devices. Check connections and permissions.\n" err_string += "Tried ports: " + str(serial_device_ports) raise RuntimeError(err_string) else: err_string = "Found more than one MettlerToledo device. Specify port or model_number and/or serial_number.\n" err_string += "Matching ports: " + str(mettler_toledo_device_ports) raise RuntimeError(err_string)
def __init__(self, calibration_file_path, config_file_path, mixed_signal_controller=True, bioshake_device=True, debug_msc=False, *args,**kwargs): if 'debug' in kwargs: self._debug = kwargs['debug'] else: kwargs.update({'debug': DEBUG}) self._debug = DEBUG self._using_msc = mixed_signal_controller self._using_bsc = bioshake_device with open(calibration_file_path,'r') as calibration_stream: self._calibration = yaml.load(calibration_stream) with open(config_file_path,'r') as config_stream: self._config = yaml.load(config_stream) # check to see if user switched config and calibration files if ('head' in self._calibration) and ('quad1' in self._config): calibration = self._config self._config = self._calibration self._calibration = calibration self._valves = self._config['head'] self._valves.update(self._config['manifold']) if self._using_msc or self._using_bsc: ports = find_serial_device_ports(debug=self._debug) self._debug_print('Found serial devices on ports ' + str(ports)) self._debug_print('Identifying connected devices (may take some time)...') if self._using_bsc: try: self._bsc = BioshakeDevice() except RuntimeError: # try one more time self._bsc = BioshakeDevice() self._debug_print('Found bioshake device on port ' + str(self._bsc.get_port())) ports.remove(self._bsc.get_port()) self._SHAKE_SPEED_MIN = self._bsc.get_shake_speed_min() self._SHAKE_SPEED_MAX = self._bsc.get_shake_speed_max() if self._using_msc: modular_devices = ModularDevices(try_ports=ports,timeout=MSC_TIMEOUT,debug=debug_msc) try: msc_dict = modular_devices['mixed_signal_controller'] except KeyError: raise HybridizerError('Could not find mixed_signal_controller. Check connections and permissions.') if len(msc_dict) > 1: raise HybridizerError('More than one mixed_signal_controller found. Only one should be connected.') self._msc = msc_dict[msc_dict.keys()[0]] self._debug_print('Found mixed_signal_controller on port ' + str(self._msc.get_port()))
def __init__(self, config_file_path, calibration_file_path, *args,**kwargs): if 'debug' in kwargs: self._debug = kwargs['debug'] else: kwargs.update({'debug': DEBUG}) self._debug = DEBUG with open(config_file_path,'r') as config_stream: self._config = yaml.load(config_stream) with open(calibration_file_path,'r') as calibration_stream: self._calibration = yaml.load(calibration_stream) self._valves = self._config['head'] self._valves.update(self._config['manifold']) ports = find_serial_device_ports(debug=self._debug) self._debug_print('Found serial devices on ports ' + str(ports)) self._debug_print('Identifying connected devices (may take some time)...') self._balance = MettlerToledoDevice() ports.remove(self._balance.get_port()) # try: # self._bsc = BioshakeDevice() # except RuntimeError: # # try one more time # self._bsc = BioshakeDevice() # self._debug_print('Found bioshake device on port ' + str(self._bsc.get_port())) # ports.remove(self._bsc.get_port()) # self._SHAKE_SPEED_MIN = self._bsc.get_shake_speed_min() # self._SHAKE_SPEED_MAX = self._bsc.get_shake_speed_max() # self._SHAKE_DURATION_MIN = 10 # self._SHAKE_ATTEMPTS = 2 # self._POST_SHAKE_OFF_DURATION = 5 modular_devices = ModularDevices(try_ports=ports) try: msc_dict = modular_devices['mixed_signal_controller'] except KeyError: raise HybridizerError('Could not find mixed_signal_controller. Check connections and permissions.') if len(msc_dict) > 1: raise HybridizerError('More than one mixed_signal_controller found. Only one should be connected.') self._msc = msc_dict[msc_dict.keys()[0]] self._debug_print('Found mixed_signal_controller on port ' + str(self._msc.get_port())) # self._adc_values_min = None # self._adc_values_max = None self._adc_sample_count = 21 self._fill_duration_all_cylinders = 250 self._fill_duration_one_cylinder = 100 self._volume_crossover = 6 self._volume_threshold_initial = 1.0
def find_mettler_toledo_device_port(baudrate=None, model_number=None, serial_number=None, try_ports=None, debug=DEBUG): mettler_toledo_device_ports = find_mettler_toledo_device_ports(baudrate=baudrate, try_ports=try_ports, debug=debug) if len(mettler_toledo_device_ports) == 1: return mettler_toledo_device_ports[0] elif len(mettler_toledo_device_ports) == 0: serial_device_ports = find_serial_device_ports(try_ports) err_string = 'Could not find any MettlerToledo devices. Check connections and permissions.\n' err_string += 'Tried ports: ' + str(serial_device_ports) raise RuntimeError(err_string) else: err_string = 'Found more than one MettlerToledo device. Specify port or model_number and/or serial_number.\n' err_string += 'Matching ports: ' + str(mettler_toledo_device_ports) raise RuntimeError(err_string)
def find_bioshake_device_port(baudrate=None, model_number=None, serial_number=None, try_ports=None, debug=DEBUG): bioshake_device_ports = find_bioshake_device_ports(baudrate=baudrate, try_ports=try_ports, debug=debug) if len(bioshake_device_ports) == 1: return bioshake_device_ports[0] elif len(bioshake_device_ports) == 0: serial_device_ports = find_serial_device_ports(try_ports) err_string = 'Could not find any Bioshake devices. Check connections and permissions.\n' err_string += 'Tried ports: ' + str(serial_device_ports) raise RuntimeError(err_string) else: err_string = 'Found more than one Bioshake device. Specify port or model_number and/or serial_number.\n' err_string += 'Matching ports: ' + str(bioshake_device_ports) raise RuntimeError(err_string)
def find_bioshake_device_ports(baudrate=None, try_ports=None, debug=DEBUG): serial_device_ports = find_serial_device_ports(try_ports=try_ports, debug=debug) os_type = platform.system() if os_type == 'Darwin': serial_device_ports = [x for x in serial_device_ports if 'tty.usbmodem' in x or 'tty.usbserial' in x] bioshake_device_ports = [] for port in serial_device_ports: try: dev = BioshakeDevice(port=port,baudrate=baudrate,debug=debug) description = dev.get_description() if 'BIOSHAKE' in description: bioshake_device_ports.append(port) dev.close() except (serial.SerialException, IOError): pass return bioshake_device_ports
def find_zaber_device_port(baudrate=None, try_ports=None, serial_number=None, debug=DEBUG): zaber_device_ports = find_zaber_device_ports(baudrate=baudrate, try_ports=try_ports, serial_number=serial_number, debug=debug) if len(zaber_device_ports) == 1: return zaber_device_ports.keys()[0] elif len(zaber_device_ports) == 0: serial_device_ports = find_serial_device_ports(try_ports) err_string = 'Could not find any Zaber devices. Check connections and permissions.\n' err_string += 'Tried ports: ' + str(serial_device_ports) raise RuntimeError(err_string) else: err_string = 'Found more than one Zaber device. Specify port or serial_number.\n' err_string += 'Matching ports: ' + str(zaber_device_ports) raise RuntimeError(err_string)
def find_mettler_toledo_device_ports(baudrate=None, try_ports=None, debug=DEBUG): serial_device_ports = find_serial_device_ports(try_ports=try_ports, debug=debug) os_type = platform.system() if os_type == 'Darwin': serial_device_ports = [x for x in serial_device_ports if 'tty.usbmodem' in x or 'tty.usbserial' in x] mettler_toledo_device_ports = [] for port in serial_device_ports: try: dev = MettlerToledoDevice(port=port,baudrate=baudrate,debug=debug) try: serial_number = dev.get_serial_number() mettler_toledo_device_ports.append(port) except: continue dev.close() except (serial.SerialException, IOError): pass return mettler_toledo_device_ports