Files
BA_DIY_Power_PCB/generate_pins_header.py
der_zaske 56f6c33124 changed structer of whole Project
-Added GPIO.c
-Added ADC.c
-Added mcpwm.c
-Added all headrs for new files
-Fixed Header usage
-Fixed parsed pins only import  once
2025-01-26 01:07:40 +01:00

53 lines
2.4 KiB
Python

import re
import os
# Verzeichnis des Skripts ermitteln und Pfade für sdkconfig und Header-Datei setzen
script_dir = os.path.dirname(os.path.abspath(__file__))
sdkconfig_path = os.path.join(script_dir, "sdkconfig")
header_path = os.path.join(script_dir, "parsed_pins.h")
# Überprüfen, ob sdkconfig existiert
if not os.path.exists(sdkconfig_path):
raise FileNotFoundError(f"sdkconfig file not found at {sdkconfig_path}")
# Definition der Konfigurationsvariablen, die jeweils 3 Pins enthalten sollen
config_entries = [
("CONFIG_I_SENSE_U_V_W_ADC", "CONFIG_I_SENSE_U_ADC", "CONFIG_I_SENSE_V_ADC", "CONFIG_I_SENSE_W_ADC"),
("CONFIG_HIN_U_V_W_GPIO", "CONFIG_HIN_U_GPIO", "CONFIG_HIN_V_GPIO", "CONFIG_HIN_W_GPIO"),
("CONFIG_LIN_U_V_W_GPIO", "CONFIG_LIN_U_GPIO", "CONFIG_LIN_V_GPIO", "CONFIG_LIN_W_GPIO"),
("CONFIG_HALL_A_B_C_GPIO", "CONFIG_HALL_A_GPIO", "CONFIG_HALL_B_GPIO", "CONFIG_HALL_C_GPIO"),
("CONFIG_IN_ENCODER_GPIO", "CONFIG_IN_ENC_A_GPIO", "CONFIG_IN_ENC_B_GPIO", "CONFIG_IN_ENC_BUT_GPIO"),
("CONFIG_EXT_ENCODER_GPIO", "CONFIG_EXT_ENC_INDX_GPIO","CONFIG_EXT_ENC_LEFT_GPIO", "CONFIG_EXT_ENC_RIGHT_GPIO"),
]
# Datei öffnen und auslesen
with open(sdkconfig_path, "r") as f:
content = f.read()
# Header-Datei erzeugen
with open(header_path, "w") as header:
header.write("// Automatically generated file. Do not modify.\n#ifndef PARSED_PINS_H\n#define PARSED_PINS_H\n\n")
for config_var, pin1_name, pin2_name, pin3_name in config_entries:
# Suche nach dem Konfigurationswert
match = re.search(rf'{config_var}="([^"]+)"', content)
if match:
# Pins als Integer-Array extrahieren
pins = match.group(1).split(",")
# Prüfe, ob genau drei Pins angegeben sind
if len(pins) != 3:
raise ValueError(f"{config_var} muss genau drei Pins enthalten.")
# Header-Einträge für die Pins hinzufügen
header.write(f"#define {pin1_name} {pins[0].strip()}\n")
header.write(f"#define {pin2_name} {pins[1].strip()}\n")
header.write(f"#define {pin3_name} {pins[2].strip()}\n")
header.write("\n")
print(f"Parsed {config_var}: {pins[0].strip()}, {pins[1].strip()}, {pins[2].strip()}")
else:
print(f"Warning: {config_var} not found in sdkconfig")
header.write("#endif")
print(f"Header file '{header_path}' generated successfully.")