56 lines
1.9 KiB
Bash
56 lines
1.9 KiB
Bash
#
|
|
# Questa funzione viene inviocata dalla funzione "init" di piGarden se sono presenti elettrovalvole o sensori che utilizzano questo driver
|
|
#
|
|
function drv_spb16ch_init {
|
|
|
|
declare -a address_used
|
|
address_used=()
|
|
|
|
local address=""
|
|
|
|
# Cerca gli indirizzi delle schede spb16ch utilizzate per i rele utilizzati per le zone
|
|
for i in $(seq $EV_TOTAL)
|
|
do
|
|
local a=EV"$i"_GPIO
|
|
local gpio="${!a}"
|
|
if [[ "$gpio" == drv:spb16ch:* ]]; then
|
|
local rele_id=`echo $gpio | $CUT -d':' -f3,3`
|
|
local rele_data=${SPB16CH_RELE_MAP[$rele_id]}
|
|
local address_num=${rele_data:0:2}
|
|
if [[ ! -z $rele_data ]]; then
|
|
if [[ ! " ${address_used[@]} " =~ " ${address_num} " ]]; then
|
|
address_used+=("$address_num")
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Cerca gli indirizzi delle schede spb16ch utilizzate per i rele utilizzate per la gestione alimentazione
|
|
for gpio in "$SUPPLY_GPIO_1" "$SUPPLY_GPIO_2"
|
|
do
|
|
if [[ "$gpio" == drv:spb16ch:* ]]; then
|
|
local rele_id=`echo $gpio | $CUT -d':' -f3,3`
|
|
local rele_data=${SPB16CH_RELE_MAP[$rele_id]}
|
|
local address_num=${rele_data:0:2}
|
|
if [[ ! -z $rele_data ]]; then
|
|
if [[ ! " ${address_used[@]} " =~ " ${address_num} " ]]; then
|
|
address_used+=("$address_num")
|
|
fi
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Esegue l'inizializzazione delle schede spb16ch trovate
|
|
for address_num in ${address_used[@]}
|
|
do
|
|
echo "****** address_num = $address_num *******"
|
|
$DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py $address_num 0
|
|
$DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py 25 255 0
|
|
$DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py $address_num 1
|
|
$DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py 25 255 0
|
|
$DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py $address_num 0
|
|
done
|
|
|
|
}
|
|
|