- Implemented `test_path_validation.py` to test filename sanitization, path sanitization, and export path validation functions.
- Added comprehensive test cases for various problematic block names and paths to ensure proper handling of invalid characters and whitespace.
- Created `test_sanitization.py` to specifically address problematic block names with updated sanitization logic, including special cases for "I/O access error" and "Time error interrupt".
- Enhanced filename sanitization to replace specific problematic characters and patterns, ensuring consistent output for known issues.
- Implemented a new test script `test_simatic_sd_compatibility.py` to check the availability of SIMATIC SD format in TIA Scripting.
- Included detailed analysis of SIMATIC SD requirements based on official Siemens documentation.
- Provided feedback on supported and unsupported programming languages and block types.
- Added error handling for TIA Scripting import and environment variable checks.
- Implemented `parse_block_header_from_xml` function to extract block information from TIA Portal XML files.
- Created `_extract_common_attributes` helper function to retrieve common attributes from block nodes.
- Added `generate_block_header_comment` function to format the header comment based on extracted block information.
- Introduced `get_block_header_comment_from_xml` for convenience in generating header comments directly from XML files.
- Developed `add_header_to_file` function in a new test script to read SCL files, check for existing headers, and prepend a generated header from the corresponding XML file.
- Included error handling and logging for better debugging and user feedback.
- Added a new method to stop running scripts in the ScriptExecutor class, allowing graceful termination of scripts.
- Updated the ConfigurationManager class to handle script stopping requests and manage running processes.
- Enhanced the frontend JavaScript to include stop buttons for scripts, updating their state based on execution status.
- Introduced a mechanism to track running scripts and update UI elements accordingly.
- Improved logging for script execution and stopping events.
- Se modificaron los directorios de trabajo en `script_config.json` y `work_dir.json` para apuntar a la nueva ubicación de los archivos del proyecto 98050.
- Se actualizaron los logs de ejecución en `log_x0_main.txt` y `log_98050_PLC.txt` para reflejar las nuevas fechas, duraciones y resultados de los procesos de exportación.
- Se corrigieron rutas en varios archivos de configuración para asegurar la correcta ejecución de los scripts.
- Se modificaron los directorios de trabajo en `script_config.json` y `work_dir.json` para apuntar a la nueva ubicación de los archivos del proyecto 98050.
- Se actualizaron los logs de ejecución en `log_x1.txt` y `log_x4.txt` para reflejar las nuevas fechas, duraciones y resultados de los procesos de exportación.
- Se registraron errores en `log_x4.txt` relacionados con el acceso al proyecto, indicando que ya estaba abierto por otro usuario.
- Se modificaron los directorios de trabajo en `script_config.json` y `work_dir.json` para apuntar a la nueva ubicación de los archivos relacionados con el proyecto SIDEL.
- Se actualizaron los logs de ejecución en `log_x1.txt` y `log_x4.txt` para reflejar las nuevas fechas, duraciones y resultados de los procesos de exportación.
- Se implementó una nueva función de limpieza en `x0_main.py` para eliminar artefactos generados durante la ejecución de los scripts, mejorando la gestión de archivos temporales.
- Se realizaron ajustes en la interfaz de usuario para mejorar la experiencia al seleccionar y confirmar directorios de trabajo.
- Se añadió la funcionalidad de limpieza del estado previo en el gestor de lanzadores C#.
- Se implementó un método para reiniciar completamente el launcher, asegurando una inicialización adecuada.
- Se mejoró la gestión de argumentos para ejecutables, permitiendo la selección y ejecución con argumentos predefinidos.
- Se optimizó la lógica de inicialización y se añadieron mensajes de depuración para facilitar el seguimiento de errores.
- Se realizaron ajustes en la interfaz para mejorar la experiencia del usuario al gestionar proyectos y ejecutables.
- Se completó la implementación del editor de proyectos C#, permitiendo agregar, editar y eliminar proyectos con un formulario avanzado.
- Se mejoró la gestión de ejecutables C#, incluyendo la capacidad de ejecutar, obtener metadatos y argumentos predefinidos.
- Se añadieron nuevas rutas API para gestionar proyectos y ejecutables C#, mejorando la funcionalidad y la experiencia del usuario.
- Se actualizaron los logs para reflejar la ejecución de procesos y se implementaron notificaciones para el manejo de errores.
- Se mejoró la interfaz de usuario con nuevos modales para la gestión de proyectos y ejecutables, facilitando la interacción.
- Se añadió un nuevo launcher para proyectos C# que permite gestionar, ejecutar y categorizar aplicaciones compiladas.
- Se implementaron tres pestañas en la interfaz: "Scripts (Config)", "Launcher GUI (Python)" y "Launcher C#", mejorando la organización y accesibilidad.
- Se actualizaron los archivos de configuración y se mejoró la lógica de inicialización para soportar el nuevo sistema de C#.
- Se realizaron ajustes en la interfaz para incluir un panel de favoritos y un sistema de gestión de procesos en ejecución para C#.
- Se mejoró la documentación en `adicion_launcher4GUI.md` para reflejar las nuevas funcionalidades y estructura del proyecto.
- Se actualizaron los registros de ejecución en `log_x4.txt` para reflejar nuevas fechas y duraciones de los procesos.
- Se implementó una nueva clase `PortalDisposedException` para manejar excepciones relacionadas con el cierre inesperado de TIA Portal.
- Se mejoró la lógica de re-apertura del portal en `x4.py`, permitiendo múltiples intentos en caso de errores de acceso a bloques.
- Se normalizaron los nombres de bloques para evitar omisiones en la exportación de referencias cruzadas.
- Se actualizaron los logs de ejecución en `log_x0_main.txt` para reflejar el aumento en el número de archivos XML procesados.