
    Vh                         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 yddlmZ y)	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                   n    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y)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                  j                  |       y | j                  j                  |       y )NsetBaudrate)hasattr_serialr   setBaudRate)selfbaudrates     K/home/dcms/DCMS/lib/python3.12/site-packages/twisted/internet/serialport.pyr   zBaseSerialPort.setBaudRate;   s4    4<</LL$$X.LL$$X.    c                 6    | j                   j                         S N)r   	inWaitingr   s    r   r   zBaseSerialPort.inWaitingA   s    ||%%''r   c                 8    | j                   j                          y r   )r   
flushInputr   s    r   r   zBaseSerialPort.flushInputD   s    !r   c                 8    | j                   j                          y r   )r   flushOutputr   s    r   r!   zBaseSerialPort.flushOutputG   s      "r   c                 8    | j                   j                          y r   )r   	sendBreakr   s    r   r#   zBaseSerialPort.sendBreakJ   s     r   c                 6    | j                   j                         S r   )r   getDSRr   s    r   r%   zBaseSerialPort.getDSRM       ||""$$r   c                 6    | j                   j                         S r   )r   getCDr   s    r   r(   zBaseSerialPort.getCDP       ||!!##r   c                 6    | j                   j                         S r   )r   getRIr   s    r   r+   zBaseSerialPort.getRIS   r)   r   c                 6    | j                   j                         S r   )r   getCTSr   s    r   r-   zBaseSerialPort.getCTSV   r&   r   c                 :    | j                   j                  |       y r   )r   setDTRr   ons     r   r/   zBaseSerialPort.setDTRY       Br   c                 :    | j                   j                  |       y r   )r   setRTSr0   s     r   r4   zBaseSerialPort.setRTS\   r2   r   N)   )__name__
__module____qualname____doc__r   Serial_serialFactoryr   r   r   r!   r#   r%   r(   r+   r-   r/   r4    r   r   r   r   -   sI    	 ]]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      sK   
  
 
 
 ,0  0 h 8<<r   