X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=decoders%2Frgb_led_ws281x%2Fpd.py;h=b4f7c581d7e8f14b971fef5a912a56c9c42be64b;hb=2ba06442543625adec845a38b7b0fbb776fcce7b;hp=0cb6603fb81dd7eaa9b20969387784b95c2f5aef;hpb=8ae93e0c54ae685cb60ab15e33dab5704e595a02;p=libsigrokdecode.git diff --git a/decoders/rgb_led_ws281x/pd.py b/decoders/rgb_led_ws281x/pd.py index 0cb6603..b4f7c58 100644 --- a/decoders/rgb_led_ws281x/pd.py +++ b/decoders/rgb_led_ws281x/pd.py @@ -24,7 +24,7 @@ class SamplerateError(Exception): pass class Decoder(srd.Decoder): - api_version = 2 + api_version = 3 id = 'rgb_led_ws281x' name = 'RGB LED (WS281x)' longname = 'RGB LED string decoder (WS281x)' @@ -46,6 +46,9 @@ class Decoder(srd.Decoder): ) def __init__(self): + self.reset() + + def reset(self): self.samplerate = None self.oldpin = None self.ss_packet = None @@ -70,11 +73,14 @@ class Decoder(srd.Decoder): self.bits = [] self.ss_packet = None - def decode(self, ss, es, data): + def decode(self): if not self.samplerate: raise SamplerateError('Cannot decode without samplerate.') - for (self.samplenum, (pin, )) in data: + while True: + # TODO: Come up with more appropriate self.wait() conditions. + (pin,) = self.wait() + if self.oldpin is None: self.oldpin = pin continue