From a2d18bdb71bb245164177abdf621ad31d4391759 Mon Sep 17 00:00:00 2001 From: "E. A. Graham Jr." <10370165+EAGrahamJr@users.noreply.github.com> Date: Fri, 12 Jul 2024 09:49:45 -0700 Subject: [PATCH 1/2] Add I2C bus support Fixes #16 by adding the same constructs as found in SSD1306. --- adafruit_displayio_sh1106.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/adafruit_displayio_sh1106.py b/adafruit_displayio_sh1106.py index 79a00b0..51c76e3 100644 --- a/adafruit_displayio_sh1106.py +++ b/adafruit_displayio_sh1106.py @@ -25,10 +25,13 @@ # Support both 8.x.x and 9.x.x. Change when 8.x.x is discontinued as a stable release. try: - from fourwire import FourWire + from typing import Union from busdisplay import BusDisplay + from fourwire import FourWire + from i2cdisplaybus import I2CDisplayBus except ImportError: from displayio import FourWire + from displayio import I2CDisplay as I2CDisplayBus from displayio import Display as BusDisplay __version__ = "0.0.0+auto.0" @@ -67,7 +70,7 @@ class SH1106(BusDisplay): :param int rotation: The rotation of the display. 0, 90, 180 or 270. """ - def __init__(self, bus: FourWire, **kwargs) -> None: + def __init__(self, bus: Union[FourWire, I2CDisplayBus], **kwargs) -> None: init_sequence = bytearray(_INIT_SEQUENCE) super().__init__( bus, From c019258042d6ebc4c5a62f5a9237a5a16f0a456d Mon Sep 17 00:00:00 2001 From: "E. A. Graham Jr." <10370165+EAGrahamJr@users.noreply.github.com> Date: Sun, 14 Jul 2024 14:12:50 -0700 Subject: [PATCH 2/2] Adjusting per feedback. --- adafruit_displayio_sh1106.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/adafruit_displayio_sh1106.py b/adafruit_displayio_sh1106.py index 51c76e3..e6d1515 100644 --- a/adafruit_displayio_sh1106.py +++ b/adafruit_displayio_sh1106.py @@ -26,8 +26,12 @@ # Support both 8.x.x and 9.x.x. Change when 8.x.x is discontinued as a stable release. try: from typing import Union - from busdisplay import BusDisplay +except ImportError: + pass + +try: from fourwire import FourWire + from busdisplay import BusDisplay from i2cdisplaybus import I2CDisplayBus except ImportError: from displayio import FourWire