+
    +Úa_<O  ã                   óh   € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIt^ RIHtHtH	t	H
t
Ht  ! R R]4      tR# )é    )Úabsolute_importN)Úwin32)Ú
SerialBaseÚSerialExceptionÚto_bytesÚPortNotOpenErrorÚSerialTimeoutExceptionc                   óJ  a a€ ] tR t^t oRtRtV 3R ltR tR tR t	R t
]R 4       tRR ltR	 tR
 tR tR tR tR tR tR t]R 4       t]R 4       t]R 4       t]R 4       tRR ltR R lt]R 4       tR tR tR t] PB                  PD                  R 4       t!Rt#Vt$V ;t%# )!ÚSerialz5Serial port implementation for Win32 based on ctypes.c                óZ   <€ R V n         R V n        R V n        \        \        V `  ! V/ VB  R # ©N)Ú_port_handleÚ_overlapped_readÚ_overlapped_writeÚsuperr   Ú__init__)ÚselfÚargsÚkwargsÚ	__class__s   &*,€Ú4/usr/lib/python3/dist-packages/serial/serialwin32.pyr   ÚSerial.__init__   s/   ø€ Ø ˆÔØ $ˆÔØ!%ˆÔÜŒf�dÒ$ dÐ5¨fÔ5ó    c           	     óB  € V P                   f   \        R4      hV P                  '       d   \        R4      hV P                  p VP	                  4       P                  R4      '       d!   \        VR,          4      ^8”  d
   RV,           p\        P                  ! T\        P                  \        P                  ,          ^ R\        P                  \        P                  \        P                  ,          ^ 4      T n        T P                  \        P                   8X  d@   RT n        \        RP#                  T P$                  \&        P(                  ! 4       4      4      h \        P*                  ! 4       T n        \        P.                  ! R^^ R4      T P,                  n        \        P*                  ! 4       T n        \        P.                  ! R^ ^ R4      T P2                  n        \        P4                  ! T P                  RR4       \        P6                  ! 4       T n        \        P:                  ! T P                  \&        P<                  ! T P8                  4      4       T P?                  4        \        P@                  ! T P                  \        PB                  \        PD                  ,          \        PF                  ,          \        PH                  ,          4       R	T n        R#   \         d     ELhi ; i    T PK                  4        RT n        h     RT n        h ; i; i)
z`Open port with current settings. This may throw a SerialException
if the port cannot be opened.
Nz.Port must be configured before it can be used.zPort is already open.ÚCOM:é   NNz\\.\zcould not open port {!r}: {!r}é   T)&Ú_portr   Úis_openÚnameÚupperÚ
startswithÚintÚ
ValueErrorr   Ú
CreateFileÚGENERIC_READÚGENERIC_WRITEÚOPEN_EXISTINGÚFILE_ATTRIBUTE_NORMALÚFILE_FLAG_OVERLAPPEDr   ÚINVALID_HANDLE_VALUEÚformatÚportstrÚctypesÚWinErrorÚ
OVERLAPPEDr   ÚCreateEventÚhEventr   Ú	SetupCommÚCOMMTIMEOUTSÚ_orgTimeoutsÚGetCommTimeoutsÚbyrefÚ_reconfigure_portÚ	PurgeCommÚPURGE_TXCLEARÚPURGE_TXABORTÚPURGE_RXCLEARÚPURGE_RXABORTÚ_close)r   Úports   & r   ÚopenÚSerial.open#   sd  € ð
 �:‰:ÒÜ!Ð"RÓSÐSØ�<�<ˆ<Ü!Ð"9Ó:Ð:ð �y‰yˆð	Ø�z‰z‹|×&Ñ& u×-Ò-´#°d¸2µh³-À!Ô2CØ  4Õ'�ô "×,Ò,ØÜ×Ñ¤×!4Ñ!4Õ4ØØÜ×ÑÜ×'Ñ'¬%×*DÑ*DÕDØóˆÔð ×Ñ¤× :Ñ :Ô:Ø $ˆDÔÜ!Ð"B×"IÑ"IÈ$Ï,É,ÔX^×XgÒXgÓXiÓ"jÓkÐkð 	 Ü$)×$4Ò$4Ó$6ˆDÔ!Ü+0×+<Ò+<¸TÀ1ÀaÈÓ+NˆD×!Ñ!Ô(Ü%*×%5Ò%5Ó%7ˆDÔ"ä,1×,=Ò,=¸dÀAÀqÈ$Ó,OˆD×"Ñ"Ô)ô �OŠO˜D×-Ñ-¨t°TÔ:ô !&× 2Ò 2Ó 4ˆDÔÜ×!Ò! $×"3Ñ"3´V·\²\À$×BSÑBSÓ5TÔUà×"Ñ"Ô$ô �OŠOØ×!Ñ!Ü×#Ñ#¤e×&9Ñ&9Õ9Ü×#Ñ#õ$Ü&+×&9Ñ&9õ:ô;ð  ˆDŽLøô_ ô 	âð	ûðJ	ðØ—‘”ð
 !%ˆDÔØøðð Ø $ˆDÔØýs=   Á$K# Á) K# ÅE=K5 Ë#K2Ë1K2Ë5LË8LÌLÌLÌLc                ó4  € V P                   '       g   \        R4      h\        P                  ! 4       pV P                  f   MRV P                  ^ 8X  d   \        P
                  Vn        M+\        \        V P                  R,          4      ^4      Vn	        V P                  ^ 8w  d:   V P                  e,   \        \        V P                  R,          4      ^4      Vn        V P                  f   MRV P                  ^ 8X  d   \        P
                  Vn        M+\        \        V P                  R,          4      ^4      Vn        \        P                  ! V P                   \        P                  ! V4      4       \        P                   ! V P                   \        P"                  4       \        P$                  ! 4       p\        P&                  ! V P                   \        P                  ! V4      4       V P(                  Vn        V P,                  \.        P0                  8X  d	   ^Vn        M™V P,                  \.        P4                  8X  d	   ^Vn        MrV P,                  \.        P6                  8X  d	   ^Vn        MKV P,                  \.        P8                  8X  d	   ^Vn        M$\;        RP=                  V P,                  4      4      hV P>                  \.        P@                  8X  d   \        PB                  Vn"        ^ Vn#        EMV P>                  \.        PH                  8X  d   \        PJ                  Vn"        ^Vn#        MØV P>                  \.        PL                  8X  d   \        PN                  Vn"        ^Vn#        MœV P>                  \.        PP                  8X  d   \        PR                  Vn"        ^Vn#        M`V P>                  \.        PT                  8X  d   \        PV                  Vn"        ^Vn#        M$\;        RP=                  V P>                  4      4      hV PX                  \.        PZ                  8X  d   \        P\                  Vn/        MŽV PX                  \.        P`                  8X  d   \        Pb                  Vn/        MYV PX                  \.        Pd                  8X  d   \        Pf                  Vn/        M$\;        RP=                  V PX                  4      4      h^Vn4        V Pj                  fs   V Pl                  '       d   \        Pn                  Vn8        M7V Pr                  '       d   \        Pt                  M\        Pv                  Vn8        V Pl                  Vn<        EM†V Pj                  Pz                  '       g/   \;        RP=                  V Pj                  Pz                  4      4      hV Pj                  P|                  '       d/   \;        RP=                  V Pj                  P|                  4      4      hV Pj                  P~                  e/   \;        R	P=                  V Pj                  P~                  4      4      hV Pj                  P€                  e/   \;        R
P=                  V Pj                  P€                  4      4      hV Pj                  P‚                  '       d/   \;        RP=                  V Pj                  P‚                  4      4      h\        P„                  Vn8        ^ Vn<        V P†                  '       d   \        Pˆ                  VnE        M7V PŒ                  '       d   \        PŽ                  M\        P�                  VnE        V P†                  VnI        V P”                  VnK        V P”                  VnL        ^ VnM        ^ VnN        ^ VnO        \.        P                   VnQ        \.        P¤                  VnS        \        P¨                  ! V P                   \        P                  ! V4      4      '       g.   \        RP=                  \        Pª                  ! 4       4      4      hR# )z,Set communication parameters on opened port.z'Can only operate on a valid port handleNiè  z%Unsupported number of data bits: {!r}zUnsupported parity mode: {!r}z%Unsupported number of stop bits: {!r}zQUnsupported value for RS485Settings.rts_level_for_tx: {!r} (only True is allowed)zRUnsupported value for RS485Settings.rts_level_for_rx: {!r} (only False is allowed)zPUnsupported value for RS485Settings.delay_before_tx: {!r} (only None is allowed)zPUnsupported value for RS485Settings.delay_before_rx: {!r} (only None is allowed)zJUnsupported value for RS485Settings.loopback: {!r} (only False is allowed)zCCannot configure port, something went wrong. Original message: {!r})Vr   r   r   r4   Ú_timeoutÚMAXDWORDÚReadIntervalTimeoutÚmaxr#   ÚReadTotalTimeoutConstantÚ_inter_byte_timeoutÚ_write_timeoutÚWriteTotalTimeoutConstantÚSetCommTimeoutsr.   r7   ÚSetCommMaskÚEV_ERRÚDCBÚGetCommStateÚ	_baudrateÚBaudRateÚ	_bytesizeÚserialÚFIVEBITSÚByteSizeÚSIXBITSÚ	SEVENBITSÚ	EIGHTBITSr$   r,   Ú_parityÚPARITY_NONEÚNOPARITYÚParityÚfParityÚPARITY_EVENÚ
EVENPARITYÚ
PARITY_ODDÚ	ODDPARITYÚPARITY_MARKÚ
MARKPARITYÚPARITY_SPACEÚSPACEPARITYÚ	_stopbitsÚSTOPBITS_ONEÚ
ONESTOPBITÚStopBitsÚSTOPBITS_ONE_POINT_FIVEÚONE5STOPBITSÚSTOPBITS_TWOÚTWOSTOPBITSÚfBinaryÚ_rs485_modeÚ_rtsctsÚRTS_CONTROL_HANDSHAKEÚfRtsControlÚ
_rts_stateÚRTS_CONTROL_ENABLEÚRTS_CONTROL_DISABLEÚfOutxCtsFlowÚrts_level_for_txÚrts_level_for_rxÚdelay_before_txÚdelay_before_rxÚloopbackÚRTS_CONTROL_TOGGLEÚ_dsrdtrÚDTR_CONTROL_HANDSHAKEÚfDtrControlÚ
_dtr_stateÚDTR_CONTROL_ENABLEÚDTR_CONTROL_DISABLEÚfOutxDsrFlowÚ_xonxoffÚfOutXÚfInXÚfNullÚ
fErrorCharÚfAbortOnErrorÚXONÚXonCharÚXOFFÚXoffCharÚSetCommStater/   )r   ÚtimeoutsÚcomDCBs   &  r   r8   ÚSerial._reconfigure_portd   s™  € à× × Ð Ü!Ð"KÓLÐLô ×%Ò%Ó'ˆØ�=‰=Ò ØØ�]‰]˜aÔÜ+0¯>©>ˆHÕ(ä03´C¸¿¹ÈÕ8LÓ4MÈqÓ0QˆHÔ-Ø�=‰=˜AÔ $×":Ñ":Ò"FÜ+.¬s°4×3KÑ3KÈdÕ3RÓ/SÐUVÓ+WˆHÔ(à×ÑÒ&ØØ× Ñ  AÔ%Ü16·±ˆHÕ.ä14´S¸×9LÑ9LÈtÕ9SÓ5TÐVWÓ1XˆHÔ.Ü×Ò˜d×/Ñ/´·²¸hÓ1GÔHä×Ò˜$×+Ñ+¬U¯\©\Ô:ô —’“ˆÜ×Ò˜4×,Ñ,¬f¯lªl¸6Ó.BÔCØŸ.™.ˆŒà�>‰>œVŸ_™_Ô,ØˆF�OØ�^‰^œvŸ~™~Ô-ØˆF�OØ�^‰^œv×/Ñ/Ô/ØˆF�OØ�^‰^œv×/Ñ/Ô/ØˆF�OäÐD×KÑKÈDÏNÉNÓ[Ó\Ð\à�<‰<œ6×-Ñ-Ô-Ü!ŸN™NˆFŒMØˆFŽNØ�\‰\œV×/Ñ/Ô/Ü!×,Ñ,ˆFŒMØˆF�NØ�\‰\œV×.Ñ.Ô.Ü!ŸO™OˆFŒMØˆF�NØ�\‰\œV×/Ñ/Ô/Ü!×,Ñ,ˆFŒMØˆF�NØ�\‰\œV×0Ñ0Ô0Ü!×-Ñ-ˆFŒMØˆF�NäÐ<×CÑCÀDÇLÁLÓQÓRÐRà�>‰>œV×0Ñ0Ô0Ü#×.Ñ.ˆF�OØ�^‰^œv×=Ñ=Ô=Ü#×0Ñ0ˆF�OØ�^‰^œv×2Ñ2Ô2Ü#×/Ñ/ˆF�OäÐD×KÑKÈDÏNÉNÓ[Ó\Ð\àˆŒà×ÑÒ#Ø�|�|ˆ|Ü%*×%@Ñ%@�Õ"àAEÇÇÀ¤U×%=Ò%=ÔV[×VoÑVo�Ô"Ø"&§,¡,ˆFÖð ×#Ñ#×4×4Ð4Ü Øg×nÑnØ×(Ñ(×9Ñ9ó<ó=ð =ð ×Ñ×0×0Ð0Ü Øh×oÑoØ×(Ñ(×9Ñ9ó<ó=ð =ð ×Ñ×/Ñ/Ò;Ü Øf×mÑmØ×(Ñ(×8Ñ8ó;ó<ð <ð ×Ñ×/Ñ/Ò;Ü Øf×mÑmØ×(Ñ(×8Ñ8ó;ó<ð <ð ×Ñ×(×(Ð(Ü Ø`×gÑgØ×(Ñ(×1Ñ1ó4ó5ð 5ô "'×!9Ñ!9ˆFÔØ"#ˆFÔà�<�<ˆ<Ü!&×!<Ñ!<ˆFÕà=A¿_¿_¸_¤×!9Ò!9ÔRW×RkÑRkˆFÔØ"Ÿl™lˆÔØ—}‘}ˆŒØ—m‘mˆŒØˆŒØˆÔØ ˆÔÜŸ™ˆŒÜ Ÿ+™+ˆŒä×!Ò! $×"3Ñ"3´V·\²\À&Ó5I×JÒJÜ!ð)ß)/©´·²Ó0AÓ)BóDð Dñ Kr   c                ó  € V P                   eó   \        P                  ! V P                   V P                  4       V P                  eB   V P                  4        \        P                  ! V P                  P                  4       RV n        V P                  eB   V P                  4        \        P                  ! V P                  P                  4       RV n        \        P                  ! V P                   4       RV n         R# R# )zinternal close port helperN)
r   r   rK   r5   r   Úcancel_readÚCloseHandler2   r   Úcancel_write©r   s   &r   r>   ÚSerial._closeå   s¿   € à×ÑÒ(ä×!Ò! $×"3Ñ"3°T×5FÑ5FÔGØ×$Ñ$Ò0Ø× Ñ Ô"Ü×!Ò! $×"7Ñ"7×">Ñ">Ô?Ø(,�Ô%Ø×%Ñ%Ò1Ø×!Ñ!Ô#Ü×!Ò! $×"8Ñ"8×"?Ñ"?Ô@Ø)-�Ô&Ü×Ò˜d×/Ñ/Ô0Ø $ˆDÖñ )r   c                ó\   € V P                   '       d   V P                  4        RV n         R# R# )z
Close portFN)r   r>   r–   s   &r   ÚcloseÚSerial.closeõ   s    € à�<�<ˆ<Ø�K‰KŒMØ ˆDŽLñ r   c                óh  € \         P                  ! 4       p\         P                  ! 4       p\         P                  ! V P                  \
        P                  ! V4      \
        P                  ! V4      4      '       g.   \        RP                  \
        P                  ! 4       4      4      hVP                  # )z9Return the number of bytes currently in the input buffer.úClearCommError failed ({!r}))r   ÚDWORDÚCOMSTATÚClearCommErrorr   r.   r7   r   r,   r/   ÚcbInQue©r   ÚflagsÚcomstats   &  r   Ú
in_waitingÚSerial.in_waitingý   sp   € ô —’“ˆÜ—-’-“/ˆÜ×#Ò# D×$5Ñ$5´v·|²|ÀEÓ7JÌFÏLÊLÐY`ÓLa×bÒbÜ!Ð"@×"GÑ"GÌÏÊÓHYÓ"ZÓ[Ð[Ø�‰Ðr   c           	     ó  € V P                   '       g   \        4       hV^ 8”  EdÈ   \        P                  ! V P                  P
                  4       \        P                  ! 4       p\        P                  ! 4       p\        P                  ! V P                  \        P                  ! V4      \        P                  ! V4      4      '       g.   \        RP                  \        P                  ! 4       4      4      hV P                  ^ 8X  d   \!        VP"                  V4      MTpV^ 8”  Ed»   \        P$                  ! V4      p\        P                  ! 4       p\        P&                  ! V P                  VV\        P                  ! V4      \        P                  ! V P                  4      4      pV'       gf   \        P(                  ! 4       \        P*                  \        P,                  39  d.   \        RP                  \        P                  ! 4       4      4      h\        P.                  ! V P                  \        P                  ! V P                  4      \        P                  ! V4      R4      pV'       gV   \        P(                  ! 4       \        P0                  8w  d.   \        RP                  \        P                  ! 4       4      4      hVP2                  RVP4                   p	M\7        4       p	M
\7        4       p	\7        V	4      # )z±Read size bytes from the serial port. If a timeout is set it may
return less characters as requested. With no timeout it will block
until the requested number of bytes is read.
rœ   zReadFile failed ({!r})Tz!GetOverlappedResult failed ({!r})N)r   r   r   Ú
ResetEventr   r2   r�   rž   rŸ   r   r.   r7   r   r,   r/   ÚtimeoutÚminr    Úcreate_string_bufferÚReadFileÚGetLastErrorÚERROR_SUCCESSÚERROR_IO_PENDINGÚGetOverlappedResultÚERROR_OPERATION_ABORTEDÚrawÚvalueÚbytes)
r   Úsizer¢   r£   ÚnÚbufÚrcÚread_okÚ	result_okÚreads
   &&        r   rº   ÚSerial.read  sþ  € ð �|�|ˆ|Ü"Ó$Ð$Ø�!�8Ü×Ò˜T×2Ñ2×9Ñ9Ô:Ü—K’K“MˆEÜ—m’m“oˆGÜ×'Ò'¨×(9Ñ(9¼6¿<º<ÈÓ;NÔPV×P\ÒP\Ð]dÓPe×fÒfÜ%Ð&D×&KÑ&KÌFÏOÊOÓL]Ó&^Ó_Ð_Ø.2¯l©l¸aÔ.?”�G—O‘O TÔ*ÀTˆAØ�1�uÜ×1Ò1°!Ó4�Ü—[’[“]�ÜŸ.š.Ø×%Ñ%ØØÜ—L’L Ó$Ü—L’L ×!6Ñ!6Ó7ó9�÷ ¤5×#5Ò#5Ó#7Ä×@SÑ@SÔUZ×UkÑUkÐ?lÔ#lÜ)Ð*B×*IÑ*IÌ&Ï/Ê/ÓJ[Ó*\Ó]Ð]Ü!×5Ò5Ø×%Ñ%Ü—L’L ×!6Ñ!6Ó7Ü—L’L Ó$Øó	�	÷
 !Ü×)Ò)Ó+¬u×/LÑ/LÔLÜ-Ð.Q×.XÑ.XÔY_×YhÒYhÓYjÓ.kÓlÐlØ—w‘w˜y §¡Ð)‘ä“w‘ä“7ˆDÜ�T‹{Ðr   c                óð  € V P                   '       g   \        4       h\        V4      pV'       EdF   \        P                  ! 4       p\        P
                  ! V P                  V\        V4      \        P                  ! V4      V P                  4      pV P                  ^ 8w  Ed   V'       gf   \        P                  ! 4       \        P                  \        P                  39  d.   \        RP!                  \        P"                  ! 4       4      4      h\        P$                  ! V P                  V P                  \        P                  ! V4      R4       \        P                  ! 4       \        P&                  8X  d   VP(                  # VP(                  \        V4      8w  d   \+        R4      hVP(                  # V'       d   \        P                  M\        P                  ! 4       pV\        P,                  \        P.                  \        P&                  39   d   ^ # V\        P                  \        P                  39   d   \        V4      # \        RP!                  \        P"                  ! 4       4      4      h^ # )z2Output the given byte string over the serial port.zWriteFile failed ({!r})TzWrite timeout)r   r   r   r   r�   Ú	WriteFiler   Úlenr.   r7   r   rI   r¬   r­   r®   r   r,   r/   r¯   r°   r²   r	   ÚERROR_INVALID_USER_BUFFERÚERROR_NOT_ENOUGH_MEMORY)r   Údatarµ   ÚsuccessÚ	errorcodes   &&   r   ÚwriteÚSerial.write/  s«  € à�|�|ˆ|Ü"Ó$Ð$ô ˜‹~ˆßˆ4ä—’“ˆAÜ—o’o d×&7Ñ&7¸¼sÀ4»yÌ&Ï,Ê,ÐWXË/Ð[_×[qÑ[qÓrˆGØ×"Ñ" aÕ'ß¤5×#5Ò#5Ó#7Ä×@SÑ@SÔUZ×UkÑUkÐ?lÔ#lÜ)Ð*C×*JÑ*JÌ6Ï?Ê?ÓK\Ó*]Ó^Ð^ô ×)Ò)¨$×*;Ñ*;¸T×=SÑ=SÔU[×UaÒUaÐbcÓUdÐfjÔkÜ×%Ò%Ó'¬5×+HÑ+HÔHØŸ7™7�NØ—7‘7œc $›iÔ'Ü0°ÓAÐAØ—w‘w�ç3:œE×/Ò/Ä×@RÒ@RÓ@T�	Ø¤×!@Ñ!@Ä%×B_ÑB_Ü!&×!>Ñ!>ð!@ô @áØ¤5×#6Ñ#6¼×8NÑ8NÐ"OÔOä˜t›9Ð$ä)Ð*C×*JÑ*JÌ6Ï?Ê?ÓK\Ó*]Ó^Ð^ár   c                óZ   € V P                   '       d   \        P                  ! R4       K*  R# )zJFlush of file like objects. In this case, wait until all data
is written.
gš™™™™™©?N)Úout_waitingÚtimeÚsleepr–   s   &r   ÚflushÚSerial.flushT  s!   € ð
 ××ÐÜ�JŠJ�tÖñ r   c                óÆ   € V P                   '       g   \        4       h\        P                  ! V P                  \        P
                  \        P                  ,          4       R# )z9Clear input buffer, discarding all that is in the buffer.N)r   r   r   r9   r   r<   r=   r–   s   &r   Úreset_input_bufferÚSerial.reset_input_buffer_  s9   € à�|�|ˆ|Ü"Ó$Ð$Ü�Š˜×)Ñ)¬5×+>Ñ+>Ä×ATÑATÕ+TÖUr   c                óÆ   € V P                   '       g   \        4       h\        P                  ! V P                  \        P
                  \        P                  ,          4       R# )z[Clear output buffer, aborting the current output and discarding all
that is in the buffer.
N)r   r   r   r9   r   r:   r;   r–   s   &r   Úreset_output_bufferÚSerial.reset_output_buffere  s;   € ð
 �|�|ˆ|Ü"Ó$Ð$Ü�Š˜×)Ñ)¬5×+>Ñ+>Ä×ATÑATÕ+TÖUr   c                óæ   € V P                   '       g   \        4       hV P                  '       d#   \        P                  ! V P
                  4       R# \        P                  ! V P
                  4       R# )zBSet break: Controls TXD. When active, to transmitting is possible.N)r   r   Ú_break_stater   ÚSetCommBreakr   ÚClearCommBreakr–   s   &r   Ú_update_break_stateÚSerial._update_break_staten  sH   € à�|�|ˆ|Ü"Ó$Ð$Ø××ÐÜ×Ò˜t×0Ñ0Ö1ä× Ò  ×!2Ñ!2Ö3r   c                óê   € V P                   '       d2   \        P                  ! V P                  \        P                  4       R# \        P                  ! V P                  \        P
                  4       R# )z)Set terminal status line: Request To SendN)rs   r   ÚEscapeCommFunctionr   ÚSETRTSÚCLRRTSr–   s   &r   Ú_update_rts_stateÚSerial._update_rts_statew  ó?   € à�?�?ˆ?Ü×$Ò$ T×%6Ñ%6¼¿¹ÖEä×$Ò$ T×%6Ñ%6¼¿¹ÖEr   c                óê   € V P                   '       d2   \        P                  ! V P                  \        P                  4       R# \        P                  ! V P                  \        P
                  4       R# )z-Set terminal status line: Data Terminal ReadyN)r€   r   rÙ   r   ÚSETDTRÚCLRDTRr–   s   &r   Ú_update_dtr_stateÚSerial._update_dtr_state~  rÞ   r   c                óæ   € V P                   '       g   \        4       h\        P                  ! 4       p\        P                  ! V P
                  \        P                  ! V4      4       VP                  # r   )	r   r   r   r�   ÚGetCommModemStatusr   r.   r7   r²   )r   Ústats   & r   Ú_GetCommModemStatusÚSerial._GetCommModemStatus…  sH   € Ø�|�|ˆ|Ü"Ó$Ð$Ü�{Š{‹}ˆÜ× Ò  ×!2Ñ!2´F·L²LÀÓ4FÔGØ�z‰zÐr   c                óR   € \         P                  V P                  4       ,          ^ 8g  # )z(Read terminal status line: Clear To Send)r   Ú	MS_CTS_ONrç   r–   s   &r   ÚctsÚ
Serial.ctsŒ  ó!   € ô �‰ ×!9Ñ!9Ó!;Õ;¸qÑ@Ð@r   c                óR   € \         P                  V P                  4       ,          ^ 8g  # )z)Read terminal status line: Data Set Ready)r   Ú	MS_DSR_ONrç   r–   s   &r   ÚdsrÚ
Serial.dsr‘  rí   r   c                óR   € \         P                  V P                  4       ,          ^ 8g  # )z)Read terminal status line: Ring Indicator)r   Ú
MS_RING_ONrç   r–   s   &r   ÚriÚ	Serial.ri–  ó#   € ô ×Ñ $×":Ñ":Ó"<Õ<ÀÑAÐAr   c                óR   € \         P                  V P                  4       ,          ^ 8g  # )z)Read terminal status line: Carrier Detect)r   Ú
MS_RLSD_ONrç   r–   s   &r   ÚcdÚ	Serial.cd›  rö   r   c                óT   € Vf   Tp\         P                  ! V P                  W4       R# )zvRecommend a buffer size to the driver (device driver can ignore this
value). Must be called after the port is opened.
N)r   r3   r   )r   Úrx_sizeÚtx_sizes   &&&r   Úset_buffer_sizeÚSerial.set_buffer_size¢  s"   € ð
 Š?ØˆGÜ�Š˜×)Ñ)¨7Ö<r   c                ó  € V P                   '       g   \        4       hV'       d2   \        P                  ! V P                  \        P
                  4       R# \        P                  ! V P                  \        P                  4       R# )a  Manually control flow - when software flow control is enabled.
This will do the same as if XON (true) or XOFF (false) are received
from the other device and control the transmission accordingly.
WARNING: this function is not portable to different platforms!
N)r   r   r   rÙ   r   ÚSETXONÚSETXOFF)r   Úenables   &&r   Úset_output_flow_controlÚSerial.set_output_flow_control«  sM   € ð �|�|ˆ|Ü"Ó$Ð$ßÜ×$Ò$ T×%6Ñ%6¼¿¹ÖEä×$Ò$ T×%6Ñ%6¼¿¹ÖFr   c                óh  € \         P                  ! 4       p\         P                  ! 4       p\         P                  ! V P                  \
        P                  ! V4      \
        P                  ! V4      4      '       g.   \        RP                  \
        P                  ! 4       4      4      hVP                  # )z0Return how many bytes the in the outgoing bufferrœ   )r   r�   rž   rŸ   r   r.   r7   r   r,   r/   ÚcbOutQuer¡   s   &  r   rÇ   ÚSerial.out_waiting¹  sr   € ô —’“ˆÜ—-’-“/ˆÜ×#Ò# D×$5Ñ$5´v·|²|ÀEÓ7JÌFÏLÊLÐY`ÓLa×bÒbÜ!Ð"@×"GÑ"GÌÏÊÓHYÓ"ZÓ[Ð[Ø×ÑÐr   c                ó�  € \         P                  ! 4       p\         P                  ! V P                  \        P
                  ! V4      \        P
                  ! V4      R4      pV'       g^   \         P                  ! 4       \         P                  \         P                  39   d$   \         P                  ! V P                  V4       R# R# R# )úACancel a blocking read operation, may be called from other threadFN)
r   r�   r¯   r   r.   r7   r¬   r®   ÚERROR_IO_INCOMPLETEÚ
CancelIoEx)r   Ú
overlappedr·   Úerrs   &&  r   Ú_cancel_overlapped_ioÚSerial._cancel_overlapped_ioÂ  s‡   € ô �[Š[‹]ˆÜ×'Ò'Ø×ÑÜ�LŠL˜Ó$Ü�LŠL˜ÓØó	ˆ÷
 ”u×)Ò)Ó+´×0FÑ0FÌ×HaÑHaÐ/bÔbä×Ò˜T×.Ñ.°
Ö;ñ c‰sr   c                ó<   € V P                  V P                  4       R# )r
  N)r  r   r–   s   &r   r“   ÚSerial.cancel_readÏ  s   € à×"Ñ" 4×#8Ñ#8Ö9r   c                ó<   € V P                  V P                  4       R# )zBCancel a blocking write operation, may be called from other threadN)r  r   r–   s   &r   r•   ÚSerial.cancel_writeÓ  s   € à×"Ñ" 4×#9Ñ#9Ö:r   c                ó¤   € Ve#   V'       g   \        RP                  V4      4      h\        P                  P                  P                  W4       R# )z$Change the exclusive access setting.Nz.win32 only supports exclusive access (not: {}))r$   r,   rS   r   Ú	exclusiveÚ__set__)r   r  s   &&r   r  ÚSerial.exclusive×  s>   € ð Ò ¯ÜÐM×TÑTÐU^Ó_Ó`Ð`ä×Ñ×'Ñ'×/Ñ/°Ö@r   )r5   r   r   r   r   )é2   éK   én   é†   é–   éÈ   i,  iX  i°  i  i`	  iÀ  i€%  i K  i –  i á  i Â )é   )r   N)T)&Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	BAUDRATESr   r@   r8   r>   r™   Úpropertyr¤   rº   rÄ   rÊ   rÍ   rÐ   rÖ   rÜ   râ   rç   rë   rð   rô   rù   rþ   r  rÇ   r  r“   r•   r   r  ÚsetterÚ__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r      s!  ù‡ € Ù?ð4€Iõ6ò? òB|DòB%ò !ð ñó ðô'òR#òJòVòVò4òFòFòð ñAó ðAð ñAó ðAð ñBó ðBð ñBó ðBô=ôGð ñ ó ð ò<ò:ò;ð ×Ñ× Ñ ñAó !÷Að Ar   r   )Ú
__future__r   r.   rÈ   rS   r   Úserial.serialutilr   r   r   r   r	   r   © r   r   Ú<module>r/     s.   ðõ 'ó Û Ý ã ß mÕ môFAˆZö FAr   