def _init_pumps(pumps=list(), expanders=dict()): log.debug(f'Initializing pumps') configured_pumps = dict() for pump in pumps: if not pump.get('name', None) and not pump.get('pin', None): error_msg = f'Missing correct pump configuration {pump}' log.fatal(error_msg) raise ConfigError(error_msg) if pump.get('expander', None): if expanders.get(pump.get('expander'), None): pump['expander'] = expanders[pump['expander']] else: error_msg = f'Device has non-existent IO Expander configured {pump}' log.fatal(error_msg) raise ConfigError(error_msg) configured_pumps[pump.get('name')] = Pump(**pump) return configured_pumps
def __init__(self, *args, **kwargs): self._hardware = kwargs.get('hardware', None) if not self._hardware: error_msg = f'Hardware configuration not provided' log.fatal(error_msg) raise ConfigError(error_msg)
def outputvalue(self, outputvalue=None): if not outputvalue: error_msg = f'Expecting chip output value data, received null' log.fatal(error_msg) raise ConfigError(error_msg) self._outputvalue = outputvalue
def gpios(self, gpios=None): if not 0 <= gpios <= 16: error_msg = f'The number of GPIO pins must be between 0 and 16, received {gpios}' log.fatal(error_msg) raise ConfigError(error_msg) self._gpios = gpios
def direction(self, direction=None): if not direction: error_msg = "Expecting chip direction data, received null" log.fatal(error_msg) raise ConfigError(error_msg) self._direction = direction
def bus(self, bus=None): if not 0 <= bus <= 255: error_msg = f'I2C Bus Invalid, expecting int between 0 and 255, received {bus}' log.fatal(error_msg) raise ConfigError(error_msg) self._bus = bus
def address(self, address=None): if not 0x20 <= address <= 0x27: error_msg = f'Address out of range, expecting between 0x20 and 0x27, received {address}' log.fatal(error_msg) raise ConfigError(error_msg) self._address = address