Ë
    ºŸžg”  ã                   óZ   — d Z ddlZddlmZ  ej                  e«      Z G d„ d«      Zd„ Zy)uµ   
MÃ³dulo de interfaz de usuario - MVP v1.0

Implementa la interfaz de lÃ­nea de comandos para control del sistema, 
incluyendo procesamiento de comandos y visualizaciÃ³n de estado.
é    N)Údatetimec                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚCommandMenuc                 ó   — || _         y)uƒ   
        Inicializa el menÃº de comandos.
        
        Args:
            processor: Instancia del procesador principal
        N©Ú	processor)Úselfr   s     ú3/Users/jma/desarrollo/EV-Temp_rev04/src/cli/menu.pyÚ__init__zCommandMenu.__init__   s   € ð #ˆ�ó    c                 óÂ  — | j                   j                  r9	 | j                  «        | j                  «        | j                   j                  rŒ8yy# t        $ r. | j                   j
                  rt        j                  d«       Y yt        $ rO}t        j                  d|› �«       | j                   j
                  rt        j                  dd¬«       Y d}~Œ¡d}~ww xY w)zI
        Inicia el bucle principal de procesamiento de comandos.
        zEOFError recibidou   Error en menÃº de comandos: úError detallado:T©Úexc_infoN)	r   ÚrunningÚ_show_statusÚ_process_commandÚEOFErrorÚdebugÚloggerÚ	ExceptionÚerror)r	   Úes     r
   ÚstartzCommandMenu.start   sª   € ð �n‰n×$Ò$ð
DØ×!Ñ!Ô#Ø×%Ñ%Ô'ð �n‰n×$Õ$øô ò Ø—>‘>×'Ò'Ü—L‘LÐ!4Ô5ÙÜò DÜ—‘Ð;¸A¸3Ð?Ô@Ø—>‘>×'Ò'Ü—L‘LÐ!3¸d�LÔCÿøðDús   ˜ A Á4CÂCÂACÃCc                 ó´  — 	 g }| j                   j                  r|j                  d«       n|j                  d«       | j                   j                  r|j                  d«       t	        d«       t	        ddj                  |«      › �«       t	        dt        | j                   j                  «      › �«       t	        d«       t	        d	«       t	        d
«       t	        d«       t	        d«       t	        d«       y# t        $ rT}t        j                  d|› �«       | j                   j                  rt        j                  dd¬«       Y d}~yY d}~yd}~ww xY w)z7
        Muestra el estado actual del sistema.
        ÚVERBOSEÚNORMALÚDEBUGz
=== Sistema de Monitoreo ===zEstado: z | zEntradas activas: z
Comandos disponibles:z  X - Salirz  V - Toggle modo Verbosez  D - Toggle modo Debugz  S - Mostrar estadoz  M - Mostrar medicioneszError mostrando estado: r   Tr   N)r   ÚverboseÚappendr   ÚprintÚjoinÚlenÚentradasr   r   r   )r	   Úestadosr   s      r
   r   zCommandMenu._show_status)   s  € ð	@àˆGØ�~‰~×%Ò%Ø—‘˜yÕ)à—‘˜xÔ(Ø�~‰~×#Ò#Ø—‘˜wÔ'ô Ð2Ô3Ü�H˜UŸZ™Z¨Ó0Ð1Ð2Ô3ÜÐ&¤s¨4¯>©>×+BÑ+BÓ'CÐ&DÐEÔFô Ð+Ô,Ü�-Ô ÜÐ-Ô.ÜÐ+Ô,ÜÐ(Ô)ÜÐ,Õ-øÜò 	@Ü�L‰LÐ3°A°3Ð7Ô8Ø�~‰~×#Ò#Ü—‘Ð/¸$�×?Ñ?ô $ûð	@ús   ‚C7C: Ã:	EÄAEÅEc                 ó¦  — 	 t        d«      j                  «       j                  «       }| j                  j                  rt
        j	                  d|› �«       |dk(  rF| j                  j                  rt
        j	                  d«       | j                  j                  «        y|dk(  rF| j                  j                  rt
        j	                  d«       | j                  j                  «        y|dk(  r0t
        j	                  d«       | j                  j                  «        y|d	k(  rF| j                  j                  rt
        j	                  d
«       | j                  j                  «        y|dk(  rF| j                  j                  rt
        j	                  d«       | j                  j                  «        yt        d«       | j                  j                  rt
        j	                  d|› �«       yy# t        $ rT}t
        j                  d|› �«       | j                  j                  rt
        j	                  dd¬«       Y d}~yY d}~yd}~ww xY w)z>
        Procesa un comando ingresado por el usuario.
        z

Comando: zComando recibido: ÚXzIniciando secuencia de salidaÚVzCambiando modo verboseÚDzCambiando modo debugÚSzMostrando estado del sistemaÚMzMostrando mediciones actualesz)Comando no reconocido. Use X, V, D, S o MzComando no reconocido: zError procesando comando: r   Tr   N)ÚinputÚstripÚupperr   r   r   ÚstopÚtoggle_verboseÚtoggle_debugÚshow_statusÚshow_measurement_statusr!   r   r   )r	   Úcmdr   s      r
   r   zCommandMenu._process_commandH   s¨  € ð 	@Ü˜Ó&×,Ñ,Ó.×4Ñ4Ó6ˆCà�~‰~×#Ò#Ü—‘Ð1°#°Ð7Ô8à�cŠzØ—>‘>×'Ò'Ü—L‘LÐ!@ÔAØ—‘×#Ñ#Õ%Ø˜’Ø—>‘>×'Ò'Ü—L‘LÐ!9Ô:Ø—‘×-Ñ-Õ/Ø˜’Ü—‘Ð3Ô4Ø—‘×+Ñ+Õ-Ø˜’Ø—>‘>×'Ò'Ü—L‘LÐ!?Ô@Ø—‘×*Ñ*Õ,Ø˜’Ø—>‘>×'Ò'Ü—L‘LÐ!@ÔAØ—‘×6Ñ6Õ8äÐAÔBØ—>‘>×'Ò'Ü—L‘LÐ#:¸3¸%Ð!@ÕAð (øäò 	@Ü�L‰LÐ5°a°SÐ9Ô:Ø�~‰~×#Ò#Ü—‘Ð/¸$�×?Ñ?ô $ûð	@ús:   ‚BG3 Â"A
G3 Ã-4G3 Ä"A
G3 Å-A
G3 Æ89G3 Ç3	IÇ<AIÉIN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   © r   r
   r   r      s   „ ò#òDò"@ó>$@r   r   c                 ó   — t        | «      S )uÍ   
    Crea y retorna una nueva instancia del menÃº de comandos.
    
    Args:
        processor: Instancia del procesador principal
        
    Returns:
        CommandMenu: Nueva instancia del menÃº
    )r   r   s    r
   Úcreate_menur:   n   s   € ô �yÓ!Ð!r   )Ú__doc__Úloggingr   Ú	getLoggerr5   r   r   r:   r8   r   r
   ú<module>r>      s8   ðñó Ý à	ˆ×	Ñ	˜8Ó	$€÷^@ñ ^@ó@
"r   