From: Melissa LeBlanc-Williams Date: Fri, 10 Sep 2021 15:58:03 +0000 (-0700) Subject: Fix libgpiod for 64-bit Pi by detecting and loading appropriate lib X-Git-Tag: 6.14.0^2~2 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/2deefaeec74cc239492b4f8edaf0ec5422349e2c?hp=--cc Fix libgpiod for 64-bit Pi by detecting and loading appropriate lib --- 2deefaeec74cc239492b4f8edaf0ec5422349e2c diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py index 19dc98f..326f802 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py @@ -5,6 +5,7 @@ import os import atexit import random import sysv_ipc +import struct DEBUG = False queues = [] @@ -49,9 +50,15 @@ class PulseIn: "Message queue creation failed" ) from sysv_ipc.ExistentialError + # Check if OS is 64-bit + if struct.calcsize("P") * 8 == 64: + libgpiod_filename = "libgpiod_pulsein64" + else: + libgpiod_filename = "libgpiod_pulsein" + dir_path = os.path.dirname(os.path.realpath(__file__)) cmd = [ - dir_path + "/libgpiod_pulsein", + dir_path + "/" + libgpiod_filename, "--pulses", str(maxlen), "--queue", diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64 b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64 new file mode 100644 index 0000000..0143060 Binary files /dev/null and b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein64 differ