X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=decoders%2Fusb_request%2Fpd.py;h=a4e357739dc44e1c9399d4f7873c1439c00906ee;hb=92b7b49f6964f57a7d6fc4473645c993cfa4ba52;hp=4227856a2d394b08b29e33eede08f5c0f9347ada;hpb=72b2a50cc23388ba3568fc96deda79a7e39cbfc5;p=libsigrokdecode.git diff --git a/decoders/usb_request/pd.py b/decoders/usb_request/pd.py index 4227856..a4e3577 100644 --- a/decoders/usb_request/pd.py +++ b/decoders/usb_request/pd.py @@ -137,8 +137,7 @@ class Decoder(srd.Decoder): ) def __init__(self): - self.samplerate = 8e6 # None - self.secs_per_sample = float(1) / float(self.samplerate) + self.samplerate = None self.request = {} self.request_id = 0 self.transaction_state = 'IDLE' @@ -152,7 +151,7 @@ class Decoder(srd.Decoder): self.put(ss, es, self.out_ann, data) def putb(self, ts, data): - self.put(ts, ts, self.out_bin, data) + self.put(ts, ts, self.out_binary, data) def pcap_global_header(self): # See https://wiki.wireshark.org/Development/LibpcapFileFormat. @@ -173,7 +172,7 @@ class Decoder(srd.Decoder): self.secs_per_sample = float(1) / float(self.samplerate) def start(self): - self.out_bin = self.register(srd.OUTPUT_BINARY) + self.out_binary = self.register(srd.OUTPUT_BINARY) self.out_ann = self.register(srd.OUTPUT_ANN) def handle_transfer(self): @@ -242,7 +241,7 @@ class Decoder(srd.Decoder): def write_pcap_header(self): if not self.wrote_pcap_header: - self.put(0, 0, self.out_bin, (0, self.pcap_global_header())) + self.put(0, 0, self.out_binary, [0, self.pcap_global_header()]) self.wrote_pcap_header = True def request_summary(self, request): @@ -270,8 +269,8 @@ class Decoder(srd.Decoder): # Issue PCAP 'SUBMIT' packet. ts = self.ts_from_samplenum(ss) pkt = pcap_usb_pkt(request, ts, True) - self.putb(ss, (0, pkt.record_header())) - self.putb(ss, (0, pkt.packet())) + self.putb(ss, [0, pkt.record_header()]) + self.putb(ss, [0, pkt.packet()]) if request_end == 1: # Write annotation. @@ -288,8 +287,8 @@ class Decoder(srd.Decoder): # Issue PCAP 'COMPLETE' packet. ts = self.ts_from_samplenum(es) pkt = pcap_usb_pkt(request, ts, False) - self.putb(ss, (0, pkt.record_header())) - self.putb(ss, (0, pkt.packet())) + self.putb(ss, [0, pkt.record_header()]) + self.putb(ss, [0, pkt.packet()]) del self.request[(addr, ep)] def decode(self, ss, es, data): @@ -308,9 +307,10 @@ class Decoder(srd.Decoder): return if self.transaction_state == 'TOKEN RECEIVED': transaction_timeout = self.transaction_es - # token length is 35 bits, timeout is 16..18 bit times (USB 2.0 7.1.19.1) + # Token length is 35 bits, timeout is 16..18 bit times + # (USB 2.0 7.1.19.1). transaction_timeout += int((self.transaction_es - self.transaction_ss) / 2) - if (ss > transaction_timeout): + if ss > transaction_timeout: self.transaction_es = transaction_timeout self.handshake = 'timeout' self.handle_transfer() @@ -350,6 +350,9 @@ class Decoder(srd.Decoder): self.transaction_es = es self.handle_transfer() + elif pname == 'PRE': + return + else: self.putr(ss, es, [4, ['ERR: received unhandled %s token in state %s' % (pname, self.transaction_state)]])