B
    ¸#]ú  ã               @   sZ   d Z yddlmZ W n  ek
r4   ddlmZ Y nX ddlZddlZG dd„ de	ƒZ
dS )zYLCM type definitions
This file automatically generated by lcm.
DO NOT MODIFY BY HAND!!!!
é    N)ÚBytesIOc               @   s¼   e Zd Zddddddddd	d
dgZdddddddddddgZddddddddddd
ggZdd„ Zdd„ Zdd„ Zdd„ Z	e
e	ƒZ	dd„ Ze
eƒZdZdd„ Ze
eƒZdZd d!„ Ze
eƒZdS )"Úvalve_command_tÚtime_unix_secÚcount_publishÚ	sender_idÚtilt_power_onÚvalve_power_onÚmoog_power_onÚvalve_analog_out_reqÚhigh_side_fault_test_onÚlow_side_fault_test_onÚnum_doublesÚdoublesÚdoubleÚint64_tÚstringÚbooleanÚint32_tÚint16_tzoi.double_tNc             C   sF   d| _ d| _d| _d| _d| _d| _d| _d| _d| _d| _	g | _
d S )Ng        r   Ú F)r   r   r   r   r   r	   r
   r   r   r   r   )Úself© r   úO/Users/ericjmartin/Documents/OceanImaging/TiltingRicketts/oi/valve_command_t.pyÚ__init__   s    zvalve_command_t.__init__c             C   s&   t ƒ }| t ¡ ¡ |  |¡ | ¡ S )N)r   Úwriter   Ú_get_packed_fingerprintÚ_encode_oneÚgetvalue)r   Úbufr   r   r   Úencode"   s    
zvalve_command_t.encodec             C   sÂ   |  t d| j| j¡¡ | j d¡}|  t dt|ƒd ¡¡ |  |¡ |  d¡ |  t d| j| j	| j
| j| j| j| j¡¡ x>t| jƒD ]0}| j|  ¡ tj ¡ ksªt‚| j|  |¡ qŠW d S )Nz>dqzutf-8z>Ié   ó    z>bbbibbh)r   ÚstructÚpackr   r   r   r   Úlenr   r   r	   r
   r   r   r   Úranger   r   ÚoiÚdouble_tÚAssertionErrorr   )r   r   Z#_valve_command_t__sender_id_encodedÚi0r   r   r   r   (   s    

,zvalve_command_t._encode_onec             C   s<   t | dƒr| }nt| ƒ}| d¡t ¡ kr2tdƒ‚t |¡S )NÚreadé   zDecode error)Úhasattrr   r*   r   r   Ú
ValueErrorÚ_decode_one)Údatar   r   r   r   Údecode3   s    
zvalve_command_t.decodec             C   sB  t ƒ }t d|  d¡¡\|_|_t d|  d¡¡d }|  |¡d d…  dd¡|_tt d	|  d
¡¡d ƒ|_	tt d	|  d
¡¡d ƒ|_
tt d	|  d
¡¡d ƒ|_t d|  d¡¡d |_tt d	|  d
¡¡d ƒ|_tt d	|  d
¡¡d ƒ|_t d|  d¡¡d |_g |_x(t|jƒD ]}|j tj | ¡¡ q W |S )Nz>dqé   z>Ié   r   éÿÿÿÿzutf-8ÚreplaceÚbr    z>iz>hé   )r   r"   Úunpackr*   r   r   r0   r   Úboolr   r   r	   r
   r   r   r   r   r%   Úappendr&   r'   r.   )r   r   Z_valve_command_t__sender_id_lenr)   r   r   r   r.   =   s    zvalve_command_t._decode_onec             C   sF   t | krdS | t g }dtj |¡ d@ }|d> d@ |d?  d@ }|S )Nr   l   Ý5=ÇOk l   ÿÿÿÿ r    é?   )r   r&   r'   Ú_get_hash_recursive)ÚparentsÚ
newparentsÚtmphashr   r   r   r;   P   s     
z#valve_command_t._get_hash_recursivec               C   s$   t jd krt dt  g ¡¡t _t jS )Nz>Q)r   Ú_packed_fingerprintr"   r#   r;   r   r   r   r   r   Y   s    
z'valve_command_t._get_packed_fingerprint)Ú__name__Ú
__module__Ú__qualname__Ú	__slots__Ú__typenames__Ú__dimensions__r   r   r   r0   Ústaticmethodr.   Ú_hashr;   r?   r   r   r   r   r   r      s    r   )Ú__doc__ZcStringIO.StringIOÚStringIOr   ÚImportErrorÚior"   Zoi.double_tr&   Úobjectr   r   r   r   r   Ú<module>   s   