X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=decoders%2Fi2c.py;h=8b8e665e47618535c685c9953ffba07668760ef1;hb=804404fc6d9393e4169c64f47c5adefaefb61480;hp=9ff89c9755993c797fc54ee9e34f475c92a525e0;hpb=e508088229e96423854ba6db63084c9bb18eeb34;p=libsigrokdecode.git diff --git a/decoders/i2c.py b/decoders/i2c.py index 9ff89c9..8b8e665 100644 --- a/decoders/i2c.py +++ b/decoders/i2c.py @@ -313,11 +313,26 @@ class Decoder(sigrok.Decoder): self.is_repeat_start = 0 self.wr = -1 - def decode(self, data): + def put(self, output_id, data): + timeoffset = self.timeoffset + ((self.samplenum - self.bitcount) * self.period) + if self.bitcount > 0: + duration = self.bitcount * self.period + else: + duration = self.period + print("**", timeoffset, duration) + super(Decoder, self).put(timeoffset, duration, output_id, data) + + def decode(self, timeoffset, duration, data): """I2C protocol decoder""" + self.timeoffset = timeoffset + self.duration = duration + print("++", timeoffset, duration, len(data)) + # duration of one bit in ps, only valid for this call to decode() + self.period = int(duration / len(data)) + # We should accept a list of samples and iterate... - for sample in sampleiter(data['data'], self.unitsize): + for sample in sampleiter(data, self.unitsize): # TODO: Eliminate the need for ord(). s = ord(sample.data)