]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/usb_power_delivery/pd.py
Add wiegand decoder.
[libsigrokdecode.git] / decoders / usb_power_delivery / pd.py
index 034c4a904ccc125ed73a77c334aaf378cbbe4f74..ad28d97a3c34c45aaafa5e41572043bfd72fa64e 100644 (file)
@@ -178,6 +178,9 @@ VDM_CMDS = {
 }
 VDM_ACK = ['REQ', 'ACK', 'NAK', 'BSY']
 
+class SamplerateError(Exception):
+    pass
+
 class Decoder(srd.Decoder):
     api_version = 2
     id = 'usb_power_delivery'
@@ -469,7 +472,7 @@ class Decoder(srd.Decoder):
 
     def us2samples(self, us):
         if not self.samplerate:
-            raise Exception('Need the samplerate.')
+            raise SamplerateError('Need the samplerate.')
         return int(us * self.samplerate / 1000000)
 
     def decode_packet(self):
@@ -524,11 +527,11 @@ class Decoder(srd.Decoder):
         bitrate = self.samplerate*len(self.bits) / float(es - ss)
         self.put(es, ss, self.out_bitrate, int(bitrate))
         # Raw binary data (BMC decoded)
-        self.put(es, ss, self.out_binary, (0, bytes(self.bits)))
+        self.put(es, ss, self.out_binary, [0, bytes(self.bits)])
 
     def decode(self, ss, es, data):
         if not self.samplerate:
-            raise Exception('Cannot decode without samplerate.')
+            raise SamplerateError('Cannot decode without samplerate.')
         for (self.samplenum, pins) in data:
             # find edges ...
             if self.oldpins == pins: