X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=decoders%2Fi2cdemux%2Fi2cdemux.py;h=bb47f230a66f0ec834a7381fb87ee4baaf3a5d81;hp=354d06c23473f66c141d6eef0ce604515ff83c29;hb=a465436e627578f69c403de75a89522dfd883217;hpb=b77614bc977475102062ac5d1c8fe8e55349315a diff --git a/decoders/i2cdemux/i2cdemux.py b/decoders/i2cdemux/i2cdemux.py index 354d06c..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,9 +26,8 @@ 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. @@ -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':