ó
V“:[c           @   s¾   d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l Z d  d l j Z d  d l Z	 d „  Z
 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d S(   iÿÿÿÿNc          C   s/   d }  t  t j ƒ d k r+ t j d }  n  |  S(   Nt   0i   (   t   lent   syst   argv(   t   serial_entry(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt	   getSerial
   s    c          C   sŒ   d }  t  t j ƒ d k r7 t j t j d d ƒ }  n  t j d |  ƒ } t  t j ƒ d k rˆ x& t j d D] } | d | } qm Wn  | S(   Nt	   000000000i   i	   s   %Y%m%d%H%M%S__i   t   _(   R   R   R   t   stringt   zfillt   timet   strftime(   R   t   labelt	   arg_value(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   getTraceName   s    c         C   s0   d |  } t  j j | ƒ s, t  j | ƒ n  d  S(   Ns   I:\common\tests\isfetCT\(   t   ost   patht   existst   makedirs(   t   trace_snt   my_path(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   createDirectory   s    
c         C   sP   t  d | d | d | d d ƒ } x |  D] } | | IJq. W| j ƒ  d  S(   Ns   I:\common\tests\isfetCT\s   \R   s   .txts   w+(   t   opent   close(   t   tracer_datat
   trace_nameR   t   channelt   dataFilet	   dataPoint(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt
   dataToFile    s    'c         C   s_   t  d | d |  d | d d ƒ } g  } x! | D] } | j | j ƒ  ƒ q4 W| j ƒ  | S(   Ns   I:\common\tests\isfetCT\s   \R   s   .txtt   r(   R   t   appendt   stripR   (   R   R   R   R   t   my_dataR   (    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   dataFromFile&   s    '
c         C   s
  g  } g  } x% |  D] } | j  d t | ƒ ƒ q Wx% | D] } | j  d t | ƒ ƒ q; Wt t | ƒ ƒ } t t | ƒ ƒ }	 yw t d d ƒ }
 |
 j t j d ƒ ƒ |
 j d | ƒ |
 j d | ƒ |
 j d |	 ƒ |
 j d | ƒ |
 j ƒ  Wn d GHn Xd  S(	   Ng      ð¿s/   I:\common\tests\isfetCT\historic_isfet_data.csvs   a+s	   %m/%d/%Y,s   %s,s   %e,s   %s
s   csv is open my dudes(	   R   t   floatt   abst   minR   t   writeR
   R   R   (   t   tracer_data_At   tracer_data_BR   R   t   i_data_at   i_data_bt   iat   ibt	   leakage_At	   leakage_Bt   csvFile(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   dataAppendCsv.   s$    c         C   s„  g  } g  } g  } x1 t  d d d ƒ D] } | j t | ƒ d ƒ q% Wx% |  D] } | j d t | ƒ ƒ qM Wx% | D] }	 | j d t |	 ƒ ƒ qu W| }
 d } t | ƒ t j ƒ  k  rÑ |
 d }
 | d 7} n  t | ƒ t j ƒ  k  r |
 d }
 | d 7} n  | d k r|
 d	 7}
 n  t j d
 d d g ƒ t j |
 ƒ t j	 d ƒ t j
 d t t | ƒ ƒ ƒ t j | | ƒ t j d ƒ t j d ƒ t j d d ƒ t j t ƒ t j	 d ƒ t j | | ƒ t j d ƒ t j d ƒ t j d d ƒ t j d t t | ƒ ƒ d ƒ t j ƒ  GHt j t j ƒ  d d d d ƒt j t ƒ t j	 d ƒ t j
 d t t | ƒ ƒ ƒ t j | | ƒ t j d ƒ t j d ƒ t j d d ƒ t j t ƒ t j	 d ƒ t j | | ƒ t j d ƒ t j d ƒ t j d d ƒ t j d t t | ƒ ƒ d ƒ t j t j ƒ  d d d d ƒt j t ƒ t j ƒ  t j d | d | d ƒ t j ƒ  d  S(   Niçÿÿÿi   i   g      @g      ð¿i    s   
A channel exceeds leakage specs   
B channel exceeds leakage specs   

PASSt   figsizeg333333#@iÝ   s   A: %eAs   v (V)s   i (A)iûÿÿÿi   iß   t	   linewidthi   t   colorR   iÞ   s   B: %eAià   s   I:\common\tests\isfetCT\s   \s   _curves.png(   t   rangeR   R#   R%   t   rlt   getLeakageSpect   pltt   figuret   suptitlet   subplott   titleR$   t   plott   xlabelt   ylabelt   xlimt   gridt   Truet   ylimt   axhlinet   drawt   savefigt   show(   R'   R(   R   R   t   v_dataR)   R*   t   vR+   R,   t   my_titlet   fail(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt
   dataToPlotI   sn    

  
c          C   s%   t  j d d ƒ }  t  j |  ƒ } | S(   Nt   HP4145Bs   *IDN?(   t
   VisaDrivert   GetInstrumentt   OpenInstrument(   t   hpt   hp_inst(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   tracerConnectŽ   s    c         C   s   t  j |  ƒ d  S(   N(   RM   t   CloseInstrument(   t   tracer(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   tracerDisconnect“   s    c         C   s„   | d k s | d k r€ t  j |  d | d ƒ t  j |  d ƒ t  j |  d ƒ t  j |  d ƒ t  j |  d ƒ t j d	 ƒ n  d  S(
   Nt   At   Bs
   GT'P TRACEs   't   BCt   MDt   IT3t   ME1i   (   RM   t	   WriteDataR
   t   sleep(   RT   R   (    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   tracerRunAndWait–   s    c         C   s²   d  } x/ | d  k r7 t j |  d ƒ t j |  ƒ } q	 Wt j | d d ƒ } g  } xW | D]O } | j d d ƒ } | j d d ƒ } | j d d ƒ } | j t | ƒ ƒ q[ W| S(   Ns	   DO'ITEST'i    t   ,t   Nt    t   Ct   X(	   t   NoneRM   R\   t   ReadDataR   t   splitt   replaceR   R#   (   RT   t   rett   data_strt   data_fltt   value(    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   tracerGetData¡   s    (   R   RM   R
   R   R   t   matplotlib.pyplott   pyplotR7   t   RedLineR5   R   R   R   R   R"   R0   RK   RR   RU   R^   Rl   (    (    (    s(   C:\isfetCurveTraceApp\CurveTraceIsfet.pyt   <module>   s"   							E			