]> sigrok.org Git - libsigrokdecode.git/blobdiff - decoders/ps2/pd.py
sdcard_sd: Use SrdStrEnum for the state machine.
[libsigrokdecode.git] / decoders / ps2 / pd.py
index c23e01900115b0f59a821003a444a356d3c13e19..a9d0a986daf0356b265c61f7e1fd6a24a09cfdd2 100644 (file)
@@ -58,7 +58,6 @@ class Decoder(srd.Decoder):
 
     def reset(self):
         self.bits = []
-        self.samplenum = 0
         self.bitcount = 0
 
     def start(self):
@@ -117,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)