52 lines
2.0 KiB
Python
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()
|