Prv8 Shell
Server : Apache
System : Linux server.mata-lashes.com 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64
User : matalashes ( 1004)
PHP Version : 8.1.29
Disable Function : NONE
Directory :  /usr/local/lib/python3.6/site-packages/serial/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/local/lib/python3.6/site-packages/serial/__pycache__/serialwin32.cpython-36.pyc
3

F�Kd<O�@s`ddlmZddlZddlZddlmZddlZddlmZmZm	Z	m
Z
mZGdd�de�ZdS)�)�absolute_importN)�win32)�
SerialBase�SerialException�to_bytes�PortNotOpenError�SerialTimeoutExceptioncseZdZdZdKZ�fdd�Zdd�Zdd�Zdd�Zdd�Z	e
dd��ZdLd d!�Zd"d#�Z
d$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Ze
d2d3��Ze
d4d5��Ze
d6d7��Ze
d8d9��ZdMd<d=�ZdNd?d@�Ze
dAdB��ZdCdD�ZdEdF�ZdGdH�Zej j!dIdJ��Z �Z"S)O�Serialz5Serial port implementation for Win32 based on ctypes.�2�K�n�����,�X���`	��%�K������cs(d|_d|_d|_tt|�j||�dS)N)�_port_handle�_overlapped_read�_overlapped_write�superr	�__init__)�self�args�kwargs)�	__class__��6/tmp/pip-build-8nxjc3nm/pyserial/serial/serialwin32.pyrszSerial.__init__cCs�|jdkrtd��|jr td��|j}y.|j�jd�rRt|dd��dkrRd|}Wntk
rhYnXtj	|tj
tjBddtjtj
tjBd�|_|jtjkr�d|_td	j|jtj����y�tj�|_tjdd
dd�|j_tj�|_tjdddd�|j_tj|jdd�tj�|_tj|jtj|j��|j�tj |jtj!tj"Btj#Btj$B�Wn.y|j%�WnYnXd|_�YnXd|_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}�iT)&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 �portr$r$r%�open#sR
"




zSerial.opencCs�|jstd��tj�}|jdkr"n*|jdkr6tj|_ntt|jd�d�|_	|jdkrv|j
dk	rvtt|j
d�d�|_|jdkr�n*|jdkr�tj|_ntt|jd�d�|_tj
|jtj|��tj|jtj�tj�}tj|jtj|��|j|_|jtjk�r
d|_nR|jtjk�r d|_n<|jtjk�r6d|_n&|jtjk�rLd	|_ntd
j|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|_#ntdj|j���|j,tj-k�rtj.|_/n@|j,tj0k�r2tj1|_/n(|j,tj2k�rJtj3|_/ntdj|j,���d|_4|j5dk�r�|j6�r~tj7|_8n|j9�r�tj:ntj;|_8|j6|_<n�|j5j=�s�td
j|j5j=���|j5j>�r�tdj|j5j>���|j5j?dk	�r�tdj|j5j?���|j5j@dk	�rtdj|j5j@���|j5jA�r2tdj|j5jA���tjB|_8d|_<|jC�rRtjD|_En|jF�r`tjGntjH|_E|jC|_I|jJ|_K|jJ|_Ld|_Md|_Nd|_OtjP|_QtjR|_StjT|jtj|���s�tdjtjU����dS)z,Set communication parameters on opened port.z'Can only operate on a valid port handleNri�r(���r'z%Unsupported number of data bits: {!r}zUnsupported 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})Vrrrr5�_timeoutZMAXDWORDZReadIntervalTimeout�maxr-ZReadTotalTimeoutConstantZ_inter_byte_timeout�_write_timeoutZWriteTotalTimeoutConstant�SetCommTimeoutsr1r7ZSetCommMaskZEV_ERRZDCBZGetCommStateZ	_baudrateZBaudRateZ	_bytesize�serialZFIVEBITSZByteSizeZSIXBITSZ	SEVENBITSZ	EIGHTBITSr.r0Z_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SetCommStater2)r ZtimeoutsZcomDCBr$r$r%r8ds�














zSerial._reconfigure_portcCs||jdk	rxtj|j|j�|jdk	r@|j�tj|jj�d|_|jdk	rf|j	�tj|jj�d|_tj|j�d|_dS)zinternal close port helperN)
rrrGr6r�cancel_readZCloseHandler3r�cancel_write)r r$r$r%r>�s


z
Serial._closecCs|jr|j�d|_dS)z
Close portFN)r)r>)r r$r$r%�close�szSerial.closecCsDtj�}tj�}tj|jtj|�tj|��s>tdjtj	����|j
S)z9Return the number of bytes currently in the input buffer.zClearCommError failed ({!r}))r�DWORD�COMSTAT�ClearCommErrorrr1r7rr0r2�cbInQue)r �flags�comstatr$r$r%�
in_waiting�s
zSerial.in_waitingr(c
CsV|jst��|dk�rHtj|jj�tj�}tj�}tj|j	t
j|�t
j|��sbtdj
t
j����|jdkrxt|j|�n|}|dk�r@t
j|�}tj�}tj|j	||t
j|�t
j|j��}|r�tj�tjtjfkr�tdj
t
j����tj|j	t
j|j�t
j|�d�}|�s.tj�tjk�r.tdj
t
j����|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.
        rzClearCommError failed ({!r})zReadFile failed ({!r})Tz!GetOverlappedResult failed ({!r})N)r)rrZ
ResetEventrr3rNrOrPrr1r7rr0r2�timeout�minrQ�create_string_bufferZReadFile�GetLastError�
ERROR_SUCCESS�ERROR_IO_PENDING�GetOverlappedResult�ERROR_OPERATION_ABORTED�raw�value�bytes)
r �sizerRrS�n�buf�rc�read_okZ	result_ok�readr$r$r%res@



zSerial.readcCs"|jst��t|�}|�rtj�}tj|j|t|�tj	|�|j
�}|jdkr�|rxtj�tj
tjfkrxtdjtj����tj|j|j
tj	|�d�tj�tjkr�|jS|jt|�kr�td��|jS|r�tj
ntj�}|tjtjtjfkr�dS|tj
tjfk�rt|�Stdjtj����ndSdS)z2Output the given byte string over the serial port.rzWriteFile failed ({!r})Tz
Write timeoutN)r)rrrrNZ	WriteFiler�lenr1r7rrFrXrYrZrr0r2r[r\r^rZERROR_INVALID_USER_BUFFERZERROR_NOT_ENOUGH_MEMORY)r �datara�success�	errorcoder$r$r%�write/s. 


zSerial.writecCsx|jrtjd�qWdS)zb        Flush of file like objects. In this case, wait until all data
        is written.
        g�������?N)�out_waiting�time�sleep)r r$r$r%�flushTszSerial.flushcCs&|jst��tj|jtjtjB�dS)z9Clear input buffer, discarding all that is in the buffer.N)r)rrr9rr<r=)r r$r$r%�reset_input_buffer_szSerial.reset_input_buffercCs&|jst��tj|jtjtjB�dS)zs        Clear output buffer, aborting the current output and discarding all
        that is in the buffer.
        N)r)rrr9rr:r;)r r$r$r%�reset_output_buffereszSerial.reset_output_buffercCs0|jst��|jr tj|j�ntj|j�dS)zBSet break: Controls TXD. When active, to transmitting is possible.N)r)rZ_break_staterZSetCommBreakrZClearCommBreak)r r$r$r%�_update_break_statens
zSerial._update_break_statecCs,|jrtj|jtj�ntj|jtj�dS)z)Set terminal status line: Request To SendN)rIr�EscapeCommFunctionrZSETRTSZCLRRTS)r r$r$r%�_update_rts_statewszSerial._update_rts_statecCs,|jrtj|jtj�ntj|jtj�dS)z-Set terminal status line: Data Terminal ReadyN)rJrrrrZSETDTRZCLRDTR)r r$r$r%�_update_dtr_state~szSerial._update_dtr_statecCs.|jst��tj�}tj|jtj|��|jS)N)	r)rrrNZGetCommModemStatusrr1r7r^)r �statr$r$r%�_GetCommModemStatus�s
zSerial._GetCommModemStatuscCstj|j�@dkS)z(Read terminal status line: Clear To Sendr)rZ	MS_CTS_ONrv)r r$r$r%�cts�sz
Serial.ctscCstj|j�@dkS)z)Read terminal status line: Data Set Readyr)rZ	MS_DSR_ONrv)r r$r$r%�dsr�sz
Serial.dsrcCstj|j�@dkS)z)Read terminal status line: Ring Indicatorr)rZ
MS_RING_ONrv)r r$r$r%�ri�sz	Serial.ricCstj|j�@dkS)z)Read terminal status line: Carrier Detectr)rZ
MS_RLSD_ONrv)r r$r$r%�cd�sz	Serial.cd�NcCs |dkr|}tj|j||�dS)z�        Recommend a buffer size to the driver (device driver can ignore this
        value). Must be called after the port is opened.
        N)rr4r)r Zrx_sizeZtx_sizer$r$r%�set_buffer_size�szSerial.set_buffer_sizeTcCs6|jst��|r"tj|jtj�ntj|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)rrrrrZSETXONZSETXOFF)r �enabler$r$r%�set_output_flow_control�s
zSerial.set_output_flow_controlcCsDtj�}tj�}tj|jtj|�tj|��s>tdjtj	����|j
S)z0Return how many bytes the in the outgoing bufferzClearCommError failed ({!r}))rrNrOrPrr1r7rr0r2ZcbOutQue)r rRrSr$r$r%rk�s
zSerial.out_waitingcCsRtj�}tj|jtj|�tj|�d�}|rNtj�tjtjfkrNtj	|j|�dS)zACancel a blocking read operation, may be called from other threadFN)
rrNr[rr1r7rXrZZERROR_IO_INCOMPLETEZ
CancelIoEx)r Z
overlappedrc�errr$r$r%�_cancel_overlapped_io�szSerial._cancel_overlapped_iocCs|j|j�dS)zACancel a blocking read operation, may be called from other threadN)r�r)r r$r$r%rK�szSerial.cancel_readcCs|j|j�dS)zBCancel a blocking write operation, may be called from other threadN)r�r)r r$r$r%rL�szSerial.cancel_writecCs2|dk	r|rtdj|���ntjjj||�dS)z$Change the exclusive access setting.Nz.win32 only supports exclusive access (not: {}))r.r0rHr�	exclusive�__set__)r r�r$r$r%r��szSerial.exclusive)r
rrr
rrrrrrrrrrrrr)r()r{N)T)#�__name__�
__module__�__qualname__�__doc__Z	BAUDRATESrr@r8r>rM�propertyrTrerjrnrorprqrsrtrvrwrxryrzr|r~rkr�rKrLrr��setter�
__classcell__r$r$)r#r%r	s<A	
)%		
	
	
r	)
�
__future__rr1rlrHrZserial.serialutilrrrrrr	r$r$r$r%�<module>s

haha - 2025