summaryrefslogtreecommitdiff
path: root/decoders
diff options
context:
space:
mode:
authorJoel Holdsworth <joel@airwebreathe.org.uk>2012-04-06 20:11:01 +0100
committerJoel Holdsworth <joel@airwebreathe.org.uk>2012-04-06 22:29:49 +0100
commitabbbd2ba56a70b9978c4f31a4988102364807997 (patch)
tree1c547381be3bbe2673a7f206b15234da708d1bfe /decoders
parent2ab416c214e248be8ece49bab2cabf2b28954cca (diff)
downloadlibsigrokdecode-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.py14
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