rendered paste body#!/usr/bin/env pythonimport sysov9650_regs = {0x00: "GAIN",0x01: "BLUE",0x02: "RED",0x03: "VREF",0x04: "COM1",0x05: "BAVE",0x06: "GEAVE",0x08: "RAVE",0x09: "COM2",0x0A: "PID",0x0B: "VER",0x0C: "COM3",0x0D: "COM4",0x0E: "COM5",0x0F: "COM6",0x10: "AECH",0x11: "CLKRC",0x12: "COM7",0x13: "COM8",0x14: "COM9",0x15: "COM10",0x17: "HSTART",0x18: "HSTOP",0x19: "VSTRT",0x1A: "VSTOP",0x1B: "PSHFT",0x1C: "MIDH",0x1E: "MVFP",0x1F: "LAEC",0x20: "BOS",0x21: "GBOS",0x22: "GROS",0x23: "ROS",0x24: "AEW",0x25: "AEB",0x26: "VPT",0x27: "BBIAS",0x28: "GbBIAS",0x29: "Gr_COM",0x2A: "EXHCH",0x2B: "EXHCL",0x2C: "RBIAS",0x2D: "ADVFL",0x2E: "ADVFH",0x2F: "YAVE",0x30: "HSYST",0x31: "HSYEN",0x32: "HREF",0x33: "CHLF",0x34: "ARBLM",0x37: "ADC",0x38: "ACOM",0x39: "OFON",0x3A: "TSLB",0x3B: "COM11",0x3C: "COM12",0x3D: "COM13",0x3E: "COM14",0x3F: "EDGE",0x40: "COM15",0x41: "COM16",0x42: "COM17",0x4F: "MTX1",0x50: "MTX2",0x51: "MTX3",0x52: "MTX4",0x53: "MTX5",0x54: "MTX6",0x55: "MTX7",0x56: "MTX8",0x57: "MTX9",0x58: "MTXS",0x62: "LCC1",0x63: "LCC2",0x64: "LCC3",0x65: "LCC4",0x66: "LCC5",0x67: "MANU",0x68: "MANV",0x69: "HV",0x6A: "MBD",0x6B: "DBLV",0x6C: "GSP(0)",0x6D: "GSP(1)",0x6E: "GSP(2)",0x6F: "GSP(3)",0x70: "GSP(4)",0x71: "GSP(5)",0x72: "GSP(6)",0x73: "GSP(7)",0x74: "GSP(8)",0x75: "GSP(9)",0x76: "GSP(10)",0x77: "GSP(11)",0x78: "GSP(12)",0x79: "GSP(13)",0x7A: "GSP(14)",0x7B: "GSP(15)",0x7C: "GST(0)",0x7D: "GST(1)",0x7E: "GST(2)",0x7F: "GST(3)",0x80: "GST(4)",0x81: "GST(5)",0x82: "GST(6)",0x83: "GST(7)",0x84: "GST(8)",0x85: "GST(9)",0x86: "GST(10)",0x87: "GST(11)",0x88: "GST(12)",0x89: "GST(13)",0x8A: "GST(14)",0x8B: "GST(15)",0x8C: "COM22",0x8D: "COM23",0x8E: "COM24",0x8F: "DBLC1",0x90: "DBLC_B",0x91: "DBLC_R",0x92: "DM_LNL",0x93: "DM_LNH",0x9D: "LCCFB",0x9E: "LCCFR",0x9F: "DBLC_Gb",0xA0: "DBLC_Gr",0xA1: "AECHM",0xA4: "COM25",0xA5: "COM26",0xA6: "G_GAIN",0xA7: "VGA_ST",0xA8: "ACOM(0)",0xA9: "ACOM(1)",0xAA: "ACOM(2)"}def ov9650_name(reg): if reg in ov9650_regs.keys(): return ov9650_regs[reg] else: return "RSVD(%02x)" % regdef i2c_write(reg, value): print "write(%s, 0x%02x)" % (ov9650_name(reg), value)def i2c_read(reg, value): print "\tread(%s): 0x%02x" % (ov9650_name(reg), value)NONE = 0x00WRITE = 0x60READ = 0x61reg = -1if len(sys.argv) < 2: print "usage: beautify.py <haret log>" sys.exit(1)f=open(sys.argv[1])state = NONEfor l in f.readlines(): if not l.endswith("ae301688\r\n"): continue# print l[:-1] l = l.split() store = "strb" in l[4] idbr = int(l[5][-2:],16) if state == NONE: if store and idbr == 0x60: state = WRITE elif store and idbr == 0x61: state = READ else: print "Unexpected store: %02x" % idbr sys.exit(1) elif state == WRITE: if reg < 0: reg = idbr else: if idbr == 0x61: state = READ else: i2c_write(reg, idbr) state = NONE reg = -1 elif state == READ: i2c_read(reg, idbr) reg = -1 state = NONEf.close()