From d0b9b737f916a32f0bca6d6819ea7a16c8920b33 Mon Sep 17 00:00:00 2001 From: infinition <37984399+infinition@users.noreply.github.com> Date: Tue, 19 Nov 2024 23:44:00 +0100 Subject: [PATCH] Update epd2in13_V2.py New flag & if condition to track if the display has been initialized & avoid repeated initialization and accumulation of File descriptors & system crash. --- resources/waveshare_epd/epd2in13_V2.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/resources/waveshare_epd/epd2in13_V2.py b/resources/waveshare_epd/epd2in13_V2.py index cbaad67..700b14d 100644 --- a/resources/waveshare_epd/epd2in13_V2.py +++ b/resources/waveshare_epd/epd2in13_V2.py @@ -9,6 +9,7 @@ logger = logging.getLogger(__name__) class EPD: def __init__(self): + self.is_initialized = False # New flag to track if the display has been initialized #INFINITION self.reset_pin = epdconfig.RST_PIN self.dc_pin = epdconfig.DC_PIN self.busy_pin = epdconfig.BUSY_PIN @@ -99,10 +100,12 @@ class EPD: self.ReadBusy() def init(self, update): - if (epdconfig.module_init() != 0): - return -1 - # EPD hardware init start - self.reset() + if not self.is_initialized: # Avoid repeated initialization and accumulation of File descriptors #INFINITION + if epdconfig.module_init() != 0: + return -1 + self.reset() + self.is_initialized = True + if(update == self.FULL_UPDATE): self.ReadBusy() self.send_command(0x12) # soft reset