ó
¨Lîcc           @   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€   i    t   EPDc        Ÿ   B   sº  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 „  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 d( „  Z d) „  Z RS(*   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/epd2in7_V2.pyt   __init__-   s    					i@   iH   i€   i    i   i   i   i   i    i   i
   i   i   i   i"   i   iA   i2   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   iÈ   i    i   (   R    t   digital_writeR   t   delay_ms(   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   resetP   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/epd2in7_V2.pyt   send_commandX   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/epd2in7_V2.pyt	   send_data^   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/epd2in7_V2.pyt   ReadBusyd   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/epd2in7_V2.pyt   TurnOnDisplayj   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/epd2in7_V2.pyt   TurnOnDisplay_Fastp   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/epd2in7_V2.pyt   TurnOnDisplay_Partialv   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/epd2in7_V2.pyt   TurnOnDisplay_4GRAY|   s    c         C   s<   |  j  d ƒ x( t d ƒ D] } |  j |  j | ƒ q Wd  S(   Ni2   iŸ   (   R   t   rangeR   t   LUT_DATA_4Gray(   R   t   i(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   Lut‚   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 ƒ |  j d ƒ |  j d ƒ |  j d	 ƒ d S(
   Ni    iÿÿÿÿi   iE   i   i   iO   i   i   (   R    t   module_initR   R   R   R   (   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   init‡   s"    


c         C   s  t  j ƒ  d k r d S|  j ƒ  |  j ƒ  |  j d ƒ |  j ƒ  |  j d ƒ |  j ƒ  |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  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 ƒ  d S(   Ni    iÿÿÿÿi   i   i€   i"   i±   i    i   id   iE   i   i   iO   i   i   i‘   (   R    R(   R   R   R   R   (   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt	   init_Fast    s@    





c         C   s@  t  j ƒ  d k r d S|  j ƒ  |  j d ƒ |  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 d	 ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j |  j d ƒ |  j d ƒ |  j |  j d ƒ |  j d ƒ |  j |  j d ƒ |  j d ƒ |  j |  j d ƒ |  j |  j d ƒ |  j |  j d ƒ |  j ƒ  |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j ƒ  d S(   Ni    iÿÿÿÿi   it   iT   i~   i;   i   i   i   i   iD   i   iE   i<   i,   iž   i?   i™   iš   i   i›   iœ   i   iN   iO   (   R    R(   R   R   R   R   R%   R'   (   R   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt
   Init_4GrayÍ   sV    



c         C   s¬  d g t  |  j d ƒ |  j } | j d ƒ } | j \ } } | j ƒ  } | |  j k rî | |  j k rî t j d ƒ x/t | ƒ D]d } x[ t | ƒ D]M } | | | 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 r9| t  |	 |
 |  j d ƒ c d | d ?M<q9q9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   pixelst   yt   xt   newxt   newy(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_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    R-   iÀ   i€   i@   i   i   i   i   R.   (	   R/   R   R   R0   R1   R2   R   R   R$   (   R   R3   R4   R5   R6   R7   R8   R&   R9   R:   R;   R<   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   getbuffer_4Gray#  s<    !
‰
‰c         C   s“   |  j  d d k r# |  j  d } n |  j  d d } |  j } |  j d ƒ x8 t | ƒ D]* } x! t | ƒ D] } |  j d ƒ qj WqW W|  j ƒ  d  S(   Ni   i    i   i$   iÿ   (   R   R   R   R$   R   R    (   R   t   Widtht   Heightt   jR&   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   ClearG  s    	c         C   sŸ   |  j  d d k r# |  j  d } n |  j  d d } |  j } |  j d ƒ xD t | ƒ D]6 } x- t | ƒ D] } |  j | | | | ƒ qj WqW W|  j ƒ  d  S(   Ni   i    i   i$   (   R   R   R   R$   R   R    (   R   R3   R@   RA   RB   R&   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   displayS  s    	!c         C   sŸ   |  j  d d k r# |  j  d } n |  j  d d } |  j } |  j d ƒ xD t | ƒ D]6 } x- t | ƒ D] } |  j | | | | ƒ qj WqW W|  j ƒ  d  S(   Ni   i    i   i$   (   R   R   R   R$   R   R!   (   R   R3   R@   RA   RB   R&   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   display_Fast_  s    	!c         C   só   |  j  d d k r# |  j  d } n |  j  d d } |  j } |  j d ƒ xD t | ƒ D]6 } x- t | ƒ D] } |  j | | | | ƒ qj WqW W|  j d ƒ xD t | ƒ D]6 } x- t | ƒ D] } |  j | | | | ƒ q¾ Wq« W|  j ƒ  d  S(   Ni   i    i   i$   i&   (   R   R   R   R$   R   R    (   R   R3   R@   RA   RB   R&   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   display_Basek  s    	!!c         C   sÑ   |  j  d d k r# |  j  d } n |  j  d d } |  j } |  j d ƒ x8 t | ƒ D]* } x! t | ƒ D] } |  j | ƒ qj WqW W|  j d ƒ x8 t | ƒ D]* } x! t | ƒ D] } |  j | ƒ q² WqŸ Wd  S(   Ni   i    i   i$   i&   (   R   R   R   R$   R   (   R   t   colorR@   RA   RB   R&   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   display_Base_color|  s    	c   
      C   sŸ  | d | d d | d @k o/ | d k n | d | d Bd | | d Bk oa d k n r} | d } | d } n5 | d } | d d k r¤ | d } n | d d } |  j  d d k rÕ |  j  d } n |  j  d d } |  j } | d 8} | d 8} |  j ƒ  |  j d ƒ |  j d ƒ |  j d ƒ |  j | d @ƒ |  j | d @ƒ |  j d ƒ |  j | d @ƒ |  j | d ?d @ƒ |  j | d @ƒ |  j | d ?d @ƒ |  j d	 ƒ |  j | d @ƒ |  j d
 ƒ |  j | d @ƒ |  j | d ?d @ƒ |  j d ƒ x t | ƒ D]s } xj t | ƒ D]\ }	 | | d k | | d k  @|	 | d k @|	 | d k  @r-|  j | |	 | | ƒ q-q-WqW|  j ƒ  d  S(   Ni   i    i   i<   i€   iD   iÿ   iE   iN   iO   i$   (   R   R   R   R   R   R$   R"   (
   R   t   Imaget   Xstartt   Ystartt   Xendt   YendR@   RA   RB   R&   (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   display_Partial  sF    f

	


:$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   R3   R&   t   temp3RB   t   temp1t   kt   temp2(    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   display_4Gray½  sr    











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/epd2in7_V2.pyt   sleep   s    (   t   __name__t
   __module__R   R%   R   R   R   R   R    R!   R"   R#   R'   R)   R*   R+   R=   R?   RC   RD   RE   RF   RH   RN   RS   RU   (    (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyR   ,   sT   	$$$$$											-	>		$						0	C(    (   t   loggingt    R    R
   R   R   R   R   R   t	   getLoggerRV   R   R   (    (    (    sQ   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7_V2.pyt   <module>   s   