�
{�QNc@s�ddlZddlZddlZddlZdadad�Zd�Zejddfkrod�Z n d �Z ej
d
kr�ddlZdefd��YZ
e
�an�ej
d
kr&ddlZddlZddlZdefd��YZ
e
�ad�Ztj�ee_nedej��dZdZdZdddfZdddfZddddfZdefd��YZd�Zed kr�e�ndS(!i����NsscCs8t|�}|dkr*dtd�|St|�SdS(s)generate a readable description for a keyi sCtrl+%ct@N(tordtrepr(t charactert
ascii_code((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pytkey_descriptionscCs�di
ttdd�d6tt�d6tt�d6td�d6td �d
6td�d6td
�d6td�d6td�d6td�d6td�d6tt�d6tt�d6S(Nsw
--- pySerial (%(version)s) - miniterm - help
---
--- %(exit)-8s Exit program
--- %(menu)-8s Menu escape key, followed by:
--- Menu keys:
--- %(itself)-7s Send the menu character itself to remote
--- %(exchar)-7s Send the exit character itself to remote
--- %(info)-7s Show info
--- %(upload)-7s Upload file (prompt will be shown)
--- Toggles:
--- %(rts)-7s RTS %(echo)-7s local echo
--- %(dtr)-7s DTR %(break)-7s BREAK
--- %(lfm)-7s line feed %(repr)-7s Cycle repr mode
---
--- Port settings (%(menu)s followed by the following):
--- p change port
--- 7 8 set data bits
--- n e o s m change parity (None, Even, Odd, Space, Mark)
--- 1 2 3 set stop bits (1, 2, 1.5)
--- b change baud rate
--- x X disable/enable software flow control
--- r R disable/enable hardware flow control
tVERSIONsunknown versiontversiontexittmenustrtssRstdtrstlfmstbreakstechos tinfostuploadtitselftexchar(tgetattrtserialRtEXITCHARCTERt
MENUCHARACTER(((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyt
get_help_texts
iicCs
|jd�S(Ntlatin1(tdecode(tb((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyREscCs|S(N((R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyRHstnttConsolecBs,eZd�Zd�Zd�Zd�ZRS(cCsdS(N((tself((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyt__init__QscCsdS(N((R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pytsetupTscCsdS(N((R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pytcleanupWscCsVxOtrQtj�}|dks-|dkr:tj�q|dkrJdS|SqWdS(Nts�s
s
(tTruetmsvcrttgetch(Rtz((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pytgetkeyZs
(t__name__t
__module__RRR R&(((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyRPs tposixcBs,eZd�Zd�Zd�Zd�ZRS(cCstjj�|_dS(N(tsyststdintfilenotfd(R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyRiscCs�tj|j�|_tj|j�}|dtj@tj@tj@|d<d|dtj<d|dtj<tj |jtj
|�dS(Niiii(ttermiost tcgetattrR-toldtICANONtECHOtISIGtVMINtVTIMEt tcsetattrtTCSANOW(Rtnew((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyRls&cCstj|jd�}|S(Ni(tostreadR-(Rtc((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyR&tscCs tj|jtj|j�dS(N(R.R6R-t TCSAFLUSHR0(R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyR xs(R'R(RRR&R (((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyRhs cCstj�dS(N(tconsoleR (((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pytcleanup_console}ss9Sorry no implementation for your platform (%s) available.iis
s
s
tLFtCRsCR/LFtrawssome controlsall controlthextMinitermcBseeZeedd�Zd�Zd�Zd�Zd�Zed�Z d�Z
d�Zd �ZRS(
ic Cs�y1tj||d|d|d|dd�|_Wn>tk
rqtj||d|d|d|dd�|_nX||_||_||_t|j|_t |_
t |_t|_
dS(Ntparitytrtsctstxonxoffttimeouti(Rtserial_for_urltAttributeErrortSerialRt repr_modetconvert_outgoingtNEWLINE_CONVERISON_MAPtnewlineR"t dtr_statet rts_statetFalsetbreak_state( RtporttbaudrateRDRERFRRLRK((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyR�s1
1 cCsBt|_tjd|j�|_|jjt�|jj�dS(sStart reader threadttargetN(R"t
_reader_alivet threadingtThreadtreadertreceiver_threadt setDaemontstart(R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyt
_start_reader�s cCst|_|jj�dS(s6Stop reader thread only, wait for clean exit of threadN(RQRVRZtjoin(R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyt_stop_reader�s cCsLt|_|j�tjd|j�|_|jjt�|jj�dS(NRU( R"taliveR]RWRXtwriterttransmitter_threadR[R\(R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyR\�s
cCs
t|_dS(N(RQR`(R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pytstop�scCs'|jj�|s#|jj�ndS(N(RbR^RZ(Rt
transmit_only((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyR^�s
cCs�tjjd|jj|jj|jj|jj|jjf�tjjd|j r\dp_d|j
rndpqd|jr�dp�df�yxtjjd|jj�r�dp�d|jj
�r�dp�d|jj�r�dp�d|jj�r�dp�df�Wntjk
rnXtjjd|jjr8dp;d�tjjd|jjr^dpad�tjjdt|jt|jf�dS( Ns
--- Settings: %s %s,%s,%s,%s
s&--- RTS: %-8s DTR: %-8s BREAK: %-8s
tactivetinactives---- CTS: %-8s DSR: %-8s RI: %-8s CD: %-8s
s--- software flow control: %s
s--- hardware flow control: %s
s$--- data escaping: %s linefeed: %s
(R*tstderrtwriteRtportstrRTtbytesizeRDtstopbitsRPRORRtgetCTStgetDSRtgetRItgetCDtSerialExceptionRFREt
REPR_MODESRKtLF_MODESRL(R((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pytdump_port_settings�s. $&&
cCsy�x�|jr�|jr�t|jjd��}|jdkr�|dkrm|jtkrmtj j
d�q�tj j
|�nF|jdkrW|jtkr�|dkr�|dkr�tj j
d�qT|dkrTqTq�|dkr |jtkr tj j
d�q�|dkr7|jtkr7tj j
d�q�tj j
t
|�dd!�no|jdkr�tj j
t
|�dd!�n@|jdkr�x.|D]#}tj j
d |jd
��q�Wntj j�qWWn"tjk
r�}t|_�nXdS(sloop and copy serial->consoleiis
s
s
i����iis%s RBN(R`RVRRR:RKRLt
CONVERT_CRR*tstdoutRhtCONVERT_CRLFt
CONVERT_LFRtencodetflushRpRQ(RtdataR;te((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyRY�s6
$ cCs> t}y x |jr" ytj�}Wn#tk
rJtjdg�}nXt|�}|rl|tksu|t kr�|jj
|�|jrctj
j
|�qcn�|dkr�tjj
d�tjj�tj�tjj�jd�}|r�y�t|d�}tjj
d|�xftr�|j�jd�}|sCPn|jj
|�|jj
d�|jj�tjj
d�qWtjj
d|�Wq�tk
r�}tjj
d ||f�q�Xntj�n�|d
kr�tjj
t��nh|dkrM|j|_|jj|j�tjj
d|jrBd
pEd�n|dkr�|j|_|jj|j�tjj
d|jr�d
p�d�n�|dkr�|j|_|jj|j�tjj
d|jr�d
p�d�nr|dkr0|j|_tjj
d|jr%d
p(d�n3|dkrI|j�n|dkr�|j d7_ |j dkrd|_ ntjj
dt!|j f�n�|dkr|j"d7_"|j"dkr�d|_"nt#|j"|_$tjj
dt%|j"f�n\|dkr�tjj
d�tjj�tj�ytjj�j&�}Wntk
rld5}nXtj�|rc||jj(krc|j)�|jj*�} y�ytj+|dt�}
Wn&t,k
r�tj-�}
||
_(nX|
j.| �|
j�|
j|j�|
j|j�|
j|j�Wn4t/k
rk}tjj
d |f�|
j0�n4X|jj0�|
|_tjj
d!|jj(f�|j1�qcn�|d"krctjj
d#�tjj�tj�|jj2}y%t3tjj�j&��|j_2Wn6t4k
rK}tjj
d$|f�||j_2nX|j�tj�n|d%kr�tj5|j_6|j�n�|d&kr�tj7|j_6|j�n�|d'kr�tj8|j_9|j�n�|d(krtj:|j_9|j�n`|d)kr+tj;|j_9|j�n8|d*krStj<|j_9|j�n|d+kr{tj=|j_9|j�n�|d,kr�tj>|j_?|j�n�|d-kr�tj@|j_?|j�n�|d.kr�tjA|j_?|j�np|d/kr|d0k|j_B|j�nE|d1krI|d2k|j_C|j�ntjj
d3tD|��t}q|tkr�t}q|t kr�|jE�Pq|d4kr�|jj
|j$�|jr tj
j
|�tj
j�q q|jj
|�|jrtj
j
|�tj
j�qqWWnt|_�nXd5S(6s� Loop and copy console->serial until EXITCHARCTER character is
found. When MENUCHARACTER is found, interpret the next key
locally.
iss
--- File to upload: s
trs--- Sending file %s ---
t.s
--- File %s sent ---
s"--- ERROR opening file %s: %s ---
shH?ss--- RTS %s ---
ReRfss--- DTR %s ---
ss--- BREAK %s ---
ss--- local echo %s ---
s siis--- escape data: %s ---
sis--- line feed %s ---
tpPs
--- Enter port name: tdo_not_opens#--- ERROR opening new port: %s ---
s--- Port changed to: %s ---
tbBs
--- Baudrate: s#--- ERROR setting baudrate: %s ---
t8t7teEtoOtmMtsStnNt1t2t3txXtXtrRtRs!--- unknown menu character %s --
s
N(FRQR`R=R&tKeyboardInterruptRtto_bytesRRRRhRR*RuRgRyR R+treadlinetrstriptopenR"tIOErrorRRRPtsetRTSROtsetDTRRRtsetBreakRsRKRqRLRMRNRrtstriptNoneRSR_tgetSettingsDictRHRIRJtapplySettingsDictt ExceptiontcloseR]RTtintt
ValueErrort EIGHTBITSRjt SEVENBITStPARITY_EVENRDt
PARITY_ODDtPARITY_MARKtPARITY_SPACEtPARITY_NONEtSTOPBITS_ONERktSTOPBITS_TWOtSTOPBITS_ONE_POINT_FIVERFRERRc(Rtmenu_activeRR;tfilenametfiletlineR{RStsettingst
new_serialtbackup((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyRasF
!
&
&
&
&
%
(
R'R(RQRvRR]R_R\RcR^RsRYRa(((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyRC�s (c Csddl}|jdddd�}|jdddd d
ddd�|jd
dddddddd
ddd�|jdddddd
ddd�|jddddddd
ddt�|jddd ddd
d!dt�|jd"dd#ddd
d$dt�|jd%dd&ddd
d'dt�|jd(dd)ddd
d*dt�|jd+d,dd-dd.d
d/dd0�|jd1dd2ddddd
d3dd�|jd4dd5ddddd
d6dd�|jd7d8dd9ddd
d:dt�|jd;dd<ddddd
d=dd>�|jd?dd@ddddd
dAddB�|j�\}}|jj�|_|jdCkr�|jdD�n|j r�|j
r�|jdE�n|j|jkr�|jdF�nt
|j�at
|j�a|j}|j}|r�|jdk r-|jdG�n|jd0�}|r�yt|d0�}Wn&tk
r~|jdH|d0�nX|jd0�n|r�|jdI�q�n|dkr�d0}nt}|j r�t}n|j
r�t}nyCt|||jd |jd#|jd|jdJ|d-|j�}Wn=tjk
ri}tj j!dK||f�tj"dL�nX|j#s�tj j!dM|jj$|jj|jj%|jj|jj&f�tj j!dNt't�t't�t't�t'dO�f�n|j(dk rO|j#s-tj j!dP|j(r"dQp%dR�n|jj)|j(�|j(|_(n|j*dk r�|j#s�tj j!dS|j*r�dQp�dR�n|jj+|j*�|j*|_*n|j,�y|j-t.�Wnt/k
r�nX|j#s�tj j!dT�n|j-�dS(UNi����tusages!%prog [options] [port [baudrate]]tdescriptions9Miniterm - A simple terminal program for the serial port.s-ps--porttdestRSthelpsKport, a number or a device name. (deprecated option, use parameter instead)tdefaults-bs--baudRTtactiontstorettypeR�sset baud rate, default %defaulti�%s--parityRDs-set parity, one of [N, E, O, S, M], default=NtNs-es--echoRt
store_truesenable local echo (default off)s--rtsctsREs)enable RTS/CTS flow control (default off)s --xonxoffRFs*enable software flow control (default off)s--crtcrsdo not send CR+LF, send CR onlys--lftlfsdo not send CR+LF, send LF onlys-Ds--debugRKtcounts�debug received data (escape non-printable chars)
--debug can be given multiple times:
0: just print what is received
1: escape non-printable characters, do newlines as unusual
2: escape non-printable characters, newlines too
3: hex dump everythingis--rtsRPs2set initial RTS line state (possible values: 0, 1)s--dtrROs2set initial DTR line state (possible values: 0, 1)s-qs--quiettquietssuppress non error messagess--exit-chart exit_charsDASCII code of special character that is used to exit the applicationis--menu-chart menu_charsGASCII code of special character that is used to control miniterm (menu)itNEOSMsinvalid paritys)only one of --cr or --lf can be specifieds.--exit-char can not be the same as --menu-chars;no arguments are allowed, options only when --port is givens"baud rate must be a number, not %rstoo many argumentsRLscould not open port %r: %s
is$--- Miniterm on %s: %d,%s,%s,%s ---
s8--- Quit: %s | Menu: %s | Help: %s followed by %s ---
ss--- forcing DTR %s
ReRfs--- forcing RTS %s
s
--- exit ---
(0toptparsetOptionParsert
add_optionR�RQt
parse_argsRDtupperterrorR�R�R�R�tchrRRRSRTtpopR�R�RvRtRwRCRERFRRKRRpR*RgRhRR�RiRjRkRROR�RPR�R\R^R"R�( R�tparsertoptionstargsRSRTRLtminitermR{((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pytmain�s0
& &
t__main__(R*R9RRWRRRRtversion_infoRtnameR#tobjectRR=R.R>RtexitfunctNotImplementedErrortplatformRvRtRwRMRrRqRCR�R'(((s9/usr/lib/python2.7/site-packages/serial/tools/miniterm.pyt<module>s<0 ( $
�) � |