From c240da484645ab78b19c8a8e2938df67039660f0 Mon Sep 17 00:00:00 2001 From: Gerhard Sittig Date: Sun, 18 Jun 2017 15:51:35 +0200 Subject: usb_signalling: Move another edge detection to common backend code Rephrase how the 'WAIT IDLE' stage skips over all-low input signals. Have the next high level on either line detected in common code. --- decoders/usb_signalling/pd.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'decoders/usb_signalling') diff --git a/decoders/usb_signalling/pd.py b/decoders/usb_signalling/pd.py index c0e0141..ae0f651 100644 --- a/decoders/usb_signalling/pd.py +++ b/decoders/usb_signalling/pd.py @@ -329,9 +329,10 @@ class Decoder(srd.Decoder): elif self.state == 'GET EOP': self.get_eop(sym) elif self.state == 'WAIT IDLE': + # Skip "all-low" input. Wait for high level on either DP or DM. pins = self.wait({'skip': 1}) - if pins == (0, 0): - continue + while not pins[0] and not pins[1]: + pins = self.wait([{0: 'h'}, {1: 'h'}]) if self.samplenum - self.samplenum_lastedge > 1: sym = symbols[self.options['signalling']][pins] self.handle_idle(sym) -- cgit v1.2.3-70-g09d2