You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

78 lines
3.0 KiB

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, program101
)
program_switch = {
1: program1,
100: program1_1,
2: program101,
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