Current File : //usr/lib/python3/dist-packages/serial/urlhandler/__pycache__/protocol_spy.cpython-312.pyc
�

�1�_�#���ddlmZddlZddlZddlZddlmZ	ddlZd�Zd�ZGd�de
�ZGd�d	e
�ZGd
�dej �Zedk(red�Zd
e_ee�yy#e$r	ddl	m
ZY�\wxYw)�)�absolute_importN)�to_bytesc#�BK�d}tj|�D]Z}djt|��d|cxkrdkrnn|j	d�ndf��|dz
}|dk(rd	���O|d
k\s�Ud��d}�\|dkDr"|d
kr|dz
}|dk(rd	��d��|d
kr�d��y
y
�w)z�    yield tuples of hex and ASCII display in multiples of 16. Includes a
    space after 8 bytes and (None, None) after 16 bytes and at the end.
    rz{:02X} � ��ascii�.��)� ��)NN)z   rN)�serial�	iterbytes�format�ord�decode)�data�n�bs   �@/usr/lib/python3/dist-packages/serial/urlhandler/protocol_spy.py�sixteenr%s�����
	
�A�
�
�
�d�
#�������A��'�d�a�>Q�'�>Q����'�):�WZ�[�[�	�Q�����6��O�
�"�W����A��	�1�u��"�f�
��F�A��A�v�����	�"�f�
��

�s�A,B�/)B�Bc#�K�g}g}d}t|�D]n\}}|�E|djdj|�dj|�g�f��|dd�=|dd�=|dz
}�M|j|�|j|��py�w)z yield lines with hexdump of datarNrr
r)r�join�append)r�valuesr�offset�h�as      r�hexdumpr <s�����
�F��E�
�F���
����1��9��3�8�8�R�W�W�V�_�b�g�g�e�n�$E�F�G�G��q�	��a���d�N�F��M�M�!���L�L��O��s�BBc�(�eZdZdZd�Zd�Zd�Zd�Zy)�	FormatRawz&Forward only RX and TX data to output.c�<�||_||_d|_d|_y)N��)�output�color�rx_color�tx_color��selfr&r's   r�__init__zFormatRaw.__init__Os�������
�"��
�"��
�c���|jr%|jj|j�|jj|�|jj	�y)zshow received dataN)r'r&�writer(�flush�r+rs  r�rxzFormatRaw.rxU�A���:�:��K�K���d�m�m�,������$�������r-c���|jr%|jj|j�|jj|�|jj	�y)zshow transmitted dataN)r'r&r/r)r0r1s  r�txzFormatRaw.tx\r3r-c��y)z(do not) show control callsN��r+�name�values   r�controlzFormatRaw.controlcs��r-N)�__name__�
__module__�__qualname__�__doc__r,r2r5r;r7r-rr"r"Ls��0�#���
r-r"c�0�eZdZdZd�Zdd�Zd�Zd�Zd�Zy)	�
FormatHexdumpax    Create a hex dump of RX ad TX data, show when control lines are read or
    written.

    output example::

        000000.000 Q-RX flushInput
        000002.469 RTS  inactive
        000002.773 RTS  active
        000003.001 TX   48 45 4C 4C 4F                                    HELLO
        000003.102 RX   48 45 4C 4C 4F                                    HELLO

    c�|�tj�|_||_||_d|_d|_d|_y)Nr$r%z)�time�
start_timer&r'r(r)�
control_colorr*s   rr,zFormatHexdump.__init__ws3���)�)�+��������
�"��
�"��
�'��r-c��|jjdj||||��|jj�y)Nz{:010.3f} {:4} {}{}
)r&r/rr0)r+�	timestamp�labelr:�value2s     r�
write_linezFormatHexdump.write_lines7�������1�8�8��E�5�RX�Y�Z������r-c�z�|jr%|jj|j�|rVt	|�D]G\}}|jt
j�|jz
ddj|�|��Iy|jt
j�|jz
dd�y)zshow received data as hex dump�RX�{:04X}  z<empty>N)	r'r&r/r(r rJrCrDr�r+rr�rows    rr2zFormatHexdump.rx�s����:�:��K�K���d�m�m�,��&�t�}�
e��������	�	��d�o�o� =�t�Z�EV�EV�W]�E^�`c�d�
e�
�O�O�D�I�I�K�$�/�/�9�4��Kr-c��|jr%|jj|j�t	|�D]G\}}|jt
j�|jz
ddj|�|��Iy)z!show transmitted data as hex dump�TXrMN)	r'r&r/r)r rJrCrDrrNs    rr5zFormatHexdump.tx�sf���:�:��K�K���d�m�m�,�"�4�=�	a�K�F�C��O�O�D�I�I�K�$�/�/�9�4��AR�AR�SY�AZ�\_�`�	ar-c���|jr%|jj|j�|j	tj
�|jz
||�y)zshow control callsN)r'r&r/rErJrCrDr8s   rr;zFormatHexdump.control�s@���:�:��K�K���d�0�0�1�����	�	��d�o�o�5�t�U�Cr-N)r
)	r<r=r>r?r,rJr2r5r;r7r-rrArAhs#���(��L�a�Dr-rAc�L��eZdZdZ�fd�Zejjjd��Zd�Z	�fd�Z
d�fd�	Zeejd�r�fd�Z
eejd	�r�fd
�Ze�fd��Z�fd�Z�fd
�Z�fd�Zd�fd�	Zejj*jd��Zejj,jd��Zejj.jd��Zejj0j2�fd��Zejj4j2�fd��Zejj6j2�fd��Zejj8j2�fd��Z�xZS)�Serialzc    Inherit the native Serial port implementation and wrap all the methods and
    attributes.
    c�H��tt|�
|i|��d|_d|_y)NF)�superrTr,�	formatter�show_all)r+�args�kwargs�	__class__s   �rr,zSerial.__init__�s%���
�f�d�$�d�5�f�5������
r-c�|�|�:tjjj||j	|��yy�N)rrT�port�__set__�from_url)r+r:s  rr^zSerial.port�s0�����M�M���&�&�t�T�]�]�5�-A�B�r-c��tj|�}|jdk7r.tjdj|j���t}d}tj}	tj|jd�j�D]T\}}|dk(rt|dd�}�|dk(rd}�#|d	k(rt}�/|d
k(rd|_�<tdj|���	|||�|_dj#|j$|j&g�S#t$r)}tjdj|���d
}~wwxYw)z(extract host and port from an URL string�spyzmexpected a string in the form "spy://port[?option[=value][&option[=value]]]": not starting with spy:// ({!r})FT�filer�wr'�raw�allzunknown option: {!r}zPexpected a string in the form "spy://port[?option[=value][&option[=value]]]": {}Nr
)�urlparse�urlsplit�schemer�SerialExceptionrrA�sys�stderr�parse_qs�query�items�openr"rX�
ValueErrorrWr�netloc�path)	r+�url�partsrWr'r&�optionr�es	         rr`zSerial.from_url�sJ���!�!�#�&���<�<�5� ��(�(�2�28�&����2F�H�
H�
"�	�������	P�"*�"3�"3�E�K�K��"F�"L�"L�"N�

L�����V�#�!�&��)�S�1�F��w�&� �E��u�_� )�I��u�_�$(�D�M�$�%;�%B�%B�6�%J�K�K�

L�#�6�5�1����w�w����e�j�j�1�2�2���	P��(�(�E�EK�V�A�Y�P�
P��	P�s�,BD'�'	E�0$E�Ec�v��t|�}|jj|�tt|�|�Sr])rrWr5rVrTr/)r+r5r[s  �rr/zSerial.write�s0���
�b�\�������"���V�T�(��,�,r-c���tt|�|�}|s|jr|jj|�|Sr])rVrT�readrXrWr2)r+�sizer2r[s   �rrzzSerial.read�s4���
�6�4�
%�d�
+��
�����N�N���b�!��	r-�cancel_readc�b��|jjdd�tt|��y)N�Q-RXr|)rWr;rVrTr|�r+r[s �rr|zSerial.cancel_read�s$����N�N�"�"�6�=�9��&�$�+�-r-�cancel_writec�b��|jjdd�tt|��y)N�Q-TXr�)rWr;rVrTr�rs �rr�zSerial.cancel_write�s$����N�N�"�"�6�>�:��&�$�,�.r-c���tt|�
}|jr+|jjddj
|��|S)Nr~zin_waiting -> {})rVrT�
in_waitingrXrWr;r)r+rr[s  �rr�zSerial.in_waiting�s;����&�$�*���=�=��N�N�"�"�6�+=�+D�+D�Q�+G�H��r-c�b��|jjdd�tt|��y)Nr�r0)rWr;rVrTr0rs �rr0zSerial.flush�s$��������v�w�/�
�f�d�!�#r-c�b��|jjdd�tt|��y)Nr~�reset_input_buffer)rWr;rVrTr�rs �rr�zSerial.reset_input_buffer�s%��������v�';�<�
�f�d�.�0r-c�b��|jjdd�tt|��y)Nr��reset_output_buffer)rWr;rVrTr�rs �rr�zSerial.reset_output_buffer�s%��������v�'<�=�
�f�d�/�1r-c���|jjddj|��tt|�|�y)N�BRKzsend_break {}s)rWr;rrVrT�
send_break)r+�durationr[s  �rr�zSerial.send_break�s2��������u�&6�&=�&=�h�&G�H�
�f�d�&�x�0r-c��|jjd|rdnd�tjjj||�y)Nr��active�inactive)rWr;rrT�break_conditionr_�r+�levels  rr�zSerial.break_condition�s4�������u�%�h�Z�H��
�
�%�%�-�-�d�E�:r-c��|jjd|rdnd�tjjj||�y)N�RTSr�r�)rWr;rrT�rtsr_r�s  rr�z
Serial.rts��4�������u�%�h�Z�H��
�
���!�!�$��.r-c��|jjd|rdnd�tjjj||�y)N�DTRr�r�)rWr;rrT�dtrr_r�s  rr�z
Serial.dtrr�r-c�p��tt|�
}|jj	d|rd�|Sd�|S)N�CTSr�r�)rVrT�ctsrWr;�r+r�r[s  �rr�z
Serial.cts�8����f�d�'�������u�%�h�H���>H�H��r-c�p��tt|�
}|jj	d|rd�|Sd�|S)N�DSRr�r�)rVrT�dsrrWr;r�s  �rr�z
Serial.dsrr�r-c�p��tt|�
}|jj	d|rd�|Sd�|S)N�RIr�r�)rVrT�rirWr;r�s  �rr�z	Serial.ri�8����f�d�&�������t��X�G���=G�G��r-c�p��tt|�
}|jj	d|rd�|Sd�|S)N�CDr�r�)rVrT�cdrWr;r�s  �rr�z	Serial.cdr�r-)r
)g�?)r<r=r>r?r,rrTr^�setterr`r/rz�hasattrr|r��propertyr�r0r�r�r�r�r�r�r��getterr�r�r��
__classcell__)r[s@rrTrT�s������
�]�]�����C��C�3�>-�
��v�}�}�m�,�	.��v�}�}�n�-�	/�����$�1�2�1��]�]�"�"�)�)�;�*�;��]�]�����/��/��]�]�����/��/��]�]��������
�]�]��������
�]�]��������
�]�]�������r-rT�__main__zspy:///dev/ttyS0)�
__future__rrkrCr�serial.serialutilrrg�ImportError�urllib.parse�parserr �objectr"rArTr<�serr^�printr7r-r�<module>r�s���.'�
��
�'�$��
�.
� 
��
�80D�F�0D�fA�V�]�]�A�H�z��
��,�C�!�C�H�	�#�J���}�$�#�$�s�A-�-A;�:A;