From a4daf4af61d27643f8f8fb94dc3baea75ee6522d Mon Sep 17 00:00:00 2001
From: "mohesh.mohan" <moheshmohan@gmail.com>
Date: Thu, 12 Dec 2019 00:37:24 +0400
Subject: [PATCH] waveshare213b and waveshare213c support bug fixes

---
 .../ui/hw/libs/waveshare/v213bc/epd2in13bc.py | 41 +++++++++++--------
 pwnagotchi/ui/hw/waveshare213bc.py            |  2 +-
 2 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/pwnagotchi/ui/hw/libs/waveshare/v213bc/epd2in13bc.py b/pwnagotchi/ui/hw/libs/waveshare/v213bc/epd2in13bc.py
index 864d8c5..1d321eb 100644
--- a/pwnagotchi/ui/hw/libs/waveshare/v213bc/epd2in13bc.py
+++ b/pwnagotchi/ui/hw/libs/waveshare/v213bc/epd2in13bc.py
@@ -46,11 +46,11 @@ class EPD:
     # Hardware reset
     def reset(self):
         epdconfig.digital_write(self.reset_pin, 1)
-        epdconfig.delay_ms(200) 
+        epdconfig.delay_ms(200)
         epdconfig.digital_write(self.reset_pin, 0)
         epdconfig.delay_ms(10)
         epdconfig.digital_write(self.reset_pin, 1)
-        epdconfig.delay_ms(200)   
+        epdconfig.delay_ms(200)
 
     def send_command(self, command):
         epdconfig.digital_write(self.dc_pin, 0)
@@ -63,7 +63,7 @@ class EPD:
         epdconfig.digital_write(self.cs_pin, 0)
         epdconfig.spi_writebyte([data])
         epdconfig.digital_write(self.cs_pin, 1)
-        
+
     def ReadBusy(self):
         logging.debug("e-Paper busy")
         while(epdconfig.digital_read(self.busy_pin) == 0):      # 0: idle, 1: busy
@@ -73,23 +73,23 @@ class EPD:
     def init(self):
         if (epdconfig.module_init() != 0):
             return -1
-            
+
         self.reset()
 
         self.send_command(0x06) # BOOSTER_SOFT_START
         self.send_data(0x17)
         self.send_data(0x17)
         self.send_data(0x17)
-        
+
         self.send_command(0x04) # POWER_ON
         self.ReadBusy()
-        
+
         self.send_command(0x00) # PANEL_SETTING
         self.send_data(0x8F)
-        
+
         self.send_command(0x50) # VCOM_AND_DATA_INTERVAL_SETTING
         self.send_data(0xF0)
-        
+
         self.send_command(0x61) # RESOLUTION_SETTING
         self.send_data(self.width & 0xff)
         self.send_data(self.height >> 8)
@@ -125,26 +125,36 @@ class EPD:
         for i in range(0, int(self.width * self.height / 8)):
             self.send_data(imageblack[i])
         self.send_command(0x92)
-        
+
         self.send_command(0x13)
         for i in range(0, int(self.width * self.height / 8)):
             self.send_data(imagered[i])
         self.send_command(0x92)
-        
+
         self.send_command(0x12) # REFRESH
         self.ReadBusy()
-        
+
+    def pwndisplay(self, imageblack):
+        self.send_command(0x10)
+        for i in range(0, int(self.width * self.height / 8)):
+            self.send_data(imageblack[i])
+        self.send_command(0x92)
+
+        self.send_command(0x12) # REFRESH
+        self.ReadBusy()
+
+
     def Clear(self):
         self.send_command(0x10)
         for i in range(0, int(self.width * self.height / 8)):
             self.send_data(0xFF)
-        self.send_command(0x92) 
-        
+        self.send_command(0x92)
+
         self.send_command(0x13)
         for i in range(0, int(self.width * self.height / 8)):
             self.send_data(0xFF)
         self.send_command(0x92)
-        
+
         self.send_command(0x12) # REFRESH
         self.ReadBusy()
 
@@ -153,7 +163,6 @@ class EPD:
         self.ReadBusy()
         self.send_command(0x07) # DEEP_SLEEP
         self.send_data(0xA5) # check code
-        
+
         epdconfig.module_exit()
 ### END OF FILE ###
-
diff --git a/pwnagotchi/ui/hw/waveshare213bc.py b/pwnagotchi/ui/hw/waveshare213bc.py
index 6ceebb7..81b5770 100644
--- a/pwnagotchi/ui/hw/waveshare213bc.py
+++ b/pwnagotchi/ui/hw/waveshare213bc.py
@@ -42,7 +42,7 @@ class Waveshare213bc(DisplayImpl):
 
     def render(self, canvas):
         buf = self._display.getbuffer(canvas)
-        self._display.display(buf)
+        self._display.pwndisplay(buf)
 
     def clear(self):
         #pass