功能:将原始S19中的特定内容替换成指定的字符串,并重新计算校验和后,输出到新文件
import os,sys
def format_ccp_s19():
"""将cpp inca 数据格式化成s19升级文件"""
inca_data = []
with open("./ccp_inca_data.s19", "r") as rd:
inca_data = rd.readlines()
with open("./output.srec", "w+") as wr:
for item in inca_data:
replaced_value = item.replace("S3152000", "S2145E", 1)
#print("replaced value : " + replaced_value + "24 value " + replaced_value[2:4])
data_len = int(replaced_value[2:4], 16)
#print(data_len)
check_sum = 0
for i in range(0, data_len*2, 2):
check_sum += int(replaced_value[i+2:i+4], 16)
check_sum = 0xff - check_sum&0xff
#print("%02x" % check_sum)
new_str = replaced_value[:-3] + str("%02x" % check_sum).upper()
#print("new_chk sum " + str(hex(0xff - check_sum&0xff))[2:].upper())
#print(new_str)
wr.write(new_str + "\n")