Christina Quast | 9836933 | 2015-03-02 16:08:40 +0100 | [diff] [blame] | 1 | #!/usr/bin/env python3 |
| 2 | |
| 3 | import usb.core |
| 4 | import usb.util |
| 5 | import sys |
| 6 | |
| 7 | |
| 8 | def find_dev(): |
| 9 | dev = usb.core.find(idVendor=0x03eb, idProduct=0x6004) |
| 10 | if dev is None: |
| 11 | raise ValueError("Device not found") |
| 12 | else: |
| 13 | print("Found device") |
| 14 | return dev |
| 15 | |
| 16 | def find_eps(dev): |
| 17 | dev.set_configuration() |
| 18 | |
| 19 | cfg = dev.get_active_configuration() |
| 20 | print("Active config: ") |
| 21 | print(cfg) |
| 22 | intf = cfg[(0,0)] |
| 23 | |
| 24 | ep_in = usb.util.find_descriptor( |
| 25 | intf, |
| 26 | custom_match = \ |
| 27 | lambda e: \ |
| 28 | usb.util.endpoint_direction(e.bEndpointAddress) == \ |
| 29 | usb.util.ENDPOINT_IN) |
| 30 | |
| 31 | assert ep_in is not None |
| 32 | |
| 33 | ep_out = usb.util.find_descriptor( |
| 34 | intf, |
| 35 | custom_match = \ |
| 36 | lambda e: \ |
| 37 | usb.util.endpoint_direction(e.bEndpointAddress) == \ |
| 38 | usb.util.ENDPOINT_OUT) |
| 39 | |
| 40 | assert ep_out is not None |
| 41 | print("****") |
| 42 | print(ep_in) |
| 43 | print(ep_out) |
| 44 | return (ep_in, ep_out) |
| 45 | |
| 46 | # main code |
Christina Quast | f2582fc | 2015-03-06 19:09:35 +0100 | [diff] [blame] | 47 | def sniff(): |
Christina Quast | 9836933 | 2015-03-02 16:08:40 +0100 | [diff] [blame] | 48 | dev = find_dev() |
Christina Quast | 9836933 | 2015-03-02 16:08:40 +0100 | [diff] [blame] | 49 | |
| 50 | while True: |
| 51 | #ep_out.write("Hello") |
| 52 | try: |
| 53 | ans = dev.read(0x82, 64, 1000) |
| 54 | print("".join("%02x " % b for b in ans)) |
| 55 | except KeyboardInterrupt: |
| 56 | print("Bye") |
| 57 | sys.exit() |
| 58 | except: |
| 59 | print("Timeout") |