3 M�]W�; � @ s� d Z ddlZddlZG dd� dej�Zejdd� �Zejdd� �Zed kr�G d d� dej �Z ej� Zeee dd d�Z eje � ej� ej� dS )z�Support asyncio with serial ports. EXPERIMENTAL Posix platforms only, Python 3.4+ only. Windows event loops can not wait for serial ports with the current implementation. It should be possible to get that working though. � Nc s� e Zd ZdZ� fdd�Zedd� �Zdd� Zdd � Zd d� Z dd � Z dd� Zdd� Zdd� Z dd� Zd:dd�Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� Zd;d-d.�Zd<d0d1�Zd2d3� Zd=d4d5�Zd6d7� Zd8d9� Z� Z S )>�SerialTransportug An asyncio transport model of a serial communication channel. A transport class is an abstraction of a communication channel. This allows protocol implementations to be developed against the transport abstraction without needing to know the details of the underlying channel, such as whether it is a pipe, a socket, or indeed a serial port. You generally won’t instantiate a transport yourself; instead, you will call `create_serial_connection` which will create the transport and try to initiate the underlying communication channel, calling you back when it succeeds. c sv t � j� || _|| _|| _d| _d| _d| _g | _| j � d| _ d| _d| j_d| j_ |j|j| � |j| j� d S )NFi r )�super�__init__�_loop� _protocol�_serial�_closing�_protocol_paused�_max_read_size� _write_buffer�_set_write_buffer_limits�_has_reader�_has_writerZtimeoutZ write_timeout� call_soon�connection_made�_ensure_reader)�self�loop�protocolZserial_instance)� __class__� �/usr/lib/python3.6/aio.pyr % s zSerialTransport.__init__c C s | j S )zThe underlying Serial instance.)r )r r r r �serial<