Ascensor y Console Manager es un proyecto formado por 3 componentes principales:
-
El módulo
elevator_backendque describe el funcionamiento de un ascensor. -
El módulo
console_managerque permite gestionar el control por comandos de cualquier aplicación Python. -
Las
Demosque implementen cualquiera de los 2 componentes anteriores:- La Demo
Manualque representa un ascensor a tiempo real utilizandopygamepara la visualización y el móduloconsole_managerpara el control desde una ventana de consola estándar.
- La Demo
-
Módulo
elevator_backend:- Representación lógica de un ascensor
- Función
add_target(target, source)para simular:- el llamamiento al ascensor desde cualquier piso
- la pulsación de un botón dentro del ascensor
- Función
next_step()que avanza un paso en la simulación del ascensor
-
Módulo
console_manager:- Clase
Commandque describe la estructura de un comando - Clase
ConsoleManagerque permite:- Añadir comandos de tipo
Commandal gestor con la funciónaddCommand(command) - Pedir al usuario la introducción de comandos y gestionarlos con la función
consoleManager()hasta que la aplicación se cierre - Visualizar con el comando
helptodos los comandos, su descripción y su sintaxis en una tabla
- Añadir comandos de tipo
- Clase
-
Demo
Manual:- Representación visual de un ascensor en una ventada de
pygame - Control a través de la introducción de comandos en una consola, gestionados por el módulo
console_manager - Uso de
hilospara separar la visualización del control - Cálculo del máximo número de pisos para el ascensor en base a la resolución vertical de la pantalla
- Número de pisos introducido por el usuario
- Diferenciación por colores de los distintos tipos de mensajes en la consola
- Representación visual de un ascensor en una ventada de
-
Lenguaje:
Python -
Módulo
console_manager:- Módulos de terceros:
coloramapara imprimir en la consola en colorterminaltablespara mostrar los comandos disponibles en una tabla
- Módulos de terceros:
-
Demo
Manual:-
Módulos de Python:
os.systempara:- modificar el tamaño inicial de la consola
- borrar todo lo que contenga
os.environpara:- ocultar lo que pygame imprime en la consola al iniciarse
- modificar la posición de la ventana de pygame
threadingpara ejecutar el control por comandos en un hilo distinto al principalwin32api.GetSystemMetricspara obtener la resolución de la pantalla
-
Módulos de terceros:
pygamepara la representación visual del ascensor
-
-
Módulo
elevator_backend:- Función
add_target(target, source)para añadir un objetivo para el ascensor- Parámetro
target: número del piso objetivo - Parámetro
source: fuente de la llamada, que puede ser:floor: simulando la llamada al ascensor desde un rellanoelevator: simulando la pulsación de uno de los botones dentro del ascensor
- Parámetro
- Función
next_step()para avanzar un paso en la simulación del ascensor
- Función
-
Módulo
console_manager:-
Clase
Commandque describe la estructura de un comando- Parámetros del constructor:
name: nombre del comandoshort: abreviación del comandoaction: función a ejecutar cuando se llame al comandosyntax: sintaxis del comandodescription: descripción del comando
- Función
execute(arguments)que ejecuta la acción del comando en base a unos argumentos (vacíos si innecesarios)
- Parámetros del constructor:
-
Clase
ConsoleManagerpara la gestión de los comandos que se le introduzcan- Función
addCommand(command)que añade un comando de tipoCommandal gestor - Función
consoleManager()que está constantemente pidiendo al usuario la introducción comandos para ejecutar
- Función
-
-
Demo
Manual:- Descripción del funcionamiento no disponible por el momento
- Pruébala tú mismo descargando y ejecutando el programa
Demos/Manual/Manual.exe