Current File : //usr/lib/python2.7/site-packages/serial/serialutil.pyo
�
�[;Nc@s5yeeWn3eefk
rAeZdefd��YZnXd�Zedg�Zedg�Zedg�Z	edg�Z
ddd	d
df\ZZZ
ZZdd
df\ZZZddddf\ZZZZide6de6de
6de6de6Zdefd��YZdefd��YZed�Zed�Zdefd��YZd efd!��YZ e!d"kr1d#d$l"Z"e �Z#e"j$j%d%e#j&�e"j$j%d&e#j'��e"j$j%d'e#j(��e"j$j%d(e#j)��e"j$j%d)e#j*��e"j$j%d*e#�nd$S(+t	bytearraycBsGeZd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCs
dj|�S(Nt(tjoin(tself((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt__str__scCsddj|�S(Ns
bytearray(%r)R(R(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt__repr__scCs<t|t�r"tj||�ntj|t|��dS(N(t
isinstancetstrtlisttappendtchr(Rtitem((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR	scCs"x|D]}|j|�qW|S(N(R	(Rtothertbyte((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt__iadd__s
cCsttj|||��S(N(RRt__getslice__(Rtitj((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR#scCs?t|t�r%ttj||��Sttj||��SdS(N(RtsliceRRt__getitem__tord(RR((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR&scCs.t|t�rt|�}ntj||�S(N(Rt
basestringRRt__eq__(RR((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR,s(	t__name__t
__module__RRR	RRRR(((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyRs						cCs1t�}x|D]}|j|�qWt|�S(s"convert a sequence to a bytes type(RR	tbytes(tseqtbR((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytto_bytes3s	
iii
i
tNtEtOtMtSig�?iiiiitNonetEventOddtMarktSpacetSerialExceptioncBseZdZRS(s.Base class for serial port related exceptions.(RRt__doc__(((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR'OstSerialTimeoutExceptioncBseZdZRS(s Write timeouts give an exception(RRR((((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR)Sss
Write timeouts)Attempting to use a port that is not opentFileLikecBs�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	ded�Zded	�Z
dd
�Zdd�Zd
�Zdd�Zd�ZRS(s�An abstract file like class.

    This class implements readline and readlines based on read and
    writelines based on write.
    This class is used to provide the above functions for to Serial
    port objects.

    Note that when the serial port was opened with _NO_ timeout that
    readline blocks until it sees a newline (or the specified size is
    reached) and that readlines would never return and therefore
    refuses to work (it raises an exception in this case)!
    cCs
t|_dS(N(tTruetclosed(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt__init__iscCs
t|_dS(N(R+R,(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytcloselscCsy|j�WnnXdS(sDestructor.  Calls close().N(R.(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt__del__pscCs"x|D]}|j|�qWdS(N(twrite(Rtsequencetline((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt
writelines|s
cCsdS(sflush of file like objectsN((R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytflush�scCs|j�}|st�n|S(N(treadlinet
StopIteration(RR2((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytnext�s	cCs|S(N((R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt__iter__�scCs�t|�}t�}xdtr{|jd�}|rw||7}|||krRPn|dk	rxt|�|krxPqxqPqWt|�S(skread a line which is terminated with end-of-line (eol) character
        ('
' by default) or until timeout.iN(tlenRR+treadR"R(RtsizeteoltleneolR2tc((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR5�s		
cCs|jdkrtd��nt|�}g}xHtrz|jd|�}|rv|j|�|||krwPqwq3Pq3W|S(sAread a list of lines, until timeout.
        sizehint is ignored.s8Serial port MUST have enabled timeout for this function!R<N(ttimeoutR"t
ValueErrorR9R+R5R	(RtsizehintR<R=tlinesR2((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt	readlines�s	
ccs,x%tr'|j�}|sPn|VqWdS(swRead lines, implemented as generator. It will raise StopIteration on
        timeout (empty read). sizehint is ignored.N(R+R5(RRAR2((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt
xreadlines�s
	icCstd��dS(Nsfile is not seekable(tIOError(Rtpostwhence((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytseek�scCstd��dS(Nsfile is not seekable(RE(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyttell�scCstd��dS(Nsfile is not seekable(RE(Rtn((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyttruncate�scCstS(N(tFalse(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytisatty�sN(RRR(R-R.R/R3R4R7R8R"tLFR5RCRDRHRIRKRM(((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR*[s								t
SerialBasecBs�eZdZdXZeeeefZe	e
eee
fZeeefZdYd
ee	edYeedYedYd�Zd �Zd!�Zd"�Zd#�Zd$�Zd%�Zd&�Zeeed'd(�Zd)�Zd*�Z ee ed'd+�Z!d,�Z"d-�Z#ee#e"d'd.�Z$d/�Z%d0�Z&ee&e%d'd1�Z'd2�Z(d3�Z)ee)e(d'd4�Z*d5�Z+d6�Z,ee,e+d'd7�Z-d8�Z.d9�Z/ee/e.d'd:�Z0d;�Z1d<�Z2ee2e1d'd=�Z3d>�Z4d?�Z5ee5e4d'd@�Z6dYdA�Z7dB�Z8ee8e7dC�Z9dD�Z:dE�Z;ee;e:d'dF�Z<dZZ=dQ�Z>dR�Z?dS�Z@dT�ZAdU�ZBdV�ZCdW�ZDRS([sbSerial port base class. Provides __init__ function and properties to
       get/set port settings.i2iKini�i�i�i,iXi�ii`	i�i�%iKi�i�i�i�ii �i�ii@Bi�i`�i��i�%&i��-i�g5i	=cCs�t|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
||_||_||_||_||_||_|	|_||_||_|
|_||_|dk	r�|j�ndS(s�Initialize comm port object. If a port is given, then the port will be
           opened immediately. Otherwise a Serial port object in closed state
           is returned.N(RLt_isOpenR"t_portt	_baudratet	_bytesizet_parityt	_stopbitst_timeoutt
_writeTimeoutt_xonxofft_rtsctst_dsrdtrt_interCharTimeouttporttbaudratetbytesizetparitytstopbitsR?twriteTimeouttxonxofftrtsctstdsrdtrtinterCharTimeouttopen(RR\R]R^R_R`R?RbRcRaRdRe((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR-�s2																							cCs|jS(sCheck if the port is opened.(RP(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytisOpenscCs&g|jD]}t|�|f^q
S(N(t	BAUDRATESR(RR((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetSupportedBaudratesscCs&g|jD]}t|�|f^q
S(N(t	BYTESIZESR(RR((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetSupportedByteSizesscCs&g|jD]}t|�|f^q
S(N(tSTOPBITSR(RR((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetSupportedStopbitsscCs$g|jD]}t||f^q
S(N(tPARITIEStPARITY_NAMES(RR((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetSupportedParitiesscCs�|j}|r|j�n|dk	rXt|t�rC||_qa|j|�|_n	d|_||_|j|_|r�|j	�ndS(shChange the port. The attribute portstr is set to a string that
           contains the name of the port.N(
RPR.R"RRtportstrtmakeDeviceNameRQtnameRf(RR\twas_open((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytsetPorts	
		cCs|jS(s�Get the current port setting. The value that was passed on init or using
           setPort() is passed back. See also the attribute portstr which contains
           the name of the port as a string.(RQ(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetPort/stdocsPort settingcCsTyt|�|_Wn$tk
r9td|f��nX|jrP|j�ndS(s�Change baud rate. It raises a ValueError if the port is open and the
        baud rate is not possible. If the port is closed, then the value is
        accepted and the exception is raised when the port is opened.sNot a valid baudrate: %rN(tintRRt	TypeErrorR@RPt_reconfigurePort(RR]((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytsetBaudrate8s
	cCs|jS(s"Get the current baud rate setting.(RR(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetBaudrateCssBaud rate settingcCsH||jkr%td|f��n||_|jrD|j�ndS(sChange byte size.sNot a valid byte size: %rN(RjR@RSRPRz(RR^((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytsetByteSizeJs
		cCs|jS(s"Get the current byte size setting.(RS(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetByteSizePssByte size settingcCsH||jkr%td|f��n||_|jrD|j�ndS(sChange parity setting.sNot a valid parity: %rN(RnR@RTRPRz(RR_((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt	setParityWs
		cCs|jS(sGet the current parity setting.(RT(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt	getParity]ssParity settingcCsH||jkr%td|f��n||_|jrD|j�ndS(sChange stop bits size.sNot a valid stop bit size: %rN(RlR@RURPRz(RR`((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytsetStopbitsds
		cCs|jS(s"Get the current stop bits setting.(RU(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetStopbitsjssStop bits settingcCs�|dk	rdy|dWn$tk
r>td|f��nX|dkrdtd|f��qdn||_|jr�|j�ndS(sChange timeout setting.isNot a valid timeout: %riN(R"RyR@RVRPRz(RR?((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt
setTimeoutqs
		cCs|jS(s Get the current timeout setting.(RV(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt
getTimeout|ssTimeout setting for read()cCs�|dk	ra|dkr.td|f��ny|dWqatk
r]td|��qaXn||_|jr�|j�ndS(sChange timeout setting.isNot a valid timeout: %riN(R"R@RyRWRPRz(RR?((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytsetWriteTimeout�s
		cCs|jS(s Get the current timeout setting.(RW(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetWriteTimeout�ssTimeout setting for write()cCs#||_|jr|j�ndS(sChange XON/XOFF setting.N(RXRPRz(RRb((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt
setXonXoff�s		cCs|jS(s!Get the current XON/XOFF setting.(RX(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt
getXonXoff�ssXON/XOFF settingcCs#||_|jr|j�ndS(s$Change RTS/CTS flow control setting.N(RYRPRz(RRc((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt	setRtsCts�s		cCs|jS(s-Get the current RTS/CTS flow control setting.(RY(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt	getRtsCts�ssRTS/CTS flow control settingcCs>|dkr|j|_n	||_|jr:|j�ndS(s#Change DsrDtr flow control setting.N(R"RYRZRPRz(RRd((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt	setDsrDtr�s
		cCs|jS(s-Get the current DSR/DTR flow control setting.(RZ(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt	getDsrDtr�ssDSR/DTR flow control settingcCs�|dk	r^|dkr+td|��ny|dWq^tk
rZtd|��q^Xn||_|jr}|j�ndS(s'Change inter-character timeout setting.isNot a valid timeout: %riN(R"R@RyR[RPRz(RRe((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytsetInterCharTimeout�s
		cCs|jS(s0Get the current inter-character timeout setting.(R[(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetInterCharTimeout�ss*Inter-character timeout setting for read()R]R^R_R`RbRdRcR?RaRecCs3tg|jD]}|t|d|�f^q
�S(sQGet current port settings as a dictionary. For use with
        applySettingsDictt_(tdictt	_SETTINGStgetattr(Rtkey((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytgetSettingsDict�scCsLxE|jD]:}||t|d|�kr
t||||�q
q
WdS(s�apply stored settings from a dictionary returned from
        getSettingsDict. it's allowed to delete keys from the dictionary. these
        values will simply left unchanged.R�N(R�R�tsetattr(RtdR�((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytapplySettingsDict�sc
CsVd|jjt|�|j|j|j|j|j|j|j	|j
|j|jfS(sAString representation of the current port settings and its state.s}%s<id=0x%x, open=%s>(port=%r, baudrate=%r, bytesize=%r, parity=%r, stopbits=%r, timeout=%r, xonxoff=%r, rtscts=%r, dsrdtr=%r)(
t	__class__RtidRPRqR]R^R_R`R?RbRcRd(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyR�s		cCstS(N(R+(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytreadable�scCstS(N(R+(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytwritable�scCstS(N(RL(R((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytseekable�scCs�|jt|��}t|�}y|||*WnPtk
r�}ddl}t||j�sh|�n|jd|�||*nX|S(Ni����R(R:R9RytarrayR(RRtdataRJterrR�((s5/usr/lib/python2.7/site-packages/serial/serialutil.pytreadinto�s	(i2iKini�i�i�i,iXi�ii`	i�i�%iKi�i�i�i�ii �i�ii@Bi�i`�i��i�%&i��-i�g5i	=N(
sbaudratesbytesizesparitysstopbitssxonxoffsdsrdtrsrtsctsstimeoutswriteTimeoutsinterCharTimeout(ERRR(RhtFIVEBITStSIXBITSt	SEVENBITSt	EIGHTBITSRjtPARITY_NONEtPARITY_EVENt
PARITY_ODDtPARITY_MARKtPARITY_SPACERntSTOPBITS_ONEtSTOPBITS_ONE_POINT_FIVEtSTOPBITS_TWORlR"RLR-RgRiRkRmRpRuRvtpropertyR\R{R|R]R}R~R^RR�R_R�R�R`R�R�R?R�R�RaR�R�RbR�R�RcR�R�RdR�R�ReR�R�R�RR�R�R�R�(((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyRO�s�#																								
					
				t__main__i����Nsport name:  %s
sbaud rates: %s
sbyte sizes: %s
sparities:   %s
sstop bits:  %s
s%s
(+RRt	NameErrortAttributeErrorRRRtXONtXOFFtCRRNR�R�R�R�R�R�R�R�R�R�R�R�RoRER'R)twriteTimeoutErrorR@tportNotOpenErrortobjectR*RORtsystststdoutR0RqRiRkRpRm(((s5/usr/lib/python2.7/site-packages/serial/serialutil.pyt<module>	sF 	$
m�@