From 8aaac8d97dd5a89db073094829216126ecad0c0b Mon Sep 17 00:00:00 2001 From: DreamSourceLab Date: Sat, 9 May 2020 10:47:40 +0800 Subject: [PATCH] Improve range settings in decoders --- libsigrokdecode4DSL/decoders/0-spi/pd.py | 3 ++- libsigrokdecode4DSL/decoders/0-uart/pd.py | 6 +++--- libsigrokdecode4DSL/decoders/1-spi/pd.py | 3 ++- libsigrokdecode4DSL/decoders/1-uart/pd.py | 6 +++--- libsigrokdecode4DSL/decoders/i2s/pd.py | 5 +++-- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/libsigrokdecode4DSL/decoders/0-spi/pd.py b/libsigrokdecode4DSL/decoders/0-spi/pd.py index 0116755d..4708a98d 100755 --- a/libsigrokdecode4DSL/decoders/0-spi/pd.py +++ b/libsigrokdecode4DSL/decoders/0-spi/pd.py @@ -101,7 +101,8 @@ class Decoder(srd.Decoder): 'values': (0, 1)}, {'id': 'bitorder', 'desc': 'Bit order', 'default': 'msb-first', 'values': ('msb-first', 'lsb-first')}, - {'id': 'wordsize', 'desc': 'Word size', 'default': 8}, + {'id': 'wordsize', 'desc': 'Word size', 'default': 8, + 'values': tuple(range(4,129,1))}, ) annotations = ( ('106', 'miso-data', 'MISO data'), diff --git a/libsigrokdecode4DSL/decoders/0-uart/pd.py b/libsigrokdecode4DSL/decoders/0-uart/pd.py index a8991b54..fdb7c28b 100755 --- a/libsigrokdecode4DSL/decoders/0-uart/pd.py +++ b/libsigrokdecode4DSL/decoders/0-uart/pd.py @@ -89,20 +89,20 @@ class Decoder(srd.Decoder): options = ( {'id': 'baudrate', 'desc': 'Baud rate', 'default': 115200}, {'id': 'num_data_bits', 'desc': 'Data bits', 'default': 8, - 'values': (5, 6, 7, 8, 9)}, + 'values': tuple(range(4,129,1))}, {'id': 'parity_type', 'desc': 'Parity type', 'default': 'none', 'values': ('none', 'odd', 'even', 'zero', 'one')}, {'id': 'parity_check', 'desc': 'Check parity?', 'default': 'yes', 'values': ('yes', 'no')}, {'id': 'num_stop_bits', 'desc': 'Stop bits', 'default': 1.0, - 'values': (0.0, 0.5, 1.0, 1.5)}, + 'values': (0.0, 0.5, 1.0, 1.5, 2.0, 2.5)}, {'id': 'bit_order', 'desc': 'Bit order', 'default': 'lsb-first', 'values': ('lsb-first', 'msb-first')}, {'id': 'format', 'desc': 'Data format', 'default': 'hex', 'values': ('ascii', 'dec', 'hex', 'oct', 'bin')}, {'id': 'invert', 'desc': 'Invert Signal?', 'default': 'no', 'values': ('yes', 'no')}, - {'id': 'anno_startstop', 'desc': 'Display Start/Stop?', 'default': 'no', + {'id': 'anno_startstop', 'desc': 'Display Start/Stop?', 'default': 'no', 'values': ('yes', 'no')}, ) annotations = ( diff --git a/libsigrokdecode4DSL/decoders/1-spi/pd.py b/libsigrokdecode4DSL/decoders/1-spi/pd.py index 91e9e01e..e17e6adb 100755 --- a/libsigrokdecode4DSL/decoders/1-spi/pd.py +++ b/libsigrokdecode4DSL/decoders/1-spi/pd.py @@ -101,7 +101,8 @@ class Decoder(srd.Decoder): 'values': (0, 1)}, {'id': 'bitorder', 'desc': 'Bit order', 'default': 'msb-first', 'values': ('msb-first', 'lsb-first')}, - {'id': 'wordsize', 'desc': 'Word size', 'default': 8}, + {'id': 'wordsize', 'desc': 'Word size', 'default': 8, + 'values': tuple(range(5,129,1))}, {'id': 'frame', 'desc': 'Frame Decoder', 'default': 'no', 'values': ('yes', 'no')}, ) diff --git a/libsigrokdecode4DSL/decoders/1-uart/pd.py b/libsigrokdecode4DSL/decoders/1-uart/pd.py index 7d11664e..1984f4e1 100755 --- a/libsigrokdecode4DSL/decoders/1-uart/pd.py +++ b/libsigrokdecode4DSL/decoders/1-uart/pd.py @@ -90,13 +90,13 @@ class Decoder(srd.Decoder): options = ( {'id': 'baudrate', 'desc': 'Baud rate', 'default': 115200}, {'id': 'num_data_bits', 'desc': 'Data bits', 'default': 8, - 'values': (5, 6, 7, 8, 9)}, + 'values': tuple(range(4,129,1))}, {'id': 'parity_type', 'desc': 'Parity type', 'default': 'none', 'values': ('none', 'odd', 'even', 'zero', 'one')}, {'id': 'parity_check', 'desc': 'Check parity?', 'default': 'yes', 'values': ('yes', 'no')}, {'id': 'num_stop_bits', 'desc': 'Stop bits', 'default': 1.0, - 'values': (0.0, 0.5, 1.0, 1.5)}, + 'values': (0.0, 0.5, 1.0, 1.5, 2.0, 2.5)}, {'id': 'bit_order', 'desc': 'Bit order', 'default': 'lsb-first', 'values': ('lsb-first', 'msb-first')}, {'id': 'format', 'desc': 'Data format', 'default': 'hex', @@ -216,7 +216,7 @@ class Decoder(srd.Decoder): self.frame_valid = False es = self.samplenum + ceil(self.bit_width / 2.0) self.putpse(self.frame_start, es, ['FRAME', 0, - (self.datavalue[rxtx], self.frame_valid[rxtx])]) + (self.datavalue, self.frame_valid)]) self.state = 'WAIT FOR START BIT' return diff --git a/libsigrokdecode4DSL/decoders/i2s/pd.py b/libsigrokdecode4DSL/decoders/i2s/pd.py index 32f873cc..7e4959ec 100755 --- a/libsigrokdecode4DSL/decoders/i2s/pd.py +++ b/libsigrokdecode4DSL/decoders/i2s/pd.py @@ -60,7 +60,8 @@ class Decoder(srd.Decoder): 'values': ('left-aligned', 'right-aligned')}, {'id': 'bitorder', 'desc': 'Bit order', 'default': 'msb-first', 'values': ('msb-first', 'lsb-first')}, - {'id': 'wordsize', 'desc': 'Word size', 'default': 16}, + {'id': 'wordsize', 'desc': 'Word size', 'default': 16, + 'values': tuple(range(4,129,1))}, ) annotations = ( ('left', 'Left channel'), @@ -187,7 +188,7 @@ class Decoder(srd.Decoder): else: if (left_algined and msb) or (not left_algined and not msb): self.data >>= self.bitcount - self.wordlength - else: + else: self.data &= int("1"*self.wordlength, 2) self.oldws = self.oldws if left_high else not self.oldws idx = 0 if self.oldws else 1