上一篇博客中,虽然初步实现了想法,但仍缺少扩展。
0,提供文件名输入的接口,也加一下。
1,提供接口,让人输入lsc group的地址,包括valid_flag, start_addr, end_addr, checksum_addr。
2,进行valid_flag, checksum的校验。
3,将输出结果对齐,并写入文本记录,方便下次查看。
4,异常处理,也没有。
晚上搞出新代码,加油。
麻蛋,一忙起来就是两周。。累死了。。。
# -*- coding: UTF-8 -*-
import unittest
print "scs_debug_ver2.0"
def valid_flag(flag_data, valid_data=0x55):
if(flag_data == valid_data):
print "valid group"
return True
else:
print "group invalid"
return False
def valid_checksum(reg_data, ):
return True
def do_format_lsc_data(file_name):
try:
with open(file_name,'r') as f_read,open("test.log",'w+') as f_write:
i = 0
count = 0
couple = 0
temp = 0x00
data = 0
line = []
sort_data = []
for line in f_read:
i = i+1
if(i == lsc_flag_addr): #58
line_data = int((line.strip().split())[0],16)
Flag_check = valid_flag(line_data)
if(i > (vdata_start_addr - 1) and i < (vdata_end_addr +1)):
line_data = int((line.strip().split())[0],16)
couple = couple + 1
if( couple > 442):
couple = 1
print " \n"
f_write.write('\n')
if ( 0 == couple % 2):
data = temp + (line_data << 8)
sort_data.append(data)
count = count + 1
if ( 0 == count % 17):
print sort_data
cc = ".00f ".join([ str(scs_i) for scs_i in sort_data ])
f_write.write(cc+'.00f\n')
sort_data = []
else:
temp = line_data
except IOError as err:
print('file_error:' + str(err))
def format_lsc_data():
file_name = raw_input("文件拖进来 \n")
if( file_name is "" ):
file_name = 'hi556_kingcome_kbuffer_dump'
do_format_lsc_data(file_name)
lsc_group_flag = 0x55
lsc_group_sel = 0x00
vdata_offset_addr = 0x401 - 4
vdata_start_addr = 0x438 - vdata_offset_addr
vdata_end_addr = 0x0b1F - vdata_offset_addr
lsc_flag_addr = 0x437 - vdata_offset_addr
check_sum_addr = 0x0b20- vdata_offset_addr
format_lsc_data()