From 63577fd6b79e868599a695eb44382f25aed64aeb Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Thu, 7 May 2020 09:33:09 -0700 Subject: [PATCH] Updated libgpiod to reduce CPU Usage --- .../bcm283x/pulseio/PulseIn.py | 4 +++- .../bcm283x/pulseio/libgpiod_pulsein | Bin 19752 -> 20372 bytes 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py index 6b86614..f16867b 100644 --- a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py +++ b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/PulseIn.py @@ -85,7 +85,9 @@ class PulseIn: except sysv_ipc.BusyError: time.sleep(0.001) # wait a bit then retry! # uh-oh timed out - raise RuntimeError("Timed out waiting for PulseIn message") + raise RuntimeError( + "Timed out waiting for PulseIn message. Be sure libgpiod is installed." + ) # pylint: enable=redefined-builtin diff --git a/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein b/src/adafruit_blinka/microcontroller/bcm283x/pulseio/libgpiod_pulsein index 3bbb65fe39b3daa3c1388d3c7cc44860a2f8654e..0291c1b4669cd98f02f2d1c9d489ed13f1d9ca2f 100755 GIT binary patch literal 20372 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�O|)DrlPuXwM2n1up|g9<)CN!WRJZ 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 Vdj^K79FwE`m6&F_Pp