SXXXXXXX_PyDownloadFwViaSRIO/tools/convert_ini_to_json.py
2026-01-22 17:10:05 +01:00

52 lines
2.0 KiB
Python

"""Utility script to convert targets.ini to flash_profiles.json.
This script reads the legacy targets.ini file and creates a properly
structured JSON configuration file for the new profile system.
"""
from pathlib import Path
import sys
# Add parent directory to path to import pydownloadfwviasrio
sys.path.insert(0, str(Path(__file__).parent.parent))
from pydownloadfwviasrio.profiles import initialize_from_targets_ini
def main() -> None:
"""Convert targets.ini to flash_profiles.json."""
ini_path = Path("_OLD/Vecchia_app/FpgaBeamMeUp/targets.ini")
json_path = Path("flash_profiles.json")
if not ini_path.exists():
print(f"Error: {ini_path} not found!")
return
print(f"Reading configuration from {ini_path}...")
manager = initialize_from_targets_ini(ini_path, json_path)
print(f"\nConfiguration loaded successfully!")
print(f"- Global IP: {manager.global_config.ip}:{manager.global_config.port}")
print(f"- Default target: {manager.global_config.default_target}")
print(f"- Models loaded: {len(manager.models)}")
print(f"- Targets loaded: {len(manager.targets)}")
print(f"\nModels:")
for id_model, model in sorted(manager.models.items()):
print(f" [{id_model}] {model.model}: {model.description}")
print(f" Sectors: {model.num_sectors}, 4-byte addr: {model.is_4byte_addressing}")
print(f" Golden: 0x{model.golden_start:08X} - 0x{model.golden_stop:08X}")
print(f" User: 0x{model.user_start:08X} - 0x{model.user_stop:08X}")
print(f"\nTargets:")
for id_target, target in sorted(manager.targets.items()):
model = manager.get_model(target.id_model)
model_name = model.model if model else "UNKNOWN"
print(f" {target.id_target}: {target.description}")
print(f" Slot: 0x{target.slot_address:02X}, Arch: {target.architecture}, Model: {model_name}")
print(f"\nConfiguration saved to {json_path}")
if __name__ == "__main__":
main()