ó
!ïdc           @   sf   d  d l  Z  d d l m Z d Z d Z d Z d Z d Z d Z e  j	 e
 ƒ Z d	 d d
 „  ƒ  YZ d S(   iÿÿÿÿNi   (   t	   epdconfigi€   i(  iÿ   iÀ   i    t   EPDc        Ÿ   B   sz  e  Z d  „  Z d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d	 d
 d gŸ Z d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d
 d gŸ Z d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d
 d d d d d d d d
 d gŸ Z d „  Z d „  Z d „  Z d  „  Z	 d! „  Z
 d" „  Z d# „  Z d$ „  Z d% „  Z d& „  Z d' „  Z d( „  Z d) „  Z d* „  Z d+ „  Z d, „  Z d- „  Z d. „  Z d/ „  Z d0 d1 „ Z d2 „  Z RS(3   c         C   sj   t  j |  _ t  j |  _ t  j |  _ t  j |  _ t	 |  _
 t |  _ t |  _ t |  _ t |  _ t |  _ d  S(   N(   R    t   RST_PINt	   reset_pint   DC_PINt   dc_pint   BUSY_PINt   busy_pint   CS_PINt   cs_pint	   EPD_WIDTHt   widtht
   EPD_HEIGHTt   heightt   GRAY1t   GRAY2t   GRAY3t   GRAY4(   t   self(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   __init__,   s    					i    i@   i€   i
   i   i"   i   iA   i°   i2   i6   if   i   i    i   i   i   iD   i`   i(   i*   i   i   i   i   i$   i#   i®   c         C   sd   t  j |  j d ƒ t  j d ƒ t  j |  j d ƒ t  j d ƒ t  j |  j d ƒ t  j d ƒ d  S(   Ni   i2   i    i   (   R    t   digital_writeR   t   delay_ms(   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   reset{   s    c         C   sM   t  j |  j d ƒ t  j |  j d ƒ t  j | g ƒ t  j |  j d ƒ d  S(   Ni    i   (   R    R   R   R	   t   spi_writebyte(   R   t   command(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   send_commandƒ   s    c         C   sM   t  j |  j d ƒ t  j |  j d ƒ t  j | g ƒ t  j |  j d ƒ d  S(   Ni   i    (   R    R   R   R	   R   (   R   t   data(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt	   send_data‰   s    c         C   sJ   t  j |  j d ƒ t  j |  j d ƒ t  j | ƒ t  j |  j d ƒ d  S(   Ni   i    (   R    R   R   R	   t   spi_writebyte2(   R   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt
   send_data2   s    c         C   sJ   t  j d ƒ x) t j |  j ƒ d k r8 t j d ƒ q Wt  j d ƒ d  S(   Ns   e-Paper busyi   i
   s   e-Paper busy release(   t   loggert   debugR    t   digital_readR   R   (   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   ReadBusy–   s    c         C   s5   |  j  d ƒ |  j d ƒ |  j  d ƒ |  j ƒ  d  S(   Ni"   iÇ   i    (   R   R   R!   (   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   TurnOnDisplayœ   s    c         C   s5   |  j  d ƒ |  j d ƒ |  j  d ƒ |  j ƒ  d  S(   Ni"   i   i    (   R   R   R!   (   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   TurnOnDisplay_Partial¢   s    c         C   sF   |  j  d ƒ x( t d d ƒ D] } |  j | | ƒ q W|  j ƒ  d  S(   Ni2   i    i™   (   R   t   rangeR   R!   (   R   t   lutt   i(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyR%   ¨   s    c         C   s«   |  j  | ƒ |  j d ƒ |  j | d ƒ |  j d ƒ |  j | d ƒ |  j d ƒ |  j | d ƒ |  j | d ƒ |  j | d ƒ |  j d	 ƒ |  j | d
 ƒ d  S(   Ni?   i™   i   iš   i   i›   iœ   i   i,   iž   (   R%   R   R   (   R   R%   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   SetLut®   s    c         C   s”   |  j  d ƒ |  j | d ?d @ƒ |  j | d ?d @ƒ |  j  d ƒ |  j | d @ƒ |  j | d ?d @ƒ |  j | d @ƒ |  j | d ?d @ƒ d  S(   NiD   i   iÿ   iE   i   (   R   R   (   R   t   x_startt   y_startt   x_endt   y_end(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt	   SetWindow»   s    c         C   sU   |  j  d ƒ |  j | d @ƒ |  j  d ƒ |  j | d @ƒ |  j | d ?d @ƒ d  S(   NiN   iÿ   iO   i   (   R   R   (   R   t   xt   y(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt	   SetCursorÆ   s
    c         C   s  t  j ƒ  d k r d S|  j ƒ  |  j ƒ  |  j d ƒ |  j ƒ  |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d d |  j d |  j d ƒ |  j d ƒ |  j d ƒ |  j d	 ƒ |  j	 d d ƒ |  j ƒ  |  j
 |  j ƒ d S(
   Ni    iÿÿÿÿi   i   i'   i   i   i!   i€   (   R    t   module_initR   R!   R   R   R,   R   R   R/   R'   t   WS_20_30(   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   initÏ   s(    


$
c         C   s  t  j ƒ  d k r d S|  j ƒ  t  j d ƒ |  j ƒ  |  j d ƒ |  j ƒ  |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d	 d |  j |  j	 d ƒ |  j d
 ƒ |  j d ƒ |  j
 d d ƒ |  j ƒ  |  j |  j ƒ d S(   Ni    iÿÿÿÿid   i   i   i'   i   i   i   i<   i   (   R    R0   R   R   R!   R   R   R,   R   R   R/   R'   t   Gray4(   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt
   Init_4Grayî   s(    


 
c         C   sÃ  d g t  |  j d ƒ |  j } | j d ƒ } | j \ } } | j ƒ  } | |  j k r| |  j k rt j d ƒ xFt | ƒ D]{ } xr t | ƒ D]d } t j | | | f ƒ | | | f d k r– | t  | | |  j d ƒ c d | d ?M<q– q– Wqƒ Wnº | |  j k r¿| |  j k r¿t j d ƒ xŒ t | ƒ D]{ } xr t | ƒ D]d } | }	 |  j | d }
 | | | f d k rP| t  |	 |
 |  j d ƒ c d | d ?M<qPqPWq=Wn  | S(	   Niÿ   i   t   1t   Verticali    i€   t
   Horizontali   (	   t   intR   R   t   convertt   sizet   loadR   R   R$   (   R   t   imaget   buft   image_monocolort   imwidtht   imheightt   pixelsR.   R-   t   newxt   newy(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt	   getbuffer  s(    !<<c         C   sø  d g t  |  j d ƒ |  j } | j d ƒ } | j \ } } | j ƒ  } d } | |  j k r—| |  j k r—t j d ƒ xut | ƒ D]} xþ t | ƒ D]ð }	 | |	 | f d k rË d | |	 | f <n) | |	 | f d k rô d | |	 | f <n  | d	 } | d d k rœ | |	 d
 | f d @| |	 d | f d @d ?B| |	 d	 | f d @d ?B| |	 | f d @d ?B| t  |	 | |  j d ƒ <qœ qœ Wq‰ Wn]| |  j k rô| |  j k rôt j d ƒ x/t | ƒ D]}	 xt | ƒ D]} | }
 |  j |	 d	 } | |	 | f d k r(d | |	 | f <n) | |	 | f d k rQd | |	 | f <n  | d	 } | d d k râ| |	 | d
 f d @| |	 | d f d @d ?B| |	 | d	 f d @d ?B| |	 | f d @d ?B| t  |
 | |  j d ƒ <qâqâWqÏWn  | S(   Niÿ   i   t   Li    R6   iÀ   i€   i@   i   i   i   i   R7   (	   R8   R   R   R9   R:   R;   R   R   R$   (   R   R<   R=   R>   R?   R@   RA   R&   R.   R-   RB   RC   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   getbuffer_4Gray%  s<    !
‰
‰c         C   s8   | d  k r d  S|  j d ƒ |  j | ƒ |  j ƒ  d  S(   Ni$   (   t   NoneR   R   R"   (   R   R<   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   displayI  s
    c         C   sR   | d  k r d  S|  j d ƒ |  j | ƒ |  j d ƒ |  j | ƒ |  j ƒ  d  S(   Ni$   i&   (   RG   R   R   R"   (   R   R<   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   display_BaseP  s    c         C   s  |  j  d ƒ xqt d d ƒ D]`} d } xDt d d ƒ D]3} | | d | } xt d d ƒ D]} | d @} | d k rŠ | d O} n< | d k r£ | d O} n# | d k r¼ | d O} n
 | d O} | d K} | d K} | d @} | d k rý | d O} n< | d k r| d O} n# | d k r/| d O} n
 | d O} | d k sQ| d k r^| d K} n  | d K} qa Wq9 W|  j | ƒ q W|  j  d ƒ xqt d d ƒ D]`} d } xDt d d ƒ D]3} | | d | } xt d d ƒ D]} | d @} | d k r| d O} n< | d k r$| d O} n# | d k r=| d O} n
 | d O} | d K} | d K} | d @} | d k r~| d O} n< | d k r—| d O} n# | d k r°| d O} n
 | d O} | d k sÒ| d k rß| d K} n  | d K} qâWqºW|  j | ƒ qžW|  j ƒ  d  S(	   Ni$   i    i€  i   iÀ   i   i€   i&   (   R   R$   R   R"   (   R   R<   R&   t   temp3t   jt   temp1t   kt   temp2(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   display_4Gray\  sr    











c         C   s–  | d  k r d  St j |  j d ƒ t j d ƒ t j |  j d ƒ t j d ƒ |  j |  j ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d	 ƒ |  j d
 ƒ |  j	 ƒ  |  j
 d d |  j d |  j d ƒ |  j d d ƒ |  j d ƒ |  j | ƒ |  j ƒ  d  S(   Ni    i   i   i7   i@   i<   i€   i"   iÀ   i    i$   (   RG   R    R   R   R   R'   t   WF_PARTIAL_2IN9R   R   R!   R,   R   R   R/   R   R#   (   R   R<   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   display_PartialŸ  s:    
$iÿ   c         C   s´   |  j  d d k r) t |  j  d ƒ } n t |  j  d ƒ d } |  j d ƒ |  j | g t |  j | ƒ ƒ |  j ƒ  |  j d ƒ |  j | g t |  j | ƒ ƒ |  j ƒ  d  S(   Ni   i    i   i$   i&   (   R   R8   R   R   R   R"   (   R   t   colort	   linewidth(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   ClearÅ  s    !
!c         C   s5   |  j  d ƒ |  j d ƒ t j d ƒ t j ƒ  d  S(   Ni   i   iÐ  (   R   R   R    R   t   module_exit(   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   sleepÒ  s    (   t   __name__t
   __module__R   RP   R1   R3   R   R   R   R   R!   R"   R#   R%   R'   R,   R/   R2   R4   RD   RF   RH   RI   RO   RQ   RT   RV   (    (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyR   +   sž   	$$$$$$$$$$$$$$$																$			C	&(    (   t   loggingt    R    R
   R   R   R   R   R   t	   getLoggerRW   R   R   (    (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.pyt   <module>   s   