#!/usr/bin/env python # Copyright (C) 2012 Antti Palosaari # Script generates code from the RTL2832U USB-sniff. # Usage: import sys import re fread = file(sys.argv[1], 'r' ) def get_hex_string(ele, start, length): string = '"' for i in range(length): string = string + '\\x' + ele[start + i] string = string + '"' return string for line in fread: line = line.strip(); ele = re.split(' ', line) # print '// ' + line # rtl2832u - USB interface if (len(ele) > 17 and ele[15] == '>>>' and ( (ele[11] == '10' and ele[12] == '01') or (ele[11] == '10' and ele[12] == '02') or (ele[11] == '11' and ele[12] == '02'))): length = int(ele[13], 16) reg = '0x' + ele[10] + ele[9] print 'ret = rtl28xx_wr_regs(d, ' + reg + ', ' + \ get_hex_string(ele, 17, length) + ', ' + str(length) + '); // generated' # rtl2832 - demod if (len(ele) > 17 and ele[9] == '20' and ele[15] == '>>>'): length = int(ele[13], 16) bank = ele[11][1] print 'ret = rtl2832_wr_regs(priv, 0x' + ele[10] + ', ' + bank + ', ' + \ get_hex_string(ele, 17, length) + ', ' + str(length) + '); // generated' # e4000 if (len(ele) > 17 and ele[9] == 'c8' and ele[13] != '01' and ele[15] == '>>>'): length = int(ele[13], 16) - 1 print 'ret = e4000_wr_regs(priv, 0x' + ele[17] + ', ' + \ get_hex_string(ele, 18, length) + ', ' + str(length) + '); // generated' # fc2580 if (len(ele) > 17 and ele[9] == 'ac' and ele[13] != '01' and ele[15] == '>>>'): length = int(ele[13], 16) - 1 print 'ret = fc2580_wr_regs(priv, 0x' + ele[17] + ', ' + \ get_hex_string(ele, 18, length) + ', ' + str(length) + '); // generated' # fc0013 if (len(ele) > 17 and ele[9] == 'c6' and ele[13] != '01' and ele[15] == '>>>'): print 'ret = fc0013_writereg(priv, 0x' + ele[17] + ', 0x' + \ ele[18] + '); // generated' # tua9001 if (len(ele) > 17 and ele[9] == 'c0' and ele[15] == '>>>'): print 'ret = tua9001_wr_reg(priv, 0x' + ele[17] + ', 0x' + \ ele[18] + ele[19] + '); // generated' # r820t if (len(ele) > 17 and ele[9] == '34' and ele[13] != '01' and ele[15] == '>>>'): length = int(ele[13], 16) - 1 print 'ret = r820t_write(priv, 0x' + ele[17] + ', ' + \ get_hex_string(ele, 18, length) + ', ' + str(length) + '); // generated' fread.close()