Source code for sensirion_i2c_driver.errors

# -*- coding: utf-8 -*-
# (c) Copyright 2019 Sensirion AG, Switzerland

from __future__ import absolute_import, division, print_function

import logging
log = logging.getLogger(__name__)


[docs]class I2cError(IOError): """ I2C error base exception. """
[docs] def __init__(self, received_data=None, message="I2C error."): super(I2cError, self).__init__(message) self.received_data = received_data self.error_message = message
[docs]class I2cChecksumError(I2cError): """ I2C checksum error. """
[docs] def __init__(self, received_checksum, expected_checksum, received_data): super(I2cChecksumError, self).__init__( received_data, "I2C error: Received wrong checksum 0x{:02X} (expected 0x{:02X})." .format(received_checksum, expected_checksum) ) self.received_checksum = received_checksum self.expected_checksum = expected_checksum
[docs]class I2cTransceiveError(I2cError): """ I2C transceive error. """
[docs] def __init__(self, transceiver_error, received_data, message="Unknown error."): super(I2cTransceiveError, self).__init__( received_data, "I2C transceive failed: {}".format(message) ) self.transceiver_error = transceiver_error
[docs]class I2cChannelDisabledError(I2cTransceiveError): """ I2C channel disabled error. """
[docs] def __init__(self, transceiver_error, received_data): super(I2cChannelDisabledError, self).__init__( transceiver_error, received_data, "Channel is disabled ({}).".format(str(transceiver_error)) )
[docs]class I2cNackError(I2cTransceiveError): """ I2C transceive NACK error. """
[docs] def __init__(self, transceiver_error, received_data): super(I2cNackError, self).__init__( transceiver_error, received_data, "NACK (byte not acknowledged)." )
[docs]class I2cTimeoutError(I2cTransceiveError): """ I2C transceive timeout error. """
[docs] def __init__(self, transceiver_error, received_data): super(I2cTimeoutError, self).__init__( transceiver_error, received_data, "Timeout." )