]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/i2cdemux/i2cdemux.py
srd: Add usable one-liner descriptions for all PDs.
[libsigrokdecode.git] / decoders / i2cdemux / i2cdemux.py
index 354d06c23473f66c141d6eef0ce604515ff83c29..bb47f230a66f0ec834a7381fb87ee4baaf3a5d81 100644 (file)
 ## 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':