#!/usr/bin/env python
# Dumps USB BULK data from SniffUSB 2.0 log to file.
# Copyright (C) 2012 Antti Palosaari <crope@iki.fi>
# Usage: ./get_ep_data.py UsbSnoop.log  capture.bin

import os
import sys
import re
import struct
import string

fread = file(sys.argv[1], 'r' )
fwrite = open(sys.argv[2], 'wb')

offset = 1
capture = False

for line in fread:
    if (re.search("endpoint", line)):
        capture = True
    elif (re.search("TransferFlags", line)):
        continue
    elif (re.search("TransferBufferLength", line)):
        continue
    elif (re.search("TransferBuffer", line)):
        continue
    elif (re.search("TransferBufferMDL", line)):
        continue
    elif (re.match("    [0-9a-f]{8}: ", line)):
        if (capture == True):
            line = line.strip();
            ele = re.split(' ', line)

            for i in range(len(ele) - offset):
                data = struct.pack('B', int(ele[i + offset], 16))
                fwrite.write(data)
    else:
        capture = False

fread.close()
fwrite.close()
