ó
ŒÅóbc           @   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 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 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 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 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 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 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 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 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 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 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# 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(    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   __init__-   s    					i    i   i   i`   i(   i   i   i   i@   i   i    i€   iP   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   iÈ   i    i   (   R    t   digital_writeR   t   delay_ms(   R   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.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(    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.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(    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.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   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   ReadBusy°   s    c         C   s+  |  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ q W|  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ qX W|  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ q“ W|  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ qÎ W|  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ q	Wd  S(	   Ni    i    i,   i!   i*   i"   i#   i$   (   R   t   rangeR   t   lut_vcom_dct   lut_wwt   lut_bwt   lut_bbt   lut_wb(   R   t   count(    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   set_lut¶   s    c         C   sf  |  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ q W|  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ qX W|  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ q“ W|  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ qÎ W|  j  d ƒ x+ t d d ƒ D] } |  j |  j | ƒ q	W|  j  d	 ƒ x+ t d d ƒ D] } |  j |  j | ƒ qDWd  S(
   Ni    i    i,   i!   i*   i"   i#   i$   i%   (   R   R    R   t   gray_lut_vcomt   gray_lut_wwt   gray_lut_bwt   gray_lut_wbt   gray_lut_bb(   R   R&   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   gray_SetLutÇ   s$    c         C   sZ  t  j ƒ  d k r d S|  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 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 d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j d ƒ |  j ƒ  d S(   Ni    iÿÿÿÿi   i   i+   i	   i   i   i   iø   i`   i¥   i‰   i   i“   i*   i    i¡   is   iA   i   i   i¯   i0   i:   iP   iW   i‚   i   (   R    t   module_initR   R   R   R   R'   (   R   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   inità   s`    


c         C   s„  t  j ƒ  d k r d S|  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 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 d ƒ |  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`   i¥   i‰   i   i“   i*   i    i¡   is   iA   i   i   i¿   i0   ia   i°   i   i‚   i   iP   iW   (   R    R.   R   R   R   R   (   R   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt
   Init_4Gray)  sd    

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(    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt	   getbuffern  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    R2   iÀ   i€   i@   i   i   i   i   R3   (	   R4   R   R   R5   R6   R7   R   R   R    (   R   R8   R9   R:   R;   R<   R=   t   iR>   R?   R@   RA   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   getbuffer_4Gray†  s<    !
‰
‰c         C   s¯   |  j  d ƒ x8 t d t |  j |  j d ƒ ƒ D] } |  j d ƒ q1 W|  j  d ƒ x< t d t |  j |  j d ƒ ƒ D] } |  j | | ƒ qy W|  j  d ƒ |  j ƒ  d  S(   Ni   i    i   iÿ   i   i   (   R   R    R4   R   R   R   R   (   R   R8   RD   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   displayª  s    **c         C   s4  |  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 ƒ  |  j  d	 ƒ t j d
 ƒ |  j ƒ  d  S(   Ni   i    i°  i   iÀ   i   i€   i   i   iÈ   (   R   R    R   R-   R    R   R   (   R   R8   RD   t   temp3t   jt   temp1t   kt   temp2(    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   display_4Gray´  sx    












iÿ   c         C   s«   |  j  d ƒ x8 t d t |  j |  j d ƒ ƒ D] } |  j | ƒ q1 W|  j  d ƒ x8 t d t |  j |  j d ƒ ƒ D] } |  j | ƒ qy W|  j  d ƒ |  j ƒ  d  S(   Ni   i    i   i   i   (   R   R    R4   R   R   R   R   (   R   t   colorRD   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   Clearû  s    **c         C   s\   |  j  d ƒ |  j d ƒ |  j  d ƒ |  j  d ƒ |  j d ƒ t j d ƒ t j ƒ  d  S(   NiP   i÷   i   i   i¥   iÐ  (   R   R   R    R   t   module_exit(   R   (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   sleep  s    (   t   __name__t
   __module__R   R!   R"   R#   R$   R%   R(   R)   R*   R+   R,   R   R   R   R   R'   R-   R/   R0   RB   RE   RF   RL   RN   RP   (    (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyR   ,   s®   								I	E		$	
	G
(    (   t   loggingt    R    R
   R   R   R   R   R   t	   getLoggerRQ   R   R   (    (    (    sN   /home/pi/sy/e-Paper/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in7.pyt   <module>   s   