U
    f»{j½	  ã                   @   st   d Z ddlZddlmZ ddlmZ ddlmZ dd	lm	Z	 ej
ejejejd
œZe	je	jdœZdd„ Zdd„ ZdS )zRead .hc files.é    Né   )Úloggeré   )Ú_make_ctf_name)ÚCTFé   )ÚFIFF)Znasionzleft earz	right earZspare)zrelative to dewarzrelative to headc                 C   s`  d}t |ƒdkr&|d dkr&|  ¡ }qt |ƒdkr6dS | ¡  d¡}d|krTtdƒ‚tƒ }d|k|d< t ¡ D ]\}}||krn||d	<  q”qnd
|d	< t ¡ D ]\}}||krœ||d<  qÂqœd
|d< t	 
d¡|d< tdƒD ]‚\}}|  ¡  d¡ ¡ }t |ƒdk�rqØ| d¡}t |ƒdk�s6|d |k�s6|d dk�rBtd| ƒ‚t|d ƒd |d |< qØ|S )z2Read coil coordinate information from the hc file.ú#r   Nzutf-8ZUnablezHPI information not availableZmeasuredÚvalidZcoord_frameéÿÿÿÿÚkindr   ÚrZxyzú r   ú=zBad line: %sr   g      Y@)ÚlenÚreadlineÚstripÚdecodeÚRuntimeErrorÚdictÚ_coord_dictÚitemsÚ
_kind_dictÚnpÚemptyÚ	enumerateÚsplitÚfloat)ÚfidÚoneÚpÚkeyÚvalÚiiZcoordÚsp© r%   úL/var/www/html/bwave/python/venv/lib/python3.8/site-packages/mne/io/ctf/hc.pyÚ_read_one_coil_point   s<    

*r'   c              
   C   s¦   t | ddd�\}}|s$t d¡ dS tƒ }t|dƒ�h}t|ƒ}|dkr„t|ƒdkrjt d¡ W 5 Q R £ dS t d	¡ |W  5 Q R £ S |d
 r6| |¡ q6W 5 Q R X dS )zDRead the hc file to get the HPI info and to prepare for coord trans.ZhcF)Zraise_errorz    hc data not presentNÚrbr   zhc file empty, no data presentz    hc data read.r
   )r   r   ÚinfoÚlistÚopenr'   r   Úappend)Ú	directoryÚfnameÚfoundÚsr   r    r%   r%   r&   Ú_read_hcA   s    


r1   )Ú__doc__Únumpyr   Úutilsr   Zres4r   Ú	constantsr   r   ZCTFV_COIL_NASZCTFV_COIL_LPAZCTFV_COIL_RPAZCTFV_COIL_SPAREr   ZFIFFV_MNE_COORD_CTF_DEVICEZFIFFV_MNE_COORD_CTF_HEADr   r'   r1   r%   r%   r%   r&   Ú<module>   s    ÿÿ+