
k^                 @   se   d  d l  Z  d d l m Z d d   Z d d d d d d	 d
 d d d d d 
 Z d d d  Z d S)    N   )GWInstekPSWc          
   C   s0   t  |  d   } | j t |   Wd  QRXd  S)Nw)openwritestr)Zfnamevaluef r
   0/home/golem/vacuum-control/vacuum/working_gas.py
write2file   s    r   g?   g      ?<      z192.168.2.75z192.168.2.246Fc             C   s  t  |  } | } | j |  | j d  d } } t j   } xYt d  D]K} | } t d d  } t | j    } t d |  | | k r | j d  t	 d j
 | |    t j   | } | | k r t	 d	 j
 |    |  | } | | } t |  | k  rJt |  | | k  rJ|
 rIt d
 j
 | | | |   P| | | | | | 7} | j |  |
 rt d j
 | |   t j |  qO Wd  S)NTr   
   zD/dev/shm/golem/ActualSession/SessionLogBook/ActualChamberPressuremParz/dev/shm/pressure_chamber_mPaFzpressure {} over limit {}z)did not converge, maintaining pressure {}z>reached pressure {} with error {} and change {} in {} seconds zpressure {}, setting voltage {})r   Zset_voltage
set_outputtimeranger   floatreadr   RuntimeErrorformatabsprintZsleep)target_pressureZepsZstart_vZintervalZproportional_constZderivative_constmax_timeZfail_pressurepsw_addressZgauge_addressverbosepswvZlast_ppZstart_txZffelapsederrZchanger
   r
   r   fill_chamber   s8    


(r%   c             C   s   t  |   } | j d  d  S)NF)r   r   )r   r   r
   r
   r   close_valve2   s    r&   )r   Zpsw_gw_instekr   r   r%   r&   r
   r
   r
   r   <module>   s   	#