]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/ps2/pd.py
ps2: end data byte at rising clock edge of the stop bit
[libsigrokdecode.git] / decoders / ps2 / pd.py
index 194b0b1f9b1f0069666e98e82508368288fd7632..a9d0a986daf0356b265c61f7e1fd6a24a09cfdd2 100644 (file)
@@ -116,6 +116,11 @@ class Decoder(srd.Decoder):
 
     def decode(self):
         while True:
-            # Sample data bits on falling clock edge.
-            clock_pin, data_pin = self.wait({0: 'f'})
+            # Sample data bits on the falling clock edge (assume the device
+            # is the transmitter). Expect the data byte transmission to end
+            # at the rising clock edge. Cope with the absence of host activity.
+            _, data_pin = self.wait({0: 'f'})
             self.handle_bits(data_pin)
+            if self.bitcount == 1 + 8 + 1 + 1:
+                _, data_pin = self.wait({0: 'r'})
+                self.handle_bits(data_pin)