65 lines
2.0 KiB
Bash
65 lines
2.0 KiB
Bash
#
|
|
# Driver rainsensorqty - driver for measure the rain volume
|
|
# Author: androtto
|
|
# file "config.include.sh"
|
|
# specific driver config file
|
|
# Version: 0.2.0
|
|
# Data: 11/Aug/2019
|
|
|
|
export TMPDIR=/tmp
|
|
|
|
RAINSENSOR_DEBOUNCE=0.3 # 0.3 seconds for manage debounce of reed contact
|
|
|
|
RAINSENSORQTY_verbose="yes" # yes/no
|
|
|
|
RAINSENSORQTY_LASTRAIN="$STATUS_DIR/rainsensorqty_lastrain"
|
|
RAINSENSORQTY_HISTORY="$STATUS_DIR/rainsensorqty_history"
|
|
|
|
RAINSENSORQTY_MONITORLOG="$DIR_SCRIPT/log/rainsensorqty_monitor.log"
|
|
|
|
RAINSENSORQTY_MONPID="$TMPDIR/rainsensorqty_monitor.pid"
|
|
RAINSENSORQTY_STATE="$TMPDIR/rainsensorqty_state"
|
|
RAINSENSORQTY_STATE_HIST="$TMPDIR/rainsensorqty_state.history"
|
|
|
|
RAINSENSORQTY_DIR="$DIR_SCRIPT/drv/rainsensorqty"
|
|
|
|
monitor_sh="$RAINSENSORQTY_DIR/drv_rainsensorqty_monitor.sh"
|
|
|
|
# internal gpio resistor, 3 values: pull-up, pull-down, none
|
|
# pull-up/down if rain gauge is connected directly to raspberry
|
|
# none if connected through an optocoupler circuit
|
|
GPIO_RESISTOR="pull-up" #pull-up|pull-down|none
|
|
|
|
#rising means waiting for 1 status (from 0)
|
|
#falling means waiting for 0 status (from 1)
|
|
#RAINSENSORQTY_PULSE=rising # pull-down circuit (rest status is 0)
|
|
#RAINSENSORQTY_PULSE=falling # pull-up circuit (rest status is 1)
|
|
(( RAIN_GPIO_STATE == 1 )) && RAINSENSORQTY_PULSE=rising # pull-down circuit (rest status is 0)
|
|
(( RAIN_GPIO_STATE == 0 )) && RAINSENSORQTY_PULSE=falling # pull-up circuit (rest status is 1)
|
|
|
|
|
|
config_check()
|
|
{
|
|
var2check="RAINSENSOR_DEBOUNCE RAINSENSORQTY_verbose RAINSENSORQTY_LASTRAIN RAINSENSORQTY_HISTORY RAINSENSORQTY_MONITORLOG RAINSENSORQTY_MONPID RAINSENSORQTY_DIR monitor_sh"
|
|
for var in $var2check
|
|
do
|
|
#${!a}
|
|
if [[ -z ${!var} ]] ; then
|
|
echo "ERROR: \$$var not set"
|
|
exit 1
|
|
fi
|
|
done
|
|
if [[ -z $RAINSENSORQTY_PULSE ]] ; then
|
|
echo "ERROR: RAIN_GPIO_STATE not set in piGarden.conf"
|
|
exit 1
|
|
fi
|
|
return 0
|
|
case $GPIO_RESISTOR in
|
|
pull-up|pull-down|none) return 0 ;;
|
|
*) echo "ERROR: GPIO_RESISTOR not set correctly - values are \"pull-up|pull-down|none\" "
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|