+
    Mj                        R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht RtR R ltR	 R
 ltR R ltR R lt]R8X  d   ]! ]! 4       4      hR# )z7Capture ESP32 serial logs for hardware troubleshooting.)annotationsN)Path)Serial)
list_portswchusbserialc                   V ^8  d   QhRR/# )   returnz
str | None )formats   "tools/serial_capture.py__annotate__r      s     	 	: 	    c                 "   \         P                  ! 4        Fu  p R P                  R V P                  V P                  V P
                  V P                  3 4       4      P                  4       p\        V9   g
   RV9   g   Ki  V P                  u # 	  R# ) c              3  L   "   T F  pV'       g   K  \        V4      x  K  	  R # 5i)N)str).0values   & r   	<genexpr>$find_default_port.<locals>.<genexpr>   s"      
V CJJVs   
$$ch340N)	r   comportsjoindevicedescriptionmanufacturerhwidlowerDEFAULT_PORT_GLOB)porthaystacks     r   find_default_portr"      sy    ##%88 
++t'7'79J9JDIIV
 
 %'	 	
 (Gx,?;; & r   c                   V ^8  d   QhRR/# r   r	   intr
   )r   s   "r   r   r      s      3 r   c                    \        \        P                  ! 4       4      p V '       g   \        R 4       ^# V  F  p. pVP                  '       d   VP                  VP                  4       VP                  '       d   VP                  VP                  4       V'       d   RRP                  V4       R2MRp\        VP                   V 24       K  	  ^ # )zNo serial ports found.z (z; ) )	listr   r   printr   appendr   r   r   )portsr    detailssuffixs       r   list_serial_portsr/      s    $$&'E&'NN4++,NN4,,-/62dii()+BfX&'  r   c                    V ^8  d   QhRRRR/# )r   argszargparse.Namespacer	   r%   r
   )r   s   "r   r   r   /   s     4 4$ 4 4r   c           	     *   V P                   ;'       g    \        4       pV'       g   \        R \        P                  R7       ^# V P
                  '       d$   \        V P
                  4      P                  4       MRpV'       d   VP                  RRR7      MRpRpRpRp\        RV RV P                   R	V P                   R
24       \        R4       \        P                  ! 4       V P                  ,           p \        WP                  RR7      ;_uu_ 4       p\        P                  ! 4       V8  d   VP                  4       p	V	'       g   K4  V	P                  RRR7      P!                  R4      p
\        V
4       V'       d   VP#                  V
R,           4       RV
9   d
   RV
9   d   RpRV
9   d   RpRV
9   g
   RV
9   g   K  RpK   RRR4       T'       d   TP)                  4        T'       d   \        RT 24       \        4        \        R4       \        RT'       d   RMR 24       \        R T'       d   RMR 24       \        R!T'       d   RMR 24       T P*                  '       d   T'       g   ^# ^ #   + '       g   i     L; i  \$         d    \        R4        L\&         dG   p\        RT RT 2\        P                  R7        Rp?T'       d   TP)                  4        ^# ^# Rp?ii ; i  T'       d   TP)                  4        i i ; i)"zHNo CH340/WCH serial port found. Try --list, then pass --port /dev/cu....)fileNwzutf-8)encodingFzOpening z at z
 baud for zs...z=Tip: press the ESP32 reset button now if you want a boot log.g      ?)timeoutreplace)errorsz

z[HTTP] Parsed	providersTz[WiFi] Connectedz[HTTP] Errorz[WiFi] Reconnect failedz	
Stopped.zCould not read z: zSaved log to zSummary:z  WiFi connected: yesnoz  Usage parsed:   z  Errors seen:    )r    r"   r*   sysstderroutr   
expanduseropenbaudsecondstime	monotonicr   readlinedecoderstripwriteKeyboardInterrupt	Exceptioncloseexpect_usage)r1   r    out_fileoutput	saw_usagesaw_connected	saw_errordeadlineserrawlineexcs   &           r   capturerX   /   sT   99++)+DX_b_i_ij.2hhhtDHH~((*DH5=X]]3]14FIMI	HTF$tyykDLL>
FG	
IJ~~$,,.HD))T22c.."X-llnzz')z<CCFKdLL-"d*{d/B $I%-$(M!T)-F$-N $I . 3* LLNhZ()	G	*	u4@
AB		ut<
=>		ut<
=>G 32  l vRu-CJJ?LLN 	 LLN sm   9J 2I9A3I9I9J 9J		J K7 	J K4"K7 $K4-K4.!K/K7 /K44K7 7Lc                   V ^8  d   QhRR/# r$   r
   )r   s   "r   r   r   f   s      c r   c                    \         P                  ! \        R 7      p V P                  RRRR7       V P                  RRR7       V P                  R\        R	R
7       V P                  R\        ^<R
7       V P                  RRR7       V P                  RRRR7       V P                  4       pVP                  '       d   \        4       # \        V4      # ))r   z--list
store_truezlist serial ports and exit)actionhelpz--portz0serial port, for example /dev/cu.wchusbserial110)r]   z--baudi  )typedefaultz	--secondsz--outz,optional file to save captured serial outputz--expect-usagez)exit non-zero unless usage data is parsed)	argparseArgumentParser__doc__add_argumentr%   
parse_argsr)   r/   rX   )parserr1   s     r   mainrf   f   s    $$9F
<XY
'YZ
sF;
#r:
&TU
(DopDyyy ""4=r   __main__)rb   
__future__r   r`   r=   rD   pathlibr   serialr   serial.toolsr   r   r"   r/   rX   rf   __name__
SystemExitr
   r   r   <module>rn      sV    = "  
    # # 	"4n z
TV
 r   