403Webshell
Server IP : 3.96.16.70  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux ip-172-31-26-103.ca-central-1.compute.internal 6.1.163-186.299.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 24 16:35:42 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3.9/site-packages/serial/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3.9/site-packages/serial/__pycache__/serialwin32.cpython-39.pyc
a

�ֽXwN�@sTddlZddlZddlmZddlZddlmZmZmZmZm	Z	Gdd�de�Z
dS)�N)�win32)�
SerialBase�SerialException�to_bytes�portNotOpenError�writeTimeoutErrorcseZdZdZdZ�fdd�Zdd�Zdd�Zd	d
�Zdd�Z	e
d
d��Zd;dd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Ze
d"d#��Ze
d$d%��Ze
d&d'��Ze
d(d)��Zd<d,d-�Zd=d/d0�Ze
d1d2��Zd3d4�Zd5d6�Zd7d8�Zej j!d9d:��Z �Z"S)>�Serialz5Serial port implementation for Win32 based on ctypes.)�2�K�n����i,iXi�ii`	i�i�%iKi�i�i�cs,d|_d|_d|_tt|�j|i|��dS�N)�_port_handle�_overlapped_read�_overlapped_write�superr�__init__)�self�args�kwargs��	__class__��6/usr/lib/python3.9/site-packages/serial/serialwin32.pyrszSerial.__init__c	Cs�|jdurtd��|jr td��|j}z.|���d�rRt|dd��dkrRd|}WntyfYn0t�	|tj
tjBddtjtj
tjBd�|_|jtjkr�d|_td	�|jt�����z�t��|_t�dd
dd�|j_t��|_t�dddd�|j_t�|jdd�t��|_t�|jt�|j��|��t� |jtj!tj"Btj#Btj$B�Wn.z|�%�WnYn0d|_�Yn0d|_dS)
zx        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.zPort is already open.ZCOM��z\\.\rzcould not open port {!r}: {!r}��T)&Z_portr�is_open�name�upper�
startswith�int�
ValueErrorrZ
CreateFileZGENERIC_READZ
GENERIC_WRITEZ
OPEN_EXISTING�FILE_ATTRIBUTE_NORMALZFILE_FLAG_OVERLAPPEDrZINVALID_HANDLE_VALUE�formatZportstr�ctypes�WinErrorZ
OVERLAPPEDrZCreateEvent�hEventr�	SetupComm�COMMTIMEOUTS�_orgTimeoutsZGetCommTimeouts�byref�_reconfigure_port�	PurgeComm�
PURGE_TXCLEAR�
PURGE_TXABORT�
PURGE_RXCLEAR�
PURGE_RXABORT�_close)r�portrrr�open!s^
"

�



���zSerial.opencCs�|jstd��t��}|jdur"n*|jdkr6tj|_ntt|jd�d�|_	|jdkrv|j
durvtt|j
d�d�|_|jdur�n*|jdkr�tj|_ntt|jd�d�|_t�
|jt�|��t�|jtj�t��}t�|jt�|��|j|_|jtjk�r
d|_nR|jtjk�r d|_n<|jtjk�r6d|_n&|jtjk�rLd	|_ntd
�|j���|jtj k�rztj!|_"d|_#n�|jtj$k�r�tj%|_"d|_#nj|jtj&k�r�tj'|_"d|_#nL|jtj(k�r�tj)|_"d|_#n.|jtj*k�r�tj+|_"d|_#ntd�|j���|j,tj-k�rtj.|_/n@|j,tj0k�r2tj1|_/n(|j,tj2k�rJtj3|_/ntd�|j,���d|_4|j5du�r�|j6�r~tj7|_8n|j9�r�tj:ntj;|_8|j6|_<n�|j5j=�s�td
�|j5j=���|j5j>�r�td�|j5j>���|j5j?du�r�td�|j5j?���|j5j@du�rtd�|j5j@���|j5jA�r2td�|j5jA���tjB|_8d|_<|jC�rRtjD|_En|jF�r`tjGntjH|_E|jC|_I|jJ|_K|jJ|_Ld|_Md|_Nd|_OtjP|_QtjR|_St�T|jt�|���s�td�t�U����dS)z,Set communication parameters on opened port.z'Can only operate on a valid port handleNri�r���rz%Unsupported number of data bits: {!r}zUnsupported parity mode: {!r}z%Unsupported number of stop bits: {!r}z:Unsupported value for RS485Settings.rts_level_for_tx: {!r}z:Unsupported value for RS485Settings.rts_level_for_rx: {!r}z9Unsupported value for RS485Settings.delay_before_tx: {!r}z9Unsupported value for RS485Settings.delay_before_rx: {!r}z2Unsupported value for RS485Settings.loopback: {!r}zCCannot configure port, something went wrong. Original message: {!r})Vrrrr,Z_timeoutZMAXDWORDZReadIntervalTimeout�maxr$ZReadTotalTimeoutConstantZ_inter_byte_timeout�_write_timeoutZWriteTotalTimeoutConstant�SetCommTimeoutsr(r.ZSetCommMaskZEV_ERRZDCBZGetCommStateZ	_baudrateZBaudRateZ	_bytesize�serialZFIVEBITSZByteSizeZSIXBITSZ	SEVENBITSZ	EIGHTBITSr%r'Z_parityZPARITY_NONEZNOPARITYZParityZfParityZPARITY_EVENZ
EVENPARITYZ
PARITY_ODDZ	ODDPARITYZPARITY_MARKZ
MARKPARITYZPARITY_SPACEZSPACEPARITYZ	_stopbitsZSTOPBITS_ONEZ
ONESTOPBITZStopBitsZSTOPBITS_ONE_POINT_FIVEZONE5STOPBITSZSTOPBITS_TWOZTWOSTOPBITSZfBinaryZ_rs485_modeZ_rtsctsZRTS_CONTROL_HANDSHAKEZfRtsControl�
_rts_stateZRTS_CONTROL_ENABLEZRTS_CONTROL_DISABLEZfOutxCtsFlowZrts_level_for_txZrts_level_for_rxZdelay_before_txZdelay_before_rxZloopbackZRTS_CONTROL_TOGGLEZ_dsrdtrZDTR_CONTROL_HANDSHAKEZfDtrControl�
_dtr_stateZDTR_CONTROL_ENABLEZDTR_CONTROL_DISABLEZfOutxDsrFlowZ_xonxoffZfOutXZfInXZfNullZ
fErrorCharZ
fAbortOnErrorZXONZXonCharZXOFFZXoffCharZSetCommStater))rZtimeoutsZcomDCBrrrr/bs�











��
������
��
��zSerial._reconfigure_portcCs||jdurxt�|j|j�|jdur@|��t�|jj�d|_|jdurf|�	�t�|jj�d|_t�|j�d|_dS)zinternal close port helperN)
rrr=r-r�cancel_readZCloseHandler*r�cancel_write�rrrrr5�s


z
Serial._closecCs|jr|��d|_dS)z
Close portFN)r r5rCrrr�close�szSerial.closecCsDt��}t��}t�|jt�|�t�|��s>td�t�	����|j
S)z9Return the number of bytes currently in the input buffer.�ClearCommError failed ({!r}))r�DWORD�COMSTAT�ClearCommErrorrr(r.rr'r)�cbInQue�r�flags�comstatrrr�
in_waiting�s
zSerial.in_waitingrc
	CsR|js
t�|dk�rDt�|jj�t��}t��}t�|j	t
�|�t
�|��s`td�
t
�����|jdkrvt|j|�n|}|dk�r<t
�|�}t��}t�|j	||t
�|�t
�|j��}|s�t��tjtjfvr�td�
t
�����t�|j	t
�|j�t
�|�d�}|�s*t��tjk�r*td�
t
�����|jd|j�}	nt�}	nt�}	t|	�S)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.
        rrEzReadFile failed ({!r})Tz!GetOverlappedResult failed ({!r})N)r rrZ
ResetEventrr*rFrGrHrr(r.rr'r)Ztimeout�minrIZcreate_string_bufferZReadFile�GetLastError�
ERROR_SUCCESS�ERROR_IO_PENDING�GetOverlappedResult�ERROR_OPERATION_ABORTED�raw�value�bytes)
r�sizerKrL�nZbuf�rcZread_okZ	result_ok�readrrrrZsD



�
�zSerial.readcCs|js
t�t|�}|�rt��}t�|j|t|�t�	|�|j
�}|jdkr�|stt��tj
tjfvrttd�t�����t�|j|j
t�	|�d�t��tjkr�|jS|jt|�kr�t�|jS|r�tj
nt��}|tjtjtjfvr�dS|tj
tjfv�r�t|�Std�t�����ndSdS)z2Output the given byte string over the serial port.rzWriteFile failed ({!r})TN)r rrrrFZ	WriteFiler�lenr(r.rr<rOrPrQrr'r)rRrSrUrZERROR_INVALID_USER_BUFFERZERROR_NOT_ENOUGH_MEMORY)r�datarX�success�	errorcoderrr�write-s0 

�zSerial.writecCs|jrt�d�qdS)zb        Flush of file like objects. In this case, wait until all data
        is written.
        g�������?N)�out_waiting�time�sleeprCrrr�flushRszSerial.flushcCs$|js
t�t�|jtjtjB�dS)z9Clear input buffer, discarding all that is in the buffer.N)r rrr0rr3r4rCrrr�reset_input_buffer]szSerial.reset_input_buffercCs$|js
t�t�|jtjtjB�dS)zs        Clear output buffer, aborting the current output and discarding all
        that is in the buffer.
        N)r rrr0rr1r2rCrrr�reset_output_buffercszSerial.reset_output_buffercCs.|js
t�|jrt�|j�nt�|j�dS)zBSet break: Controls TXD. When active, to transmitting is possible.N)r rZ_break_staterZSetCommBreakrZClearCommBreakrCrrr�_update_break_statels
zSerial._update_break_statecCs,|jrt�|jtj�nt�|jtj�dS)z)Set terminal status line: Request To SendN)r?r�EscapeCommFunctionrZSETRTSZCLRRTSrCrrr�_update_rts_stateuszSerial._update_rts_statecCs,|jrt�|jtj�nt�|jtj�dS)z-Set terminal status line: Data Terminal ReadyN)r@rrgrZSETDTRZCLRDTRrCrrr�_update_dtr_state|szSerial._update_dtr_statecCs,|js
t�t��}t�|jt�|��|jSr)	r rrrFZGetCommModemStatusrr(r.rU)r�statrrr�_GetCommModemStatus�s
zSerial._GetCommModemStatuscCstj|��@dkS)z(Read terminal status line: Clear To Sendr)rZ	MS_CTS_ONrkrCrrr�cts�sz
Serial.ctscCstj|��@dkS)z)Read terminal status line: Data Set Readyr)rZ	MS_DSR_ONrkrCrrr�dsr�sz
Serial.dsrcCstj|��@dkS)z)Read terminal status line: Ring Indicatorr)rZ
MS_RING_ONrkrCrrr�ri�sz	Serial.ricCstj|��@dkS)z)Read terminal status line: Carrier Detectr)rZ
MS_RLSD_ONrkrCrrr�cd�sz	Serial.cdrNcCs |dur|}t�|j||�dS)z�        Recommend a buffer size to the driver (device driver can ignore this
        value). Must be called before the port is opened.
        N)rr+r)rZrx_sizeZtx_sizerrr�set_buffer_size�szSerial.set_buffer_sizeTcCs4|js
t�|r t�|jtj�nt�|jtj�dS)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 rrrgrZSETXONZSETXOFF)rZenablerrr�set_output_flow_control�s
zSerial.set_output_flow_controlcCsDt��}t��}t�|jt�|�t�|��s>td�t�	����|j
S)z0Return how many bytes the in the outgoing bufferrE)rrFrGrHrr(r.rr'r)ZcbOutQuerJrrrr`�s
zSerial.out_waitingcCsPt��}t�|jt�|�t�|�d�}|sLt��tjtjfvrLt�	|j|�dS)�ACancel a blocking read operation, may be called from other threadFN)
rrFrRrr(r.rOrQZERROR_IO_INCOMPLETEZ
CancelIoEx)rZ
overlappedrY�errrrr�_cancel_overlapped_io�s�zSerial._cancel_overlapped_iocCs|�|j�dS)rrN)rtrrCrrrrA�szSerial.cancel_readcCs|�|j�dS)zBCancel a blocking write operation, may be called from other threadN)rtrrCrrrrB�szSerial.cancel_writecCs0|dur|std�|���ntjj�||�dS)z$Change the exclusive access setting.Nz.win32 only supports exclusive access (not: {}))r%r'r>r�	exclusive�__set__)rrurrrru�szSerial.exclusive)r)rN)T)#�__name__�
__module__�__qualname__�__doc__Z	BAUDRATESrr7r/r5rD�propertyrMrZr_rcrdrerfrhrirkrlrmrnrorprqr`rtrArBrru�setter�
__classcell__rrrrrsHA

)%		




	


r)r(rar>rZserial.serialutilrrrrrrrrrr�<module>
s


Youez - 2016 - github.com/yon3zu
LinuXploit