import json from trajectory_program import ( program1, program1_1, program2, program3, program3_1, program4, program5, program5_1, program6, program7, program7_1, program8, program9, program10, program11, program12, program100 ) program_switch = { 1: program1, 100: program1_1, 2: program2, 3: program3, 300: program3_1, 4: program4, 5: program5, 500: program5_1, 6: program100, 7: program7, 700: program7_1, 8: program8, 9: program9, # 停机位置 10: program10, # 初始位置 11: program11, # 洗枪位置 12: program12, # 试枪位置 } # 定义四种循环序列 sequence_1 = [2, 300, 4, 100] # 情况1的循环序列,更改为循环序列使用透传 sequence_2 = [4, 1, 2, 3] # 情况2的循环序列,待修改,暂从程序中删除逻辑,如有需要,从V2.0中复制 sequence_3 = [6, 700, 8, 500] # 情况3的循环序列,更改为循环序列使用透传 sequence_4 = [8, 5, 6, 7] # 情况4的循环序列,待修改,暂从程序中删除逻辑,如有需要,从V2.0中复制 def load_process_config(config_path="/home/raspberrypi/robot1/config.json"): try: # 读取 JSON 文件 with open(config_path, "r", encoding="utf-8") as f: config = json.load(f) # ========== 关键:适配新的 JSON 结构 ========== processed_presets = [] for preset in config["PRESET_PARAMS"]: # 1. 处理单个预设项内的 program_delay_map(键转整数,值转浮点数) processed_delay_map = { int(key): float(value) for key, value in preset["program_delay_map"].items() } # 2. 处理 params(数组转元组,保持原代码格式) processed_params = tuple(preset["params"]) # 3. 保留 relay_config(无需类型转换,直接使用) processed_relay = preset["relay_config"] # 4. 组装处理后的预设项 processed_presets.append({ "params": processed_params, "program_delay_map": processed_delay_map, "relay_config": processed_relay }) # 替换原 PRESET_PARAMS 为处理后的版本 config["PRESET_PARAMS"] = processed_presets print(f"✅ 已加载配置文件,共加载 {len(processed_presets)} 个预设参数组") return config except FileNotFoundError: print(f"❌ 配置文件 {config_path} 未找到!") return None except json.JSONDecodeError: print(f"❌ 配置文件 {config_path} 格式错误!") return None except KeyError as e: print(f"❌ 配置文件结构错误:缺少关键字段 {str(e)},请检查 JSON 格式") return None except Exception as e: print(f"❌ 加载配置失败:{str(e)}") return None