diff options
author | Gerhard Sittig <gerhard.sittig@gmx.net> | 2018-01-28 20:49:48 +0100 |
---|---|---|
committer | Gerhard Sittig <gerhard.sittig@gmx.net> | 2018-01-28 20:49:48 +0100 |
commit | 15a8a05595c72d328abdea8e3b23f1b558cc46bf (patch) | |
tree | df65ff2c6163724aa5f49275086963fa3660b6a5 /decoders/pwm | |
parent | 956721de58552b05776c8613449f2907196e61e9 (diff) | |
download | libsigrokdecode-15a8a05595c72d328abdea8e3b23f1b558cc46bf.tar.gz libsigrokdecode-15a8a05595c72d328abdea8e3b23f1b558cc46bf.zip |
graycode, morse, pwm, usb_request, wiegand: cope with absent sample rate
Improve robustness of some more protocol decoders. Few of them never
checked for the availability of a sample rate in the first place, others
checked for the presence of a spec but would not cope with a value of 0.
Some checked the value only after processing it, which could result in
runtime errors.
This change is motivated by bug #1118.
Diffstat (limited to 'decoders/pwm')
-rw-r--r-- | decoders/pwm/pd.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/decoders/pwm/pd.py b/decoders/pwm/pd.py index 2301523..9770445 100644 --- a/decoders/pwm/pd.py +++ b/decoders/pwm/pd.py @@ -20,6 +20,9 @@ import sigrokdecode as srd +class SamplerateError(Exception): + pass + class Decoder(srd.Decoder): api_version = 3 id = 'pwm' @@ -52,6 +55,7 @@ class Decoder(srd.Decoder): self.reset() def reset(self): + self.samplerate = None self.ss_block = self.es_block = None def metadata(self, key, value): @@ -89,6 +93,9 @@ class Decoder(srd.Decoder): self.put(self.ss_block, self.es_block, self.out_binary, data) def decode(self): + if not self.samplerate: + raise SamplerateError('Cannot decode without samplerate.') + num_cycles = 0 average = 0 |