def read_hardware_id(self, retry: bool = True) -> int: """Reads hardware ID from sensor.""" self.logger.info("Reading hardware ID") try: return int(self.i2c.read_register(0x20, retry=retry)) except I2CError as e: raise exceptions.ReadRegisterError(message="hw id reg", logger=self.logger) from e
def read_error_register(self, retry: bool = True) -> ErrorRegister: """Reads error register.""" self.logger.info("Reading error register") try: byte = self.i2c.read_register(0x0E, retry=retry) except I2CError as e: raise exceptions.ReadRegisterError(message="error reg", logger=self.logger) from e # Parse error register byte return ErrorRegister( write_register_invalid=bool(bitwise.get_bit_from_byte(0, byte)), read_register_invalid=bool(bitwise.get_bit_from_byte(1, byte)), measurement_mode_invalid=bool(bitwise.get_bit_from_byte(2, byte)), max_resistance=bool(bitwise.get_bit_from_byte(3, byte)), heater_fault=bool(bitwise.get_bit_from_byte(4, byte)), heater_supply=bool(bitwise.get_bit_from_byte(5, byte)), )
def read_status_register(self, retry: bool = True) -> StatusRegister: """Reads status of sensor.""" self.logger.debug("Reading status register") try: byte = self.i2c.read_register(0x00, retry=retry) except I2CError as e: raise exceptions.ReadRegisterError(message="status reg", logger=self.logger) from e # Parse status register byte status_register = StatusRegister( firmware_mode=bitwise.get_bit_from_byte(7, byte), app_valid=bool(bitwise.get_bit_from_byte(4, byte)), data_ready=bool(bitwise.get_bit_from_byte(3, byte)), error=bool(bitwise.get_bit_from_byte(0, byte)), ) self.logger.debug(str(status_register)) return status_register