File: //usr/lib/python3/dist-packages/twisted/internet/__pycache__/_win32serialport.cpython-310.pyc
o
�b2 � @ sl d Z ddlZddlZddlmZ ddlmZmZ ddlmZ ddl m
Z
ddlmZ G dd � d ee
j
�ZdS )
zB
Serial port support for Windows.
Requires PySerial and pywin32.
� N)�PARITY_NONE)� EIGHTBITS�STOPBITS_ONE)�to_bytes)�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�stopbits�timeout�xonxoff�rtsctsr r �serialReadEvent�serialWriteEvent)�_serialFactory�_serial�
flushInput�flushOutput�reactor�protocol�outQueue�closed�closedNotifies�writeInProgress� win32file�
OVERLAPPED�_overlappedRead�
win32event�CreateEvent�hEvent�_overlappedWrite�addEvent�makeConnection�_finishPortSetup)
�selfr �deviceNameOrPortNumberr 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'