minor improvements

This commit is contained in:
Ace 2020-05-30 00:48:12 +02:00
parent 39e8da6388
commit 3b3c42cec7

View File

@ -4,29 +4,34 @@
Inky-Calendar epaper functions Inky-Calendar epaper functions
Copyright by aceisace Copyright by aceisace
""" """
from importlib import import_module
from PIL import Image
class Display: class Display:
"""Display class for inkycal """Display class for inkycal
Handles rendering on display""" Handles rendering on display"""
_allowed_models = [] def __init__(self, epaper_model):
def __init__(self, epaper_model, supports_colour = False):
"""Load the drivers for this epaper model""" """Load the drivers for this epaper model"""
if 'colour' in epaper_model:
self.supports_colour = supports_colour self.supports_colour = True
else:
self.supports_colour = False
try: try:
importer = 'from inkycal.display.drivers import {} as driver'.format( driver_path = 'inkycal.display.drivers.{}'.format(epaper_model)
epaper_model) driver = import_module(driver_path)
exec(importer) self._epaper = driver.EPD()
except ModuleNotFoundError: except ImportError:
raise Exception('This module is not supported. Check your spellings?') raise Exception('This module is not supported. Check your spellings?')
except FileNotFoundError: except FileNotFoundError:
raise Exception('SPI could not be found. Please check if SPI is enabled') raise Exception('SPI could not be found. Please check if SPI is enabled')
self._epaper = driver.EPD() self._epaper.init()
self._epaper.sleep()
def render(self, im_black, im_colour = None): def render(self, im_black, im_colour = None):
"""Render an image on the epaper """Render an image on the epaper
@ -47,7 +52,7 @@ class Display:
print('Initialising..', end = '') print('Initialising..', end = '')
epaper.init() epaper.init()
print('Updating display......', end = '') print('Updating display......', end = '')
epaper.display(epaper.getbuffer(im_black)) epaper.display(epaper.getbuffer(im_black), epaper.getbuffer(im_colour))
print('Done') print('Done')
print('Sending E-Paper to deep sleep...', end = '') print('Sending E-Paper to deep sleep...', end = '')
@ -62,8 +67,8 @@ class Display:
epaper = self._epaper epaper = self._epaper
epaper.init() epaper.init()
white = Image.new('1', (display_width, display_height), 'white') white = Image.new('1', (epaper.width, epaper.height), 'white')
black = Image.new('1', (display_width, display_height), 'black') black = Image.new('1', (epaper.width, epaper.height), 'black')
print('----------Started calibration of ePaper display----------') print('----------Started calibration of ePaper display----------')
if self.supports_colour == True: if self.supports_colour == True:
@ -75,15 +80,16 @@ class Display:
epaper.display(epaper.getbuffer(white), epaper.getbuffer(black)) epaper.display(epaper.getbuffer(white), epaper.getbuffer(black))
print('white...') print('white...')
epaper.display(epaper.getbuffer(white), epaper.getbuffer(white)) epaper.display(epaper.getbuffer(white), epaper.getbuffer(white))
print('Cycle {0} of {1} complete'.format(_+1, no_of_cycles)) print('Cycle {0} of {1} complete'.format(_+1, cycles))
if self.supports_colour == False: if self.supports_colour == False:
for _ in range(no_of_cycles): for _ in range(cycles):
print('Calibrating...', end= ' ') print('Calibrating...', end= ' ')
print('black...', end = ' ') print('black...', end = ' ')
epaper.display(epaper.getbuffer(black)) epaper.display(epaper.getbuffer(black))
print('white...') print('white...')
epaper.display(epaper.getbuffer(white)), epaper.display(epaper.getbuffer(white)),
print('Cycle {0} of {1} complete'.format(_+1, no_of_cycles)) print('Cycle {0} of {1} complete'.format(_+1, cycles))
print('-----------Calibration complete----------') print('-----------Calibration complete----------')
epaper.sleep() epaper.sleep()