pistampa/pistampa.sh

66 lines
1.5 KiB
Bash

#!/bin/bash
# Configurazione
# Cartella dei file
cartella=/home/pi/pistampa/idee
# PIN per la lettura del pulsante
pulsante=18
# PIN per l'alimentazione del pulsante
alimentazione=23
# Numero di cicli per spegnimento
spegnimento=100
# Da qui in poi non toccare se non si sa cosa si fa
# funzioni
stampa() {
# Questa funzione usa l'opzione -R di sort per randomizzare l'output.
#lpr $(ls ${cartella} | sort -R | tail -n1)
# Debug
cat $(ls ${cartella} | sort -R | tail -n1)
}
# Inizializzazione
echo "${pulsante}" > /sys/class/gpio/export
echo "${alimentazione}" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio${pulsante}/direction
echo "out" > /sys/class/gpio/gpio${alimentazione}/direction
echo "1" > /sys/class/gpio/gpio${alimentazione}/value
contatore=0
while true; do
if [[ $(cat /sys/class/gpio/gpio${pulsante}/value) -eq 1 ]]; then
# Il bottone è premuto.
let "contatore += 1"
else
# Il bottone non è premuto.
if [[ ${contatore} -gt 0 ]]; then
# Se il contatore è maggiore di zero, il pulsante è stato premuto
# per un certo periodo di tempo ma ora non lo è più
if [[ ${contatore} -gt ${spegnimento} ]]; then
# Se il contatore ha superato il tempo di spegnimento, esco dal
# loop.
break
else
# Se non ha superato il tempo di spegnimento, stampo quindi
# annullo il contatore
stampa
contatore=0
fi
fi
fi
done
# Faccio pulizia sui PIN
echo "${pulsante}" > /sys/class/gpio/unexport
echo "${alimentazione}" > /sys/class/gpio/unexport
# Infine spengo il raspberry
poweroff