diff options
Diffstat (limited to 'decoders')
-rw-r--r-- | decoders/timing/pd.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/decoders/timing/pd.py b/decoders/timing/pd.py index e687562..f14b64f 100644 --- a/decoders/timing/pd.py +++ b/decoders/timing/pd.py @@ -98,7 +98,7 @@ class Decoder(srd.Decoder): raise SamplerateError('Cannot decode without samplerate.') edge = self.options['edge'] avg_period = self.options['avg_period'] - last_samplenum = None + ss = None last_n = deque() last_t = None while True: @@ -109,10 +109,11 @@ class Decoder(srd.Decoder): else: pin = self.wait({Pin.DATA: 'e'}) - if not last_samplenum: - last_samplenum = self.samplenum + if not ss: + ss = self.samplenum continue - samples = self.samplenum - last_samplenum + es = self.samplenum + samples = es - ss t = samples / self.samplerate if t > 0: @@ -120,14 +121,14 @@ class Decoder(srd.Decoder): if len(last_n) > avg_period: last_n.popleft() - self.put(last_samplenum, self.samplenum, self.out_ann, + self.put(ss, es, self.out_ann, [Ann.TIME, [normalize_time(t)]]) if avg_period > 0: - self.put(last_samplenum, self.samplenum, self.out_ann, + self.put(ss, es, self.out_ann, [Ann.AVG, [normalize_time(sum(last_n) / len(last_n))]]) if last_t and self.options['delta'] == 'yes': - self.put(last_samplenum, self.samplenum, self.out_ann, + self.put(ss, es, self.out_ann, [Ann.DELTA, [normalize_time(t - last_t)]]) last_t = t - last_samplenum = self.samplenum + ss = es |