From 5fb07bc1ec2a38b683afb18ccd71c26cfc0fdb0a Mon Sep 17 00:00:00 2001 From: Dave Carlson Date: Sat, 18 Aug 2018 15:35:23 -0700 Subject: [PATCH 1/3] switch buttons utility build to Makefile / not a.out and make scripts not require cwd --- lib/pi-buttons/Makefile | 9 ++++++++ lib/pi-buttons/a.out | Bin 14132 -> 0 bytes lib/pi-buttons/build.sh | 5 ----- lib/pi-buttons/setup.sh | 48 ++++++++++++++++++++++++++++++++-------- openaps-menu.sh | 11 +++++++-- 5 files changed, 57 insertions(+), 16 deletions(-) create mode 100644 lib/pi-buttons/Makefile delete mode 100755 lib/pi-buttons/a.out delete mode 100755 lib/pi-buttons/build.sh diff --git a/lib/pi-buttons/Makefile b/lib/pi-buttons/Makefile new file mode 100644 index 0000000..82e823c --- /dev/null +++ b/lib/pi-buttons/Makefile @@ -0,0 +1,9 @@ +LIBS=-lpthread -lrt + +buttons: buttons.o + $(CC) -o $@ $^ $(CFLAGS) $(LIBS) + +.PHONY: clean + +clean: + rm -vf *.o buttons diff --git a/lib/pi-buttons/a.out b/lib/pi-buttons/a.out deleted file mode 100755 index b8e6cf48dddcdc26d83ca40613d264ccce778789..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14132 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 /sys/class/gpio/export -echo 22 > /sys/class/gpio/export -echo 27 > /sys/class/gpio/export +if [ ! -w /sys/class/gpio/export ]; then + echo "$0 must be run with GPIO permissions (typically gpio group membership or root/sudo)" + exit 1 +fi -sleep 3 +for gpionum in 17 22 27; do + if [ ! -d /sys/class/gpio/gpio${gpionum} ]; then + echo "exporting GPIO ${gpionum}" + echo ${gpionum} > /sys/class/gpio/export + else + echo "GPIO ${gpionum} already exported" + fi +done -echo "in" > /sys/class/gpio/gpio17/direction -echo "both" > /sys/class/gpio/gpio17/edge +for gpionum in 17 22; do + if [ "$(/bin/cat /sys/class/gpio/gpio${gpionum}/direction)" != "in" ]; then + echo "setting GPIO ${gpionum} direction to inwards" + echo in > /sys/class/gpio/gpio${gpionum}/direction + else + echo "GPIO ${gpionum} already direction inwards" + fi + if [ "$(/bin/cat /sys/class/gpio/gpio${gpionum}/edge)" != "both" ]; then + echo "setting GPIO ${gpionum} signal edge to both" + echo both > /sys/class/gpio/gpio${gpionum}/edge + else + echo "GPIO ${gpionum} signal edge already both" + fi +done -echo "in" > /sys/class/gpio/gpio27/direction -echo "both" > /sys/class/gpio/gpio27/edge -echo "out" > /sys/class/gpio/gpio22/direction +if [ "$(/bin/cat /sys/class/gpio/gpio27/direction)" != "out" ]; then + echo "setting GPIO 27 direction to outwards" + echo out > /sys/class/gpio/gpio27/direction +else + echo "GPIO 27 already direction outwards" +fi + +if [ ! -x $(dirname $0)/buttons ]; then + echo "building buttons executable" + /usr/bin/make -C $(dirname $0) +else + echo "buttons executable exists" +fi diff --git a/openaps-menu.sh b/openaps-menu.sh index ea3f3f0..9aa198a 100755 --- a/openaps-menu.sh +++ b/openaps-menu.sh @@ -1,3 +1,10 @@ -#!/bin/bash +#!/bin/bash -e -(cd lib/pi-buttons/ && ./setup.sh && ./a.out) & node index.js +topdir=$(dirname $0) +buttonsdir=${topdir}/lib/pi-buttons + +# GPIO setup and buttons utility build +${buttonsdir}/setup.sh + +${buttonsdir}/buttons & +exec node ${topdir}/index.js From 8738aadea090c0515d6dc42b1dfd223e389f1c1e Mon Sep 17 00:00:00 2001 From: Dave Carlson Date: Sat, 18 Aug 2018 16:13:27 -0700 Subject: [PATCH 2/3] fix buttons-needs-cwd --- openaps-menu.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openaps-menu.sh b/openaps-menu.sh index 9aa198a..553e1df 100755 --- a/openaps-menu.sh +++ b/openaps-menu.sh @@ -6,5 +6,7 @@ buttonsdir=${topdir}/lib/pi-buttons # GPIO setup and buttons utility build ${buttonsdir}/setup.sh -${buttonsdir}/buttons & +# needs to create a socket in cwd +(cd ${buttonsdir} && ./buttons &) + exec node ${topdir}/index.js From 8f70c85fde4c9fcece424447862862f6d69af93c Mon Sep 17 00:00:00 2001 From: Dave Carlson Date: Sat, 18 Aug 2018 16:52:33 -0700 Subject: [PATCH 3/3] fix 22/27 mistake --- lib/pi-buttons/setup.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/pi-buttons/setup.sh b/lib/pi-buttons/setup.sh index f376d3e..96ede12 100755 --- a/lib/pi-buttons/setup.sh +++ b/lib/pi-buttons/setup.sh @@ -14,7 +14,7 @@ for gpionum in 17 22 27; do fi done -for gpionum in 17 22; do +for gpionum in 17 27; do if [ "$(/bin/cat /sys/class/gpio/gpio${gpionum}/direction)" != "in" ]; then echo "setting GPIO ${gpionum} direction to inwards" echo in > /sys/class/gpio/gpio${gpionum}/direction @@ -30,11 +30,11 @@ for gpionum in 17 22; do done -if [ "$(/bin/cat /sys/class/gpio/gpio27/direction)" != "out" ]; then - echo "setting GPIO 27 direction to outwards" - echo out > /sys/class/gpio/gpio27/direction +if [ "$(/bin/cat /sys/class/gpio/gpio22/direction)" != "out" ]; then + echo "setting GPIO 22 direction to outwards" + echo out > /sys/class/gpio/gpio22/direction else - echo "GPIO 27 already direction outwards" + echo "GPIO 22 already direction outwards" fi if [ ! -x $(dirname $0)/buttons ]; then