X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=decoders%2Fuart%2Fpd.py;h=da5e3033b3023cce80f8416ac96b580815d80eb0;hb=21b39043472eeeb2e0155eafc73247f5010af714;hp=ae99874c8f48762cfb10396d22e96bc03dcf09d4;hpb=bf69977d12886794ac597083403859ac99ab38ac;p=libsigrokdecode.git diff --git a/decoders/uart/pd.py b/decoders/uart/pd.py index ae99874..da5e303 100644 --- a/decoders/uart/pd.py +++ b/decoders/uart/pd.py @@ -69,6 +69,9 @@ def parity_ok(parity_type, parity_bit, data, num_data_bits): else: raise Exception('Invalid parity type: %d' % parity_type) +class SamplerateError(Exception): + pass + class Decoder(srd.Decoder): api_version = 2 id = 'uart' @@ -327,8 +330,8 @@ class Decoder(srd.Decoder): self.putg([rxtx + 4, ['Stop bit', 'Stop', 'T']]) def decode(self, ss, es, data): - if self.samplerate is None: - raise Exception("Cannot decode without samplerate.") + if not self.samplerate: + raise SamplerateError('Cannot decode without samplerate.') for (self.samplenum, pins) in data: # Note: Ignoring identical samples here for performance reasons @@ -360,8 +363,6 @@ class Decoder(srd.Decoder): self.get_parity_bit(rxtx, signal) elif self.state[rxtx] == 'GET STOP BITS': self.get_stop_bits(rxtx, signal) - else: - raise Exception('Invalid state: %s' % self.state[rxtx]) # Save current RX/TX values for the next round. self.oldbit[rxtx] = signal