Source code for pylab_ml.dummy

"""
Basic Dummy class for instance.

:Date: |today|
:Author: Semi-ATE <info@Semi-ATE.org>
"""


[docs] class Dummy(object): """Dummy object for an communication-instance . :Date: |today| :Author: Semi-ATE <info@Semi-ATE.org> Usable if you have no real serial device, but you want avoid an Exception if you make access to this device """
[docs] def __init__(self, parent, logger, **kwargs): """Initialise.""" self.parent = parent self.logger = logger # kwargs = {"addr": addr, "interface": interface, "backend": backend, "identify": identify, "instName": instName} if 'message' in kwargs: self.logger.error(kwargs['message']) else: self.logger.error(f'{self.parent.instName}.inst: Device or no connection found, use Dummy instead') self._lastcmd = '' self.bytes_in_buffer = 0
def query(self, cmd): if cmd == '*IDN?': return f'{self.__class__}\r' cmd = cmd[:cmd.find('?')] try: value = super(__class__, self).__getattribute__(cmd) try: value = int(value) except Exception: pass self.logger.debug(f'Dummy {self.parent.instName} query {cmd} == {value}') except Exception: value = 0xdeadbeef self.logger.debug(f'Dummy {self.parent.instName} query {cmd} == {hex(value)}') return value def write(self, cmd): self._lastcmd = cmd[:cmd.find('?')] if cmd.find('?') > -1 else '' cmd = cmd.split(' ') if len(cmd) > 1: object.__setattr__(self, cmd[0], cmd[1]) self.logger.debug(f'Dummy {self.parent.instName} write {cmd}') def read(self): # value = 0xdeadbeef value = '-2' self.logger.debug(f'Dummy {self.parent.instName} read value') return value def flush(self, arg=None): pass def __getattribute__(self, name): try: value = super(__class__, self).__getattribute__(name) except Exception: # value = 0xdeadbeef value = '-2' return value def close(self): self.logger.debug(f'Dummy {self.parent.instName} close Dummy instance')