driver spb16ch: corretto inizializzazione e pilotaggio schede, aumentato prestazioni di esecuzione script staticizzando in fase di init gli identificativi delle board utilizzate in modo che che non vengano ricalcolati ad ogni esecuzione successiva dello script
This commit is contained in:
@@ -5,8 +5,10 @@ function drv_spb16ch_init {
|
||||
|
||||
declare -a address_used
|
||||
address_used=()
|
||||
SPB16CH_USED_ID=()
|
||||
|
||||
local address=""
|
||||
local board_id=""
|
||||
|
||||
# Cerca gli indirizzi delle schede spb16ch utilizzate per i rele utilizzati per le zone
|
||||
for i in $(seq $EV_TOTAL)
|
||||
@@ -18,8 +20,10 @@ function drv_spb16ch_init {
|
||||
local rele_data=${SPB16CH_RELE_MAP[$rele_id]}
|
||||
if [[ ! -z $rele_data ]]; then
|
||||
local address_num=${rele_data:0:2}
|
||||
local board_id=${rele_data:9:1}
|
||||
if [[ ! " ${address_used[@]} " =~ " ${address_num} " ]]; then
|
||||
address_used+=("$address_num")
|
||||
SPB16CH_USED_ID+=("$board_id")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -33,24 +37,17 @@ function drv_spb16ch_init {
|
||||
local rele_data=${SPB16CH_RELE_MAP[$rele_id]}
|
||||
if [[ ! -z $rele_data ]]; then
|
||||
local address_num=${rele_data:0:2}
|
||||
local board_id=${rele_data:9:1}
|
||||
if [[ ! " ${address_used[@]} " =~ " ${address_num} " ]]; then
|
||||
address_used+=("$address_num")
|
||||
SPB16CH_USED_ID+=("$board_id")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Esegue l'inizializzazione delle schede spb16ch trovate
|
||||
local address_num
|
||||
for address_num in ${address_used[@]}
|
||||
do
|
||||
echo "****** Inizializzazione 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
|
||||
# Memorizza gli id delle schede usate
|
||||
drv_spb16ch_boards_id_store
|
||||
|
||||
# Esegue l'inizializzazione dei gpio che gestiscono l'abilitazine/disabilitazione delle schede
|
||||
local board_id
|
||||
@@ -62,6 +59,24 @@ function drv_spb16ch_init {
|
||||
echo "******** Number used board: $board_id - inizializzazione gpio $gpio_n"
|
||||
$GPIO -g mode $gpio_n out
|
||||
done
|
||||
drv_spb16ch_board_disable_all
|
||||
|
||||
# Esegue l'inizializzazione delle schede spb16ch trovate
|
||||
local address_num=""
|
||||
local board_num=""
|
||||
for i in ${!address_used[@]}
|
||||
do
|
||||
address_num=${address_used[$i]}
|
||||
board_num=${SPB16CH_USED_ID[$i]}
|
||||
drv_spb16ch_board_enable $board_num
|
||||
echo "****** Inizializzazione address_num = $address_num - board_num = $board_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
|
||||
drv_spb16ch_board_disable $board_id
|
||||
done
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user