]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/transitioncounter.py
Decoders: Use 4 spaces for indentation as per PEP-8.
[libsigrokdecode.git] / decoders / transitioncounter.py
index 996cf2e0003d487281f7a8b267999c317a0f5e4c..d3fa73273223e426657edc9c295f9420ec9f9a44 100644 (file)
@@ -17,6 +17,7 @@
 ## along with this program; if not, write to the Free Software
 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 ##
+
 import sigrok
 
 lastsample = None
@@ -25,79 +26,78 @@ transitions = None
 rising = None
 falling = None
 
-
 def decode(sampledata):
-       """Counts the low->high and high->low transitions in the specified
-          channel(s) of the signal."""
-       global lastsample
-       global oldbit, transitions, rising, falling
+    """Counts the low->high and high->low transitions in the specified
+       channel(s) of the signal."""
+    global lastsample
+    global oldbit, transitions, rising, falling
+
+    # TODO: Don't hardcode the number of channels.
+    channels = 8
+
+    # FIXME: Get the data in the correct format in the first place.
+    inbuf = [ord(x) for x in sampledata['data']]
 
-       # TODO: Don't hardcode the number of channels.
-       channels = 8    
+    if lastsample == None:
+        oldbit = [0] * channels
+        transitions = [0] * channels
+        rising = [0] * channels
+        falling = [0] * channels
 
-       # FIXME: Get the data in the correct format in the first place.
-       inbuf = [ord(x) for x in sampledata['data']]
+        # Initial values.
+        lastsample = inbuf[0]
+        for i in range(channels):
+            oldbit[i] = (lastsample & (1 << i)) >> i
 
-       if lastsample == None:
-               oldbit = [0] * channels
-               transitions = [0] * channels
-               rising = [0] * channels
-               falling = [0] * channels
+    # TODO: Handle LAs with more/less than 8 channels.
+    for s in inbuf:
+        # Optimization: Skip identical bytes (no transitions).
+        if lastsample != s:
+            for i in range(channels):
+                curbit = (s & (1 << i)) >> i
+                # Optimization: Skip identical bits (no transitions).
+                if oldbit[i] == curbit:
+                    continue
+                elif (oldbit[i] == 0 and curbit == 1):
+                    rising[i] += 1
+                elif (oldbit[i] == 1 and curbit == 0):
+                    falling[i] += 1
+                oldbit[i] = curbit
 
-               # Initial values.
-               lastsample = inbuf[0]
-               for i in range(channels):
-                       oldbit[i] = (lastsample & (1 << i)) >> i
-               
-       # TODO: Handle LAs with more/less than 8 channels.
-       for s in inbuf:
-               # Optimization: Skip identical bytes (no transitions).
-               if lastsample != s:
-                       for i in range(channels):
-                               curbit = (s & (1 << i)) >> i
-                               # Optimization: Skip identical bits (no transitions).
-                               if oldbit[i] == curbit:
-                                       continue
-                               elif (oldbit[i] == 0 and curbit == 1):
-                                       rising[i] += 1
-                               elif (oldbit[i] == 1 and curbit == 0):
-                                       falling[i] += 1
-                               oldbit[i] = curbit
+            # Total number of transitions is the sum of rising and falling edges.
+            for i in range(channels):
+                transitions[i] = rising[i] + falling[i]
 
-                       # Total number of transitions is the sum of rising and falling edges.
-                       for i in range(channels):
-                               transitions[i] = rising[i] + falling[i]
-               
-                       lastsample = s
-                       print(transitions)
+            lastsample = s
+            print(transitions)
 
-       sigrok.put(sampledata)
+    sigrok.put(sampledata)
 
 register = {
-       'id': 'transitioncounter',
-       'name': 'Transition counter',
-       'longname': '...',
-       'desc': 'Counts rising/falling edges in the signal.',
-       'longdesc': '...',
-       'author': 'Uwe Hermann',
-       'email': 'uwe@hermann-uwe.de',
-       'license': 'gplv2+',
-       'in': ['logic'],
-       'out': ['transitioncounts'],
-       'probes': [
-               # All probes.
-       ],
-       'options': {
-               # No options so far.
-       },
-       # 'start': start,
-       # 'report': report,
+    'id': 'transitioncounter',
+    'name': 'Transition counter',
+    'longname': '...',
+    'desc': 'Counts rising/falling edges in the signal.',
+    'longdesc': '...',
+    'author': 'Uwe Hermann',
+    'email': 'uwe@hermann-uwe.de',
+    'license': 'gplv2+',
+    'in': ['logic'],
+    'out': ['transitioncounts'],
+    'probes': [
+        # All probes.
+    ],
+    'options': {
+        # No options so far.
+    },
+    # 'start': start,
+    # 'report': report,
 }
 
 # Use psyco (if available) as it results in huge performance improvements.
 try:
-       import psyco
-       psyco.bind(decode)
+    import psyco
+    psyco.bind(decode)
 except ImportError:
-       pass
+    pass