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
78 lines
3.0 KiB
|
3 months ago
|
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
|
||
|
|
)
|
||
|
|
|
||
|
|
program_switch = {
|
||
|
|
1: program1,
|
||
|
|
100: program1_1,
|
||
|
|
2: program2,
|
||
|
|
3: program3,
|
||
|
|
300: program3_1,
|
||
|
|
4: program4,
|
||
|
|
5: program5,
|
||
|
|
500: program5_1,
|
||
|
|
6: program6,
|
||
|
|
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
|