Sindbad~EG File Manager
3
��cg$ � @ s0 d Z ddlmZ ddlZddlZG dd� de�ZG dd� de�ZG dd � d e�ZG d
d� de�Z G dd
� d
ej
�Zedk�r,ddl
Z
ddlZddlZdZG dd� de �Zejeddd�Zeee��Zejd� ejd� W dQ R X ejeddd�Zeee�Zej� ej� \ZZejd� ejd� ej� dS )z%Support threading with serial ports.
� )�absolute_importNc @ s( e Zd ZdZdd� Zdd� Zdd� ZdS ) �Protocolzq Protocol as used by the ReaderThread. This base class provides empty
implementations of all methods.
c C s dS )z$Called when reader thread is startedN� )�self� transportr r �</tmp/pip-build-_uu8ur7s/pyserial/serial/threaded/__init__.py�connection_made s zProtocol.connection_madec C s dS )z2Called with snippets received from the serial portNr )r �datar r r �
data_received s zProtocol.data_receivedc C s t |t�r|�dS )zg Called when the serial port is closed or the reader loop terminated
otherwise.
N)�
isinstance� Exception)r �excr r r �connection_lost s
zProtocol.connection_lostN)�__name__�
__module__�__qualname__�__doc__r r
r r r r r r s r c sD e Zd ZdZdZdd� Zdd� Z� fdd�Zd d
� Zdd� Z � Z
S )
�
Packetizerz�
Read binary packets from serial port. Packets are expected to be terminated
with a TERMINATOR byte (null byte by default).
The class also keeps track of the transport.
� c C s t � | _d | _d S )N)� bytearray�bufferr )r r r r �__init__1 s zPacketizer.__init__c C s
|| _ dS )zStore transportN)r )r r r r r r 5 s zPacketizer.connection_madec s d| _ tt| �j|� dS )zForget transportN)r �superr r )r r
)� __class__r r r 9 s zPacketizer.connection_lostc C sB | j j|� x0| j| j kr<| j j| jd�\}| _ | j|� qW dS )z9Buffer received data, find TERMINATOR, call handle_packet� N)r �extend�
TERMINATOR�split�
handle_packet)r r �packetr r r r
>