diff options
author | Joel Holdsworth <joel@airwebreathe.org.uk> | 2012-04-06 20:11:01 +0100 |
---|---|---|
committer | Joel Holdsworth <joel@airwebreathe.org.uk> | 2012-04-06 22:29:49 +0100 |
commit | abbbd2ba56a70b9978c4f31a4988102364807997 (patch) | |
tree | 1c547381be3bbe2673a7f206b15234da708d1bfe /decoders | |
parent | 2ab416c214e248be8ece49bab2cabf2b28954cca (diff) | |
download | libsigrokdecode-abbbd2ba56a70b9978c4f31a4988102364807997.tar.gz libsigrokdecode-abbbd2ba56a70b9978c4f31a4988102364807997.zip |
srd/i2s: Print a warning on receiving a malformed word
Diffstat (limited to 'decoders')
-rw-r--r-- | decoders/i2s/i2s.py | 14 |
1 files changed, 12 insertions, 2 deletions
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 |