
    \d                         d Z g dZddlZddlmZmZmZmZmZmZm	Z	m
Z
mZ ddlmZ  G d d          Z ej                    rddlmZ dS ddlmZ dS )	z
Serial Port Protocol
)serial
PARITY_ODDPARITY_EVENPARITY_NONESTOPBITS_TWOSTOPBITS_ONEFIVEBITS	EIGHTBITS	SEVENBITSSIXBITS
SerialPort    N)	r	   r   r   r   r   r
   r   r   r   )platformc                   f    e Zd ZdZej        Zd Zd Zd Z	d Z
d Zd Zd Zd	 Zd
 ZddZddZdS )BaseSerialPortaV  
    Base class for Windows and POSIX serial ports.

    @ivar _serialFactory: a pyserial C{serial.Serial} factory, used to create
        the instance stored in C{self._serial}. Overrideable to enable easier
        testing.

    @ivar _serial: a pyserial C{serial.Serial} instance used to manage the
        options on the serial port.
    c                     t          | j        d          r| j                            |           d S | j                            |           d S )NsetBaudrate)hasattr_serialr   setBaudRate)selfbaudrates     ;lib/python3.11/site-packages/twisted/internet/serialport.pyr   zBaseSerialPort.setBaudRate;   sN    4<// 	/L$$X.....L$$X.....    c                 4    | j                                         S N)r   	inWaitingr   s    r   r   zBaseSerialPort.inWaitingA   s    |%%'''r   c                 8    | j                                          d S r   )r   
flushInputr   s    r   r   zBaseSerialPort.flushInputD   s    !!!!!r   c                 8    | j                                          d S r   )r   flushOutputr   s    r   r!   zBaseSerialPort.flushOutputG   s      """""r   c                 8    | j                                          d S r   )r   	sendBreakr   s    r   r#   zBaseSerialPort.sendBreakJ   s         r   c                 4    | j                                         S r   )r   getDSRr   s    r   r%   zBaseSerialPort.getDSRM       |""$$$r   c                 4    | j                                         S r   )r   getCDr   s    r   r(   zBaseSerialPort.getCDP       |!!###r   c                 4    | j                                         S r   )r   getRIr   s    r   r+   zBaseSerialPort.getRIS   r)   r   c                 4    | j                                         S r   )r   getCTSr   s    r   r-   zBaseSerialPort.getCTSV   r&   r      c                 :    | j                             |           d S r   )r   setDTRr   ons     r   r0   zBaseSerialPort.setDTRY       Br   c                 :    | j                             |           d S r   )r   setRTSr1   s     r   r5   zBaseSerialPort.setRTS\   r3   r   N)r.   )__name__
__module____qualname____doc__r   Serial_serialFactoryr   r   r   r!   r#   r%   r(   r+   r-   r0   r5    r   r   r   r   -   s        	 	 ]N/ / /( ( (" " "# # #! ! !% % %$ $ $$ $ $% % %                  r   r   )r   )r9   __all__r   r	   r   r   r   r   r
   r   r   r   twisted.python.runtimer   r   	isWindows!twisted.internet._win32serialportr   !twisted.internet._posixserialportr<   r   r   <module>rB      s  
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 , + + + + +0  0  0  0  0  0  0  0 h 8 =<<<<<<<<<<<<<<<<r   