File: //usr/lib/python3/dist-packages/twisted/internet/__pycache__/_win32serialport.cpython-38.pyc
U
W[� � @ s� d Z ddlmZmZ ddlmZ ddlmZ ddlmZ ddlm Z ddl
Z
ddlZddlm
Z
dd lmZ G d
d� dee
j�ZdS )zB
Serial port support for Windows.
Requires PySerial and pywin32.
� )�division�absolute_import)�PARITY_NONE)�STOPBITS_ONE)� EIGHTBITS)�to_bytesN)�abstract)�BaseSerialPortc @ sZ e Zd ZdZdZdeeeddfdd�Zdd� Z d d
� Z
dd� Zd
d� Zdd� Z
dd� ZdS )�
SerialPortz@A serial device, acting as a transport, that uses a win32 event.� i�% r c
C s� | j |||||d || d�| _| �� | �� || _|| _g | _d| _d| _d| _ || _t
�� | _t
�d ddd �| j_t
�� | _t
�d ddd �| j_| j�| jj| d� | j�| jj| d� | j�| � | �� d S )N)�baudrate�bytesize�parity�stopbitsZtimeout�xonxoff�rtsctsr r �serialReadEvent�serialWriteEvent)Z_serialFactory�_serialZ
flushInputZflushOutput�reactor�protocol�outQueue�closedZclosedNotifies�writeInProgress� win32fileZ
OVERLAPPED�_overlappedRead�
win32eventZCreateEvent�hEvent�_overlappedWriteZaddEventZmakeConnection�_finishPortSetup)
�selfr ZdeviceNameOrPortNumberr r r
r r r r � r! �C/usr/lib/python3/dist-packages/twisted/internet/_win32serialport.py�__init__! s6 �
zSerialPort.__init__c C s0 | � � \}}t�| jjt�d�| j�\}| _dS )zn
Finish setting up the serial port.
This is a separate method to facilitate testing.
r N)�_clearCommErrorr �ReadFiler �_port_handle�AllocateReadBufferr �read_buf)r �flags�comstat�rcr! r! r"