X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=decoders%2Fi2cdemux%2Fi2cdemux.py;h=bb47f230a66f0ec834a7381fb87ee4baaf3a5d81;hp=49261600495bb88b6885d4fea40b0d97bf31768b;hb=a465436e627578f69c403de75a89522dfd883217;hpb=decde15ecb51b3326b31019af61e0a729b9c61d0 diff --git a/decoders/i2cdemux/i2cdemux.py b/decoders/i2cdemux/i2cdemux.py index 4926160..bb47f23 100644 --- a/decoders/i2cdemux/i2cdemux.py +++ b/decoders/i2cdemux/i2cdemux.py @@ -18,12 +18,7 @@ ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## -# # Generic I2C demultiplexing protocol decoder -# -# Takes an I2C stream as input and outputs multiple I2C streams, each stream -# containing only I2C packets for one specific I2C slave. -# import sigrokdecode as srd @@ -31,14 +26,13 @@ class Decoder(srd.Decoder): api_version = 1 id = 'i2cdemux' name = 'I2C demux' - longname = 'Generic I2C demultiplexer' - desc = 'TODO.' - longdesc = 'TODO.' + longname = 'I2C demultiplexer' + desc = 'Demux I2C packets into per-slave-address streams.' license = 'gplv2+' inputs = ['i2c'] outputs = [] # TODO: Only known at run-time. probes = [] - extra_probes = [] + optional_probes = [] options = {} annotations = [] @@ -62,10 +56,10 @@ class Decoder(srd.Decoder): # get the whole chunk of packets (from START to STOP). def decode(self, ss, es, data): - cmd, databyte, ack = data + cmd, databyte = data # Add the I2C packet to our local cache. - self.packets += [[ss, es, data]] + self.packets.append([ss, es, data]) if cmd in ('ADDRESS READ', 'ADDRESS WRITE'): if databyte in self.slaves: @@ -73,9 +67,9 @@ class Decoder(srd.Decoder): return # We're never seen this slave, add a new stream. - self.slaves += [databyte] - self.out_proto += [self.add(srd.OUTPUT_PROTO, - 'i2c-%s' % hex(databyte))] + self.slaves.append(databyte) + self.out_proto.append(self.add(srd.OUTPUT_PROTO, + 'i2c-%s' % hex(databyte))) self.stream = self.streamcount self.streamcount += 1 elif cmd == 'STOP':