Ë
    ¡žgÒ
  ã                   óª   — d Z ddlZddlZddlZddlZddlZddlZddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZ d
„ Zd„ Zedk(  r e«        yy)uÆ   
MÃ³dulo principal del sistema - MVP v1.0

Punto de entrada del sistema que coordina:
- InicializaciÃ³n de componentes
- Procesamiento histÃ³rico inicial
- Monitoreo continuo
- Interfaz de comandos
é    N)Údatetimeé   )Ú	LOG_LEVELÚPROCESS_INTERVAL)ÚHistoricalProcessor)ÚRealtimeProcessor)ÚCommandProcessor)Úcreate_menuc                  ój   — t        j                  t        d¬«       t        j                  t
        «      S )zConfigura el sistema de loggingz'%(asctime)s [%(levelname)s] %(message)s)ÚlevelÚfmt)ÚcoloredlogsÚinstallr   ÚloggingÚ	getLoggerÚ__name__© ó    ú//Users/jma/desarrollo/EV-Temp_rev04/src/main.pyÚsetup_loggingr      s)   € ä×ÑÜØ5õô ×ÑœXÓ&Ð&r   c                  ó@  — t        «       } t        j                  d¬«      }|j                  dd¬«       |j                  dddd	¬
«       |j	                  «       }	 t        |j                  «      }t        |j                  «      }t        |«      }|j                  r |j                  «        |j                  «        | j                  d«       |j                  «       r| j                  d«       n| j                  d«       t        j                  d«      j                   j#                  |j$                  «       t'        j(                  |j*                  ¬«      }d|_        |j+                  «        | j                  d«       |j.                  r6t        j0                  «        t3        j4                  d«       |j.                  rŒ6dt;        «       v rj=                  «        dt;        «       v rj=                  «        | j                  d«       y # t6        $ r | j                  d«       Y Œft8        $ r }| j                  d|› �d¬«       Y d }~Œ‰d }~ww xY w# dt;        «       v rj=                  «        dt;        «       v rj=                  «        | j                  d«       w xY w)Nz$Sistema de Monitoreo de Sensores IoT)ÚdescriptionÚdb_namezNombre de la base de datos)Úhelpz-vz	--verboseÚ
store_truezModo verbose)Úactionr   u/   Iniciando procesamiento de datos histÃ³ricos...u#   Procesamiento histÃ³rico completadou!   Error en procesamiento histÃ³ricor   )ÚtargetTz+Sistema iniciado en modo monitoreo continuou!   InterrupciÃ³n de usuario recibidazError en sistema: )Úexc_infoÚhistorical_procÚrealtime_proczSistema finalizado)r   ÚargparseÚArgumentParserÚadd_argumentÚ
parse_argsr   r   r   r	   ÚverboseÚtoggle_verboseÚinfoÚprocess_historical_dataÚerrorÚscheduleÚeveryÚminutesÚdoÚprocess_new_dataÚ	threadingÚThreadÚstartÚdaemonÚrunningÚrun_pendingÚtimeÚsleepÚKeyboardInterruptÚ	ExceptionÚlocalsÚstop)ÚloggerÚparserÚargsr   r    Úcommand_procÚcommand_threadÚes           r   ÚmainrA   !   s  € Ü‹_€Fô ×$Ñ$Ð1WÔX€FØ
×Ñ˜	Ð(DÐÔEØ
×Ñ˜˜k°,À^ÐÔTØ×ÑÓ€Dð)*ä-¨d¯l©lÓ;ˆÜ)¨$¯,©,Ó7ˆÜ'¨Ó6ˆà�<Š<Ø×*Ñ*Ô,Ø×(Ñ(Ô*ð 	�‰ÐEÔFØ×2Ñ2Ô4Ø�K‰KÐ=Õ>à�L‰LÐ<Ô=ô 	�‰�qÓ×!Ñ!×$Ñ$ ]×%CÑ%CÔDô #×)Ñ)°×1CÑ1CÔDˆØ $ˆÔØ×ÑÔà�‰ÐAÔBð ×#Ò#Ü× Ñ Ô"Ü�J‰J�qŒMð ×#Ó#ð ¤£Ñ(Ø× Ñ Ô"Øœf›hÑ&Ø×ÑÔ Ø�‰Ð(Õ)øô ò 9Ø�‰Ð7Ö8Üò >Ø�‰Ð)¨!¨Ð-¸ˆ×=Ñ=ûð>ûð ¤£Ñ(Ø× Ñ Ô"Øœf›hÑ&Ø×ÑÔ Ø�‰Ð(Õ)ús8   ÁE&H ÈIÈ%I È'IÈ/I
ÉI É
IÉI ÉAJÚ__main__)Ú__doc__r!   r   r*   r5   r/   r   r   Úconfig.settingsr   r   Úprocessors.historicalr   Úprocessors.realtimer   Úcli.commandsr	   Úcli.menur
   r   rA   r   r   r   r   ú<module>rI      sO   ðñó Û Û Û Û Û Ý ß 8Ý 6Ý 2Ý *Ý !ò'ò7*ðr ˆzÒÙ…Fð r   