3 MÊ]W@# ã @ s¨ d dl Z d dlZd dlZyd dlZW n ek rB d dljZY nX dd„ Zdd„ ZG dd„ de ƒZ G dd „ d e ƒZG d d„ dejƒZe dkr¤edƒZd e_eeƒ dS )é Nc c s´ d}xrt j| ƒD ]d}djt|ƒƒd| ko2dk n rB|jdƒndfV |d7 }|dkrbdV q|dkrdV d}qW |dkr°x(|dk r¨|d7 }|dkr dV dV q‚W dV dS )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. r z{:02X} ó ó ÚasciiÚ.é é ú Ú é Nú )r r )NN)r r )r r )NN)ÚserialZ iterbytesÚformatÚordÚdecode)ÚdataÚnÚb© r ú"/usr/lib/python3.6/protocol_spy.pyÚsixteen" s 6 r c c s€ g }g }d}xnt | ƒD ]b\}}|dkrd|djdj|ƒdj|ƒgƒfV |dd…= |dd…= |d7 }q|j|ƒ |j|ƒ qW dS )z yield lines with hexdump of datar Nr r r )r ÚjoinÚappend)r Úvaluesr ÚoffsetÚhÚar r r Úhexdump9 s r c @ s0 e Zd ZdZdd„ Zdd„ Zdd„ Zdd „ Zd S )Ú FormatRawz&Forward only RX and TX data to output.c C s || _ || _d| _d| _d S )Nz[32mz[31m)ÚoutputÚcolorÚrx_colorÚtx_color)Úselfr r r r r Ú__init__L s zFormatRaw.__init__c C s. | j r| jj| jƒ | jj|ƒ | jjƒ dS )zshow received dataN)r r Úwriter Úflush)r" r r r r ÚrxR s zFormatRaw.rxc C s. | j r| jj| jƒ | jj|ƒ | jjƒ dS )zshow transmitted dataN)r r r$ r! r% )r" r r r r ÚtxY s zFormatRaw.txc C s dS )z(do not) show control callsNr )r" ÚnameÚvaluer r r Úcontrol` s zFormatRaw.controlN)Ú__name__Ú __module__Ú__qualname__Ú__doc__r# r&