更新适配器生成流程;

简化适配器升级流程;
This commit is contained in:
何 泽隆
2024-09-28 16:55:30 +08:00
parent 6964dae3f5
commit 821ed9a6fa
2 changed files with 33 additions and 15 deletions

View File

@@ -3,6 +3,7 @@ from pathlib import Path
from serial import Serial from serial import Serial
from tools.ByteConv import trans_list_to_str from tools.ByteConv import trans_list_to_str
from func_frame import make_frame_dlt645, check_frame_dlt645 from func_frame import make_frame_dlt645, check_frame_dlt645
from func_upgrade import GeneratePackage_SLCP101_p460
modbus_map = { modbus_map = {
# 1 - Hex # 1 - Hex
@@ -349,12 +350,26 @@ def test_communication(time_out=2):
print(f"Success Rate: {log_success / (log_success + log_failed) * 100}%") print(f"Success Rate: {log_success / (log_success + log_failed) * 100}%")
dev_lamina.flag_print = saveconfig_print dev_lamina.flag_print = saveconfig_print
def make_Pakeage(fp: Path):
""" 生成升级包 """
hex_update = fp
file_package = fp.parent / f'{hex_update.stem}.dat'
file_update_bin = fp.parent / f'{hex_update.stem}.bin'
data_package, data_update_bin = GeneratePackage_SLCP101_p460(hex_update)
file_package.write_bytes(data_package)
file_update_bin.write_bytes(data_update_bin)
return file_package
if __name__=='__main__': if __name__=='__main__':
mode_config = { mode_config = {
"Log": {'com_name': None, "Log": {'com_name': None,
# 'addr_645': [0x01, 0x00, 0x00, 0x00, 0x00, 0x40], # 'addr_645': [0x01, 0x00, 0x00, 0x00, 0x00, 0x40],
}, },
"Debug": {'com_name': 'COM11', 'baudrate': 115200, 'parity': 'N', 'bytesize': 8, 'stopbits': 1, "Debug": {'com_name': 'COM8', 'baudrate': 115200, 'parity': 'N', 'bytesize': 8, 'stopbits': 1,
# 'addr_645': [0x01, 0x02, 0x03, 0x04, 0x05, 0x06], # 'addr_645': [0x01, 0x02, 0x03, 0x04, 0x05, 0x06],
'frame_print': True, 'frame_print': True,
'time_out': 0.1, 'retry': 1, 'retry_sub': 10}, 'time_out': 0.1, 'retry': 1, 'retry_sub': 10},
@@ -364,7 +379,6 @@ if __name__=='__main__':
'time_out': 0.5, 'retry': 3, 'retry_sub': 10}, 'time_out': 0.5, 'retry': 3, 'retry_sub': 10},
} }
dev_lamina = LaminaAdapter(**mode_config['Debug']) dev_lamina = LaminaAdapter(**mode_config['Debug'])
dev_lamina.frame_read(0x0100, 0x20) dev_lamina.frame_read(0x0100, 0x20)
@@ -458,10 +472,14 @@ if __name__=='__main__':
dev_lamina.frame_read(0x0170, 0x30) dev_lamina.frame_read(0x0170, 0x30)
if not hasattr(__builtins__,"__IPYTHON__"): if not hasattr(__builtins__,"__IPYTHON__"):
path_bin = Path(r"D:\WorkSpace\UserTool\SelfTool\FrameParser\test\p460_o1\result\lamina_optimizer_t1.dat") # file_package = Path(r"D:\WorkSpace\UserTool\SelfTool\FrameParser\test\p460_o1\result\lamina_optimizer_t1.dat")
# path_bin = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\SLCP001_240520_0000_T1.11.bin") # path_bin = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\SLCP001_240520_0000_T1.11.bin")
# 生产镜像版本 # 工程-即时转换
# path_bin = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\SLCP001_240525_1800_V1.12.bin") file_hex = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\lamina_adapter\Debug\lamina_adapter.hex")
if not file_hex.exists():
raise Exception("工程编译目标文件不存在.")
file_package = make_Pakeage(file_hex)
# 江苏发货产品灌装版本 # 江苏发货产品灌装版本
# path_bin = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\SLCP001_240603_2100_V1.18.bin") # path_bin = Path(r"D:\WorkingProject\LightStackAdapter\software\lamina_adapter\tools\upgrade\SLCP001_240603_2100_V1.18.bin")
@@ -476,7 +494,7 @@ if __name__=='__main__':
ret = dev_lamina.frame_read(0x0100, 0x20) ret = dev_lamina.frame_read(0x0100, 0x20)
time.sleep(1) time.sleep(1)
dev_lamina.frame_update(path_bin) dev_lamina.frame_update(file_package)
time.sleep(6) time.sleep(6)

View File

@@ -319,7 +319,7 @@ def GenerateImage_SLCP001_p4a0(path_boot: Path, path_main: Path, path_back: Path
return bytearray(Image), main_header, back_header return bytearray(Image), main_header, back_header
def GenerateImage_SLCP001_p460(path_boot: Path, path_main: Path, path_back: Path): def GenerateImage_SLCP101_p460(path_boot: Path, path_main: Path, path_back: Path):
""" 叠光适配器-460平台版本 镜像生成 """ """ 叠光适配器-460平台版本 镜像生成 """
config = { config = {
'prod_type': [0x45, 0x00], # 产品类型 'prod_type': [0x45, 0x00], # 产品类型
@@ -374,12 +374,12 @@ def GenerateImage_SLCP001_p460(path_boot: Path, path_main: Path, path_back: Path
return bytearray(Image), main_header, back_header return bytearray(Image), main_header, back_header
def GeneratePackage_SLCP001_p460(path_hex: Path): def GeneratePackage_SLCP101_p460(path_hex: Path):
""" 叠光适配器-460平台版本 生成升级包 """ """ 叠光适配器-460平台版本 生成升级包 """
config = { config = {
'prod_type': [0x45, 0x00], # 产品类型 'prod_type': [0x45, 0x00], # 产品类型
'method_compress': False, # 文件压缩 'method_compress': False, # 文件压缩
'prog_id': list(b"SLCP001"), # 程序识别号 'prog_id': list(b"SLCP101"), # 程序识别号
'prog_type': 'app', # 程序类型 'prog_type': 'app', # 程序类型
'area_code': [0x00, 0x00], # 地区 'area_code': [0x00, 0x00], # 地区
} }
@@ -411,7 +411,7 @@ def GeneratePackage_SLCP001_p460(path_hex: Path):
def GenerateImage_DLSY001_p460(path_boot: Path, path_main: Path, path_back: Path): def GenerateImage_DLSY001_p460(path_boot: Path, path_main: Path, path_back: Path):
""" 叠光适配器-460平台版本 镜像生成 """ """ 叠光优化器-460平台版本 镜像生成 """
config = { config = {
'prod_type': [0x45, 0x00], # 产品类型 'prod_type': [0x45, 0x00], # 产品类型
'method_compress': False, # 文件压缩 'method_compress': False, # 文件压缩
@@ -466,7 +466,7 @@ def GenerateImage_DLSY001_p460(path_boot: Path, path_main: Path, path_back: Path
def GeneratePackage_DLSY001_p460(path_hex: Path): def GeneratePackage_DLSY001_p460(path_hex: Path):
""" 叠光适配器-460平台版本 生成升级包 """ """ 叠光优化器-460平台版本 生成升级包 """
config = { config = {
'prod_type': [0x45, 0x00], # 产品类型 'prod_type': [0x45, 0x00], # 产品类型
'method_compress': False, # 文件压缩 'method_compress': False, # 文件压缩
@@ -616,13 +616,13 @@ def Process1():
hex_update = root / r"lamina_adapter_t1.hex" hex_update = root / r"lamina_adapter_t1.hex"
file_image = result / f'{hex_main.stem[:-6]}_ROM.bin' file_image = result / f'{hex_main.stem[:-6]}_ROM.bin'
file_main_header = result / 'SLCP001_header_main.bin' file_main_header = result / 'SLCP101_header_main.bin'
file_back_header = result / 'SLCP001_header_back.bin' file_back_header = result / 'SLCP101_header_back.bin'
file_package = result / f'{hex_update.stem}.dat' file_package = result / f'{hex_update.stem}.dat'
file_bin = result / f'{hex_update.stem}.bin' file_bin = result / f'{hex_update.stem}.bin'
data_bins = GenerateImage_SLCP001_p460(hex_boot, hex_main, hex_back) data_bins = GenerateImage_SLCP101_p460(hex_boot, hex_main, hex_back)
data_package, data_bins = GeneratePackage_SLCP001_p460(hex_update) data_package, data_bins = GeneratePackage_SLCP101_p460(hex_update)
file_image.write_bytes(data_bins[0].copy()) file_image.write_bytes(data_bins[0].copy())
file_main_header.write_bytes(data_bins[1].copy()) file_main_header.write_bytes(data_bins[1].copy())