def supported(cls, device): """Checks whether the device at `device` is supported by the driver. :param device: path to the device :type device: str :return: whether the device is supported by the driver :rtype: bool """ protocol = cls._protocol try: with serial_connection(device['identifier'], protocol, is_probing=True) as connection: connection.write(protocol.measureCommand + protocol.commandTerminator) # Checking whether writing to the serial port using the Adam protocol raises a timeout exception is about the only thing we can do. return True except serial.serialutil.SerialTimeoutException: pass except Exception: _logger.exception('Error while probing %s with protocol %s' % (device, protocol.name)) return False
def supported(cls, device): """Checks whether the device, which port info is passed as argument, is supported by the driver. :param device: path to the device :type device: str :return: whether the device is supported by the driver :rtype: bool """ protocol = cls._protocol try: with serial_connection(device['identifier'], protocol, is_probing=True) as connection: connection.write(b'Ehello' + protocol.commandTerminator) time.sleep(protocol.commandDelay) answer = connection.read(8) if answer == b'\x02E\rhello': connection.write(b'F' + protocol.commandTerminator) return True except serial.serialutil.SerialTimeoutException: pass except Exception: _logger.exception('Error while probing %s with protocol %s' % (device, protocol.name)) return False