Desarrolladores/Extender
CLI, pruebas y contribución
Línea de comandos, modo headless, validación, suite de pruebas y flujo de contribución.
1 min de lectura
Línea de comandos
python -m abscada [proyecto] [--validate] [--headless] [--runtime] [--seconds N]
| Opción | Efecto |
|---|---|
| (ninguna) | Abre Studio con el proyecto (por defecto examples/plant) |
--runtime |
Abre solo la ventana de operación |
--validate |
Valida el proyecto y sale |
--headless --seconds N |
Adquiere sin interfaz y muestra valores en consola |
Uso como biblioteca
El núcleo no depende de Qt, así que puedes usarlo en tus propias herramientas:
from pathlib import Path
from abscada.project import Project
from abscada.runtime import Runtime
project = Project.load(Path("examples/s7"))
runtime = Runtime(project)
runtime.start()
try:
for name, sample in runtime.snapshot().items():
print(name, sample.value, sample.quality)
finally:
runtime.stop()
Pruebas
.venv\Scripts\python -m pip install -e ".[dev,s7,modbus]"
.venv\Scripts\python -m pytest -q
En CI se usa QT_QPA_PLATFORM=offscreen. Las pruebas de comunicación levantan servidores TCP externos en puertos efímeros: no hay simulación interna.
Herramientas incluidas
| Script | Uso |
|---|---|
tools/validate_library.py |
Valida un paquete de biblioteca |
tools/capture_demo.py |
Regenera capturas del producto |
tools/build_showcase.py |
Construye el proyecto laboratorio |
tools/showcase_plcs.py |
PLCs de prueba para el laboratorio |
Contribuir
- Abre un issue describiendo el problema o la propuesta.
- Mantén las fronteras de módulos: el núcleo no importa Qt.
- Añade pruebas para cualquier cambio de formato o comportamiento.
- No afirmes compatibilidad con equipos que no hayas probado.
El código se distribuye bajo GPL-3.0-or-later. Las contribuciones se aceptan bajo la misma licencia.