]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/timing/pd.py
cc1101: Simplify format_command().
[libsigrokdecode.git] / decoders / timing / pd.py
index b694c1ddfdb75d53407d08d132355cd9bfc877cb..d3e0d1f0530b53ab8bcd6541b9c8a35ddf754434 100644 (file)
@@ -25,19 +25,19 @@ class SamplerateError(Exception):
     pass
 
 def normalize_time(t):
-    if t >= 1.0:
+    if abs(t) >= 1.0:
         return '%.3f s  (%.3f Hz)' % (t, (1/t))
-    elif t >= 0.001:
+    elif abs(t) >= 0.001:
         if 1/t/1000 < 1:
             return '%.3f ms (%.3f Hz)' % (t * 1000.0, (1/t))
         else:
             return '%.3f ms (%.3f kHz)' % (t * 1000.0, (1/t)/1000)
-    elif t >= 0.000001:
+    elif abs(t) >= 0.000001:
         if 1/t/1000/1000 < 1:
             return '%.3f μs (%.3f kHz)' % (t * 1000.0 * 1000.0, (1/t)/1000)
         else:
             return '%.3f μs (%.3f MHz)' % (t * 1000.0 * 1000.0, (1/t)/1000/1000)
-    elif t >= 0.000000001:
+    elif abs(t) >= 0.000000001:
         if 1/t/1000/1000/1000:
             return '%.3f ns (%.3f MHz)' % (t * 1000.0 * 1000.0 * 1000.0, (1/t)/1000/1000)
         else:
@@ -53,7 +53,8 @@ class Decoder(srd.Decoder):
     desc = 'Calculate time between edges.'
     license = 'gplv2+'
     inputs = ['logic']
-    outputs = ['timing']
+    outputs = []
+    tags = ['Clock/timing', 'Util']
     channels = (
         {'id': 'data', 'name': 'Data', 'desc': 'Data line'},
     )
@@ -74,8 +75,10 @@ class Decoder(srd.Decoder):
     )
 
     def __init__(self):
+        self.reset()
+
+    def reset(self):
         self.samplerate = None
-        self.oldpin = None
         self.last_samplenum = None
         self.last_n = deque()
         self.chunks = 0
@@ -89,7 +92,6 @@ class Decoder(srd.Decoder):
     def start(self):
         self.out_ann = self.register(srd.OUTPUT_ANN)
         self.edge = self.options['edge']
-        self.initial_pins = [0]
 
     def decode(self):
         if not self.samplerate: