From: Gerhard Sittig Date: Sun, 27 May 2018 07:46:01 +0000 (+0200) Subject: counter: prepare for variable width annotations X-Git-Url: https://sigrok.org/gitaction?a=commitdiff_plain;h=647d52869813b2df8ee82837f17681a77d0521e0;p=libsigrokdecode.git counter: prepare for variable width annotations Explicitly pass a start sample number to the .putc() method, to prepare annotations where ss differs from es. This is motivated by bug #1210. Stick with the narrow ss=es annotations for backwards compatibility. --- diff --git a/decoders/counter/pd.py b/decoders/counter/pd.py index 905de6e..23cbd97 100644 --- a/decoders/counter/pd.py +++ b/decoders/counter/pd.py @@ -68,8 +68,8 @@ class Decoder(srd.Decoder): def start(self): self.out_ann = self.register(srd.OUTPUT_ANN) - def putc(self, cls, annlist): - self.put(self.samplenum, self.samplenum, self.out_ann, [cls, annlist]) + def putc(self, cls, ss, annlist): + self.put(ss, self.samplenum, self.out_ann, [cls, annlist]) def decode(self): opt_edge_map = {'rising': 'r', 'falling': 'f', 'any': 'e'} @@ -90,16 +90,17 @@ class Decoder(srd.Decoder): word_count = 0 while True: self.wait(condition) + now = self.samplenum if have_reset and self.matched[cond_reset]: edge_count = 0 word_count = 0 - self.putc(ROW_RESET, ['Word reset', 'Reset', 'Rst', 'R']) + self.putc(ROW_RESET, now, ['Word reset', 'Reset', 'Rst', 'R']) continue edge_count += 1 - self.putc(ROW_EDGE, ["{:d}".format(edge_count)]) + self.putc(ROW_EDGE, now, ["{:d}".format(edge_count)]) if divider and (edge_count % divider) == 0: word_count += 1 - self.putc(ROW_WORD, ["{:d}".format(word_count)]) + self.putc(ROW_WORD, now, ["{:d}".format(word_count)])