X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=decoders%2Fi2cfilter%2Fi2cfilter.py;h=939e667b77b94195083c99bd063f7d44a54871d7;hp=4b88befbcfa147ec9ed838daa8ac1190073d0a24;hb=1b75abfdd3e00ef590c9d1905863f6f2cb5a8632;hpb=61c2bd366eba64b50009c604c382c547f6cfdd88 diff --git a/decoders/i2cfilter/i2cfilter.py b/decoders/i2cfilter/i2cfilter.py index 4b88bef..939e667 100644 --- a/decoders/i2cfilter/i2cfilter.py +++ b/decoders/i2cfilter/i2cfilter.py @@ -17,8 +17,9 @@ ## along with this program; if not, see . ## -import sigrokdecode as srd +# Generic I2C filtering protocol decoder +import sigrokdecode as srd class Decoder(srd.Decoder): api_version = 1 @@ -44,7 +45,7 @@ class Decoder(srd.Decoder): def decode(self, ss, es, data): try: - cmd, data, ack_bit = data + cmd, data = data except Exception as e: raise Exception('Malformed I2C input: %s' % str(e)) from e @@ -56,6 +57,9 @@ class Decoder(srd.Decoder): if cmd == 'STOP': self.state = None return + if cmd in ('ACK', 'NACK'): + # Don't care, we just want data. + return if self.state == 'start': # Start of a transfer, see if we want this one. @@ -73,4 +77,3 @@ class Decoder(srd.Decoder): else: raise Exception('Invalid state: %s' % self.state) -