B
    :^                 @   s   d 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dlZddl	Z	ddl
Z
ddlmZ G dd dZdd Zdd	d
Zedkre Zejredd ejredejd dS )zZ
.. module:: flipper
    :platform: unix

.. codeauthor:: Michael Coughlin, Eric Coughlin
    N)MFFc               @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )Flipperz
    c             C   s   d | _ |  | _d | _d S )N)statuscreate_connectionflipperstate)self r	   /home/cbp/cbp/cbp/flipper.py__init__   s    
zFlipper.__init__c          
   C   sR   yd}t dd|d}d| _|S  tk
rL } zt| d| _W dd}~X Y nX dS )z^
        This method creates a connection by using a child process.

        :return:
        Z37873245ZMFF101r   )sn	connectedznot connectedN)r   r   	Exceptionprint)r   r   childer	   r	   r
   r      s    zFlipper.create_connectionc          
   C   sH   y| j  \}}W n0 tk
rB } zt| d| _W dd}~X Y nX dS )z
        :return:
        znot connectedN)r   Z	GetStatusr   r   r   )r   posr   r   r	   r	   r
   check_status(   s
    zFlipper.check_statusc             C   s   | j dkr| j  dS )z
        :return:
        znot connectedN)r   r   close)r   r	   r	   r
   close_connection2   s    
zFlipper.close_connectionc             C   s   | j dkr| j| n dS )zl
        :param flipper: State to set the flipper to.  valid options are 1 and 2.

        :return:
        znot connectedN)r   r   ZMoveJog)r   r   r	   r	   r
   run_flipper9   s    
zFlipper.run_flipperN)	__name__
__module____qualname____doc__r   r   r   r   r   r	   r	   r	   r
   r      s   
r   c              C   sL   t  } | jdddtd | jddddd	 | jd
ddd	 |  \}}|S )z
    z-pz	--flipper   )defaulttypez-cz--doCompile
store_trueF)actionr   z--doFlipper)optparseOptionParser
add_optionint
parse_args)parseroptsargsr	   r	   r
   parse_commandlineD   s    r(   compilec             C   s.   t  }| dkr|  n| dkr*|| d S )Nr)   r   )r   Z
do_compiler   )runtypevalr   r	   r	   r
   mainR   s
    
r,   __main__)r*   r   )r*   r+   )r)   r   )r   serialsystimeglobstructosnumpynpr    pexpectZodemis.driver.tlaptmfr   r   r(   r,   r   r&   Z	doCompileZ	doFlipperr   r	   r	   r	   r
   <module>   s   03
	
