X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=decoders%2Fi2cfilter%2Fi2cfilter.py;h=6b3d1134326f067c6af2d4367519195988cfb5de;hb=557a143d8018ac5b25b0cdde99415433e3663f62;hp=da816e6fe0e0d5766f54af65c40daf551b3c748d;hpb=156509ca42f0df2380c9f205f9aad337e1a07802;p=libsigrokdecode.git diff --git a/decoders/i2cfilter/i2cfilter.py b/decoders/i2cfilter/i2cfilter.py index da816e6..6b3d113 100644 --- a/decoders/i2cfilter/i2cfilter.py +++ b/decoders/i2cfilter/i2cfilter.py @@ -41,11 +41,14 @@ class Decoder(srd.Decoder): def start(self, metadata): self.out_proto = self.add(srd.OUTPUT_PROTO, 'i2cdata') if self.options['direction'] not in ('', 'read', 'write'): - raise Exception("Invalid direction: expected 'read' or 'write'") + raise Exception('Invalid direction: expected "read" or "write"') + + def report(self): + pass 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 @@ -57,6 +60,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. @@ -74,4 +80,3 @@ class Decoder(srd.Decoder): else: raise Exception('Invalid state: %s' % self.state) -