From: Joel Holdsworth Date: Fri, 6 Apr 2012 19:11:01 +0000 (+0100) Subject: srd/i2s: Print a warning on receiving a malformed word X-Git-Tag: libsigrokdecode-0.1.0~7 X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=abbbd2ba56a70b9978c4f31a4988102364807997;p=libsigrokdecode.git srd/i2s: Print a warning on receiving a malformed word --- diff --git a/decoders/i2s/i2s.py b/decoders/i2s/i2s.py index 30497b3..23f625d 100644 --- a/decoders/i2s/i2s.py +++ b/decoders/i2s/i2s.py @@ -52,6 +52,7 @@ class Decoder(srd.Decoder): self.samplesreceived = 0 self.start_sample = None self.samplenum = -1 + self.wordlength = -1 def start(self, metadata): self.out_proto = self.add(srd.OUTPUT_PROTO, 'i2s') @@ -84,8 +85,17 @@ class Decoder(srd.Decoder): self.put(self.start_sample, self.samplenum, self.out_proto, ['data', self.data]) self.put(self.start_sample, self.samplenum, self.out_ann, - [ANN_HEX, ['%s %d-bits: 0x%08x' % ('L' if self.oldws else 'R', - self.bitcount, self.data)]]) + [ANN_HEX, ['%s: 0x%08x' % ('L' if self.oldws else 'R', + self.data)]]) + + # Check that the data word was the correct length + if self.wordlength != -1 and self.wordlength != self.bitcount: + self.put(self.start_sample, self.samplenum, self.out_ann, + [ANN_HEX, ['WARNING: Received a %d-bit word, when a ' + '%d-bit word was expected' % (self.bitcount, + self.wordlength)]]) + + self.wordlength = self.bitcount # Reset decoder state. self.data = 0