
zUc           @   sq   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d  d l Z d Z d d d     YZ d S(   iNs   0.1t   SerialDevicec           B   sb   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   c         C   s   | |  _  d |  _ t j   |  _ t j   |  _ y_ t j	 d | d d d t j
 d t j d t j d d   |  _ |  j j   s |  j j   n  Wn3 t k
 r } d	 t |  d
 GHt j d  n Xt j d |  j  |  _ |  j j   d  S(   Ni    t   portt   baudratei`	  t   bytesizet   stopbitst   parityt   timeouts   
Error:s   
i   t   target(   i    NN(   t   intervalt   Nonet   datat	   threadingt   Lockt   dataLockt   Eventt   _threadStopFlagt   serialt   Serialt	   EIGHTBITSt   STOPBITS_ONEt   PARITY_NONER   t   isOpent   opent   IOErrort   strt   syst   exitt   Threadt
   _eventLoopt   tt   start(   t   selft   deviceR   t   err(    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyt   __init__   s$    					c         C   s   |  S(   N(    (   R   (    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyt	   __enter__*   s    c         C   s+   |  j  j   |  j j   |  j j   d  S(   N(   R   t   setR   t
   flushInputt   close(   R   t   typet   valuet	   traceback(    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyt   __exit__-   s    c         C   s{   xt |  j  j   sv |  j   } |  j |  } |  j j   | |  _ |  j j   t j	 t
 |  j   |  j j   q Wd  S(   N(   R   t   isSett
   _getPackett   _decodeStreamR   t   acquireR
   t   releaset   timet   sleept   floatR   R   R%   (   R   t   substrR
   (    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyR   2   s    	c         C   sY   d } d } xF | d k  rT t  j d  } | d j t |   d 7} | d 7} q W| S(   Ni    t    i   i   s   {0:08b}i   (   R   t   readt   formatt   ord(   R   t   iR3   t   byte(    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyR,   A   s    c   '      C   s  t  | d d ! } t  | d d ! } t  | d d ! } | d d !} t  | d d ! } | d d !} t  | d d ! } | d d	 !}	 t  | d	 d
 ! }
 | d
 d !} t  | d d ! } | d d !} t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } t  | d d ! } | d d !} t  | d d  ! }  t  | d  d! ! }! i d" d# 6d$ d% 6d& d' 6d( d) 6d* d+ 6d, d- 6d. d/ 6d0 d1 6d2 d3 6d4 d5 6d6 d7 6d8 d9 6}" | rd: n d; |" j | d6  | rd< n d6 |" j |	 d6  |
 rd< n d6 |" j | d6  | rd< n d6 |" j | d6  }# y t |#  }$ Wn t k
 rAd  }$ n Xd= j | rTd> n d6 | rcd? n d6 | rrd@ n d6 | rdA n d6 | rdB n d6 | rdC n d6 | rdD n d6 | rdE n d6 | rdF n d6 |! rdG n d6 | rdH n d6 g  }% |$ d  k rn_ | r|$ dI 9}$ nL | r+|$ dJ 9}$ n9 | r>|$ dK 9}$ n& | rQ|$ dL 9}$ n | rd|$ dM 9}$ n  | rpdN n d6 | rdO n d6 | rdP n d6 | rdQ n d6 | rdR n d6 |  rdS n d6 }& |$ |& |% f S(T   Ni    i   i   i   i   i   i   i   i   i   i   i   i$   i%   i&   i'   i(   i)   i*   i+   i,   i-   i.   i/   i0   i1   i2   i3   i4   i5   i6   i7   i8   t   0t   1111101t   1t   0000101t   2t   1011011t   3t   0011111t   4t   0100111t   5t   0111110t   6t   1111110t   7t   0010101t   8t   1111111t   9t   0111111R4   t   0000000t   Lt   1101000t   -t    t   .t   ,t   ACt   DCt   Autos
   Diode tests
   Conti testt   Capacityt   Relt   Holdt   Mint   Maxt   LowBatg:0yE>gh㈵>g{Gz?g     @g    cAt   %t   Ohmt   Ampt   Voltt   Hzt   C(   t   intt   getR2   t
   ValueErrorR	   t   join('   R   R3   t   act   dct   autot   pclinkt   minust   digit1t   dot1t   digit2t   dot2t   digit3t   dot3t   digit4t   microt   nanot   kilot   diotstt   milit   percentt   megat   contstt   capt   ohmt   relt   holdt   ampt   voltst   hertzt   lowbatt   minmt   fahrenht   celciust   maxmt   digitt   valueStrt   valueNumt   flagst   units(    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyR-   K   s    

o
Oc         C   s'   |  j  j   |  j } |  j  j   | S(   N(   R   R.   R
   R/   (   R   R
   (    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyt   _getAllValues   s    	c         C   s   |  j    d S(   Ni    (   R   (   R   (    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyt   getValue   s    c         C   s   |  j    d S(   Ni   (   R   (   R   (    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyt   getUnit   s    c         C   s   |  j    d S(   Ni   (   R   (   R   (    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyt   getFlags   s    (   t   __name__t
   __module__R"   R#   R*   R   R,   R-   R   R   R   R   (    (    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyR       s   					
	^			(    (	   t   signalR   R0   R   t   iot   getoptR   R   R    (    (    (    s.   /home/zpiman/git/golemScripts/serialDecoder.pyt   <module>   s   