From efbd3c687de59bcd31c0f628e69c0662dbef9b09 Mon Sep 17 00:00:00 2001 From: lejubila Date: Wed, 30 Aug 2017 23:13:34 +0200 Subject: [PATCH 1/5] driver spb16ch: modificato mappatura rele e script python da lanciare per l'apertura/chiusura dei rele --- drv/spb16ch/config.include.sh | 32 ++++++++++++++++---------------- drv/spb16ch/rele.include.sh | 8 ++++---- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/drv/spb16ch/config.include.sh b/drv/spb16ch/config.include.sh index 022427e..3eaad28 100644 --- a/drv/spb16ch/config.include.sh +++ b/drv/spb16ch/config.include.sh @@ -2,19 +2,19 @@ # Mapping rele spb16ch: l'indice indica il relè, ogni elemento deve essere lungo quattro caratteri, # i primi due indicano il mux channel, mentre gli ultimi due caratteri indicano il numero del rele sul canale # -SPB16CH_RELE_MAP[1]=" 0 1" -SPB16CH_RELE_MAP[2]=" 0 2" -SPB16CH_RELE_MAP[3]=" 0 3" -SPB16CH_RELE_MAP[4]=" 0 4" -SPB16CH_RELE_MAP[5]=" 0 5" -SPB16CH_RELE_MAP[6]=" 0 6" -SPB16CH_RELE_MAP[7]=" 0 7" -SPB16CH_RELE_MAP[8]=" 0 8" -SPB16CH_RELE_MAP[9]=" 1 1" -SPB16CH_RELE_MAP[10]=" 1 2" -SPB16CH_RELE_MAP[11]=" 1 3" -SPB16CH_RELE_MAP[12]=" 1 4" -SPB16CH_RELE_MAP[13]=" 1 5" -SPB16CH_RELE_MAP[14]=" 1 6" -SPB16CH_RELE_MAP[15]=" 1 7" -SPB16CH_RELE_MAP[16]=" 1 8" +SPB16CH_RELE_MAP[1]=" 0 1" +SPB16CH_RELE_MAP[2]=" 0 2" +SPB16CH_RELE_MAP[3]=" 0 4" +SPB16CH_RELE_MAP[4]=" 0 8" +SPB16CH_RELE_MAP[5]=" 0 16" +SPB16CH_RELE_MAP[6]=" 0 32" +SPB16CH_RELE_MAP[7]=" 0 64" +SPB16CH_RELE_MAP[8]=" 0128" +SPB16CH_RELE_MAP[9]=" 1 1" +SPB16CH_RELE_MAP[10]=" 1 2" +SPB16CH_RELE_MAP[11]=" 1 4" +SPB16CH_RELE_MAP[12]=" 1 8" +SPB16CH_RELE_MAP[13]=" 1 16" +SPB16CH_RELE_MAP[14]=" 1 32" +SPB16CH_RELE_MAP[15]=" 1 64" +SPB16CH_RELE_MAP[16]=" 1128" diff --git a/drv/spb16ch/rele.include.sh b/drv/spb16ch/rele.include.sh index b6bfa90..cdcefd9 100644 --- a/drv/spb16ch/rele.include.sh +++ b/drv/spb16ch/rele.include.sh @@ -23,12 +23,12 @@ function drv_spb16ch_rele_open { message_write "warning" "$message" fi local channel_num=${rele_data:0:2} - local rele_num=${rele_data:2:2} + local rele_num=${rele_data:2:3} echo channel_num=$channel_num echo rele_num=$rele_num $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py 72 $channel_num - $DIR_SCRIPT/drv/spb16ch/scripts/gpo_active.py 72 $rele_num 0 + $DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py 72 $rele_num 0 } @@ -47,12 +47,12 @@ function drv_spb16ch_rele_close { message_write "warning" "$message" fi local channel_num=${rele_data:0:2} - local rele_num=${rele_data:2:2} + local rele_num=${rele_data:2:3} echo channel_num=$channel_num echo rele_num=$rele_num $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py 72 $channel_num - $DIR_SCRIPT/drv/spb16ch/scripts/gpo_active.py 72 $rele_num 1 + $DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py 72 $rele_num 1 } From c370890f0b1aa93a71c2f91d83e01478974ffd27 Mon Sep 17 00:00:00 2001 From: lejubila Date: Thu, 31 Aug 2017 09:54:13 +0200 Subject: [PATCH 2/5] variato commento con specifiche mappatura rele --- drv/spb16ch/config.include.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drv/spb16ch/config.include.sh b/drv/spb16ch/config.include.sh index 3eaad28..590f0be 100644 --- a/drv/spb16ch/config.include.sh +++ b/drv/spb16ch/config.include.sh @@ -1,6 +1,6 @@ # # Mapping rele spb16ch: l'indice indica il relè, ogni elemento deve essere lungo quattro caratteri, -# i primi due indicano il mux channel, mentre gli ultimi due caratteri indicano il numero del rele sul canale +# i primi due indicano il mux channel, mentre gli ultimi tre caratteri indicano il numero del rele sul canale # SPB16CH_RELE_MAP[1]=" 0 1" SPB16CH_RELE_MAP[2]=" 0 2" From 9fc7c971f13a470e67f2fa1d08f941cb68d0e96c Mon Sep 17 00:00:00 2001 From: lejubila Date: Fri, 1 Sep 2017 01:06:53 +0200 Subject: [PATCH 3/5] Corretto problema su gestione cron con cron type simili. Per esempio se veniva inserita una schedulazione per la zona Zona_10 questa veniva riconosciuta anche per la zona con nome Zona_1 --- CHANGELOG.md | 1 + include/cron.include.sh | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 495a0ba..bc354a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.4.5 - xx/08/2017 - Implemented driver subsystem for interfacing with other board - Added driver spb16ch for interfacing with "Smart Power Board 16 channel with RTC" +- Fix problem with cron management on similar type cron ## 0.4.4 - 17/06/2017 Remove lock/unlock from init function for resove bug diff --git a/include/cron.include.sh b/include/cron.include.sh index 56a1cad..fd1e1ce 100644 --- a/include/cron.include.sh +++ b/include/cron.include.sh @@ -15,8 +15,8 @@ function cron_del { fi $CRONTAB -l > "$TMP_CRON_FILE" - local START=`$GREP -n "# START cron $CRON_TYPE $CRON_ARG" "$TMP_CRON_FILE"| $CUT -d : -f 1` - local END=`$GREP -n "# END cron $CRON_TYPE $CRON_ARG" "$TMP_CRON_FILE"| $CUT -d : -f 1` + local START=`$GREP -n "^# START cron $CRON_TYPE $CRON_ARG$" "$TMP_CRON_FILE"| $CUT -d : -f 1` + local END=`$GREP -n "^# END cron $CRON_TYPE $CRON_ARG$" "$TMP_CRON_FILE"| $CUT -d : -f 1` local re='^[0-9]+$' if ! [[ "$START" =~ $re ]] && ! [[ "$END" =~ $re ]] ; then @@ -79,8 +79,8 @@ function cron_add { fi $CRONTAB -l > "$TMP_CRON_FILE" - local START=`$GREP -n "# START cron $CRON_TYPE $CRON_ARG" "$TMP_CRON_FILE"| $CUT -d : -f 1` - local END=`$GREP -n "# END cron $CRON_TYPE $CRON_ARG" "$TMP_CRON_FILE"| $CUT -d : -f 1` + local START=`$GREP -n "^# START cron $CRON_TYPE $CRON_ARG$" "$TMP_CRON_FILE"| $CUT -d : -f 1` + local END=`$GREP -n "^# END cron $CRON_TYPE $CRON_ARG$" "$TMP_CRON_FILE"| $CUT -d : -f 1` local re='^[0-9]+$' local NEW_CRON=0 @@ -228,8 +228,8 @@ function cron_get { fi $CRONTAB -l > "$TMP_CRON_FILE" - local START=`$GREP -n "# START cron $CRON_TYPE $CRON_ARG" "$TMP_CRON_FILE"| $CUT -d : -f 1` - local END=`$GREP -n "# END cron $CRON_TYPE $CRON_ARG" "$TMP_CRON_FILE"| $CUT -d : -f 1` + local START=`$GREP -n "^# START cron $CRON_TYPE $CRON_ARG$" "$TMP_CRON_FILE"| $CUT -d : -f 1` + local END=`$GREP -n "^# END cron $CRON_TYPE $CRON_ARG$" "$TMP_CRON_FILE"| $CUT -d : -f 1` local re='^[0-9]+$' local PREVIUS_CONTENT="" From 4e15c37fe2d8be0ac8a6a8b3400f1760b0f1151d Mon Sep 17 00:00:00 2001 From: lejubila Date: Tue, 5 Sep 2017 00:24:33 +0200 Subject: [PATCH 4/5] =?UTF-8?q?driver=20spb16ch:=20eseguito=20mappatura=20?= =?UTF-8?q?dei=20128=20rel=C3=A8=20distribuito=20sulle=208=20possibili=20s?= =?UTF-8?q?chede=20installabili?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- drv/spb16ch/README.md | 3 + drv/spb16ch/config.include.sh | 173 ++++++++++++++++++++++++++++++---- drv/spb16ch/init.include.sh | 52 +++++++++- drv/spb16ch/rele.include.sh | 20 ++-- piGarden.sh | 10 +- 5 files changed, 222 insertions(+), 36 deletions(-) diff --git a/drv/spb16ch/README.md b/drv/spb16ch/README.md index bfd701d..7346b60 100644 --- a/drv/spb16ch/README.md +++ b/drv/spb16ch/README.md @@ -5,3 +5,6 @@ Questo driver richiede l'interprete python e la libreria python-smbus. Inoltre l sudo apt-get install python python-smbus sudo usermod -a -G i2c pi +Oltre a quanto sopra indicato, il raspberry deve avere caricato i moduli di gestione del bus i2c: +sudo raspi-config +Interfacing Options / I2C / Yes diff --git a/drv/spb16ch/config.include.sh b/drv/spb16ch/config.include.sh index 590f0be..4ca6d67 100644 --- a/drv/spb16ch/config.include.sh +++ b/drv/spb16ch/config.include.sh @@ -1,20 +1,157 @@ # -# Mapping rele spb16ch: l'indice indica il relè, ogni elemento deve essere lungo quattro caratteri, -# i primi due indicano il mux channel, mentre gli ultimi tre caratteri indicano il numero del rele sul canale +# Mapping rele spb16ch: l'indice indica il relè, ogni elemento deve essere lungo 8 caratteri, +# 1-2: i primi due indicano l'indirizzo della scheda +# 3-3: separatore +# 4-4: il quarto carattere indica il mux channel +# 5-5: separatore +# 6-8: gli ultimi tre caratteri indicano il numero del rele sul canale # -SPB16CH_RELE_MAP[1]=" 0 1" -SPB16CH_RELE_MAP[2]=" 0 2" -SPB16CH_RELE_MAP[3]=" 0 4" -SPB16CH_RELE_MAP[4]=" 0 8" -SPB16CH_RELE_MAP[5]=" 0 16" -SPB16CH_RELE_MAP[6]=" 0 32" -SPB16CH_RELE_MAP[7]=" 0 64" -SPB16CH_RELE_MAP[8]=" 0128" -SPB16CH_RELE_MAP[9]=" 1 1" -SPB16CH_RELE_MAP[10]=" 1 2" -SPB16CH_RELE_MAP[11]=" 1 4" -SPB16CH_RELE_MAP[12]=" 1 8" -SPB16CH_RELE_MAP[13]=" 1 16" -SPB16CH_RELE_MAP[14]=" 1 32" -SPB16CH_RELE_MAP[15]=" 1 64" -SPB16CH_RELE_MAP[16]=" 1128" + +# Scheda 1 - address 70h - GS1:chiuso, GS2:chiuso, GS3:chiuso +SPB16CH_RELE_MAP[1]="70|0| 1" +SPB16CH_RELE_MAP[2]="70|0| 2" +SPB16CH_RELE_MAP[3]="70|0| 4" +SPB16CH_RELE_MAP[4]="70|0| 8" +SPB16CH_RELE_MAP[5]="70|0| 16" +SPB16CH_RELE_MAP[6]="70|0| 32" +SPB16CH_RELE_MAP[7]="70|0| 64" +SPB16CH_RELE_MAP[8]="70|0|128" +SPB16CH_RELE_MAP[9]="70|1| 1" +SPB16CH_RELE_MAP[10]="70|1| 2" +SPB16CH_RELE_MAP[11]="70|1| 4" +SPB16CH_RELE_MAP[12]="70|1| 8" +SPB16CH_RELE_MAP[13]="70|1| 16" +SPB16CH_RELE_MAP[14]="70|1| 32" +SPB16CH_RELE_MAP[15]="70|1| 64" +SPB16CH_RELE_MAP[16]="70|1|128" + +# Scheda 2 - address 71h - GS1:aperto, GS2:chiuso, GS3:chiuso +SPB16CH_RELE_MAP[17]="71|0| 1" +SPB16CH_RELE_MAP[18]="71|0| 2" +SPB16CH_RELE_MAP[19]="71|0| 4" +SPB16CH_RELE_MAP[20]="71|0| 8" +SPB16CH_RELE_MAP[21]="71|0| 16" +SPB16CH_RELE_MAP[22]="71|0| 32" +SPB16CH_RELE_MAP[23]="71|0| 64" +SPB16CH_RELE_MAP[24]="71|0|128" +SPB16CH_RELE_MAP[25]="71|1| 1" +SPB16CH_RELE_MAP[26]="71|1| 2" +SPB16CH_RELE_MAP[27]="71|1| 4" +SPB16CH_RELE_MAP[28]="71|1| 8" +SPB16CH_RELE_MAP[29]="71|1| 16" +SPB16CH_RELE_MAP[30]="71|1| 32" +SPB16CH_RELE_MAP[31]="71|1| 64" +SPB16CH_RELE_MAP[32]="71|1|128" + +# Scheda 3 - address 72h - GS1:chiuso, GS2:aperto, GS3:chiuso +SPB16CH_RELE_MAP[33]="72|0| 1" +SPB16CH_RELE_MAP[34]="72|0| 2" +SPB16CH_RELE_MAP[35]="72|0| 4" +SPB16CH_RELE_MAP[36]="72|0| 8" +SPB16CH_RELE_MAP[37]="72|0| 16" +SPB16CH_RELE_MAP[38]="72|0| 32" +SPB16CH_RELE_MAP[39]="72|0| 64" +SPB16CH_RELE_MAP[40]="72|0|128" +SPB16CH_RELE_MAP[41]="72|1| 1" +SPB16CH_RELE_MAP[42]="72|1| 2" +SPB16CH_RELE_MAP[43]="72|1| 4" +SPB16CH_RELE_MAP[44]="72|1| 8" +SPB16CH_RELE_MAP[45]="72|1| 16" +SPB16CH_RELE_MAP[46]="72|1| 32" +SPB16CH_RELE_MAP[47]="72|1| 64" +SPB16CH_RELE_MAP[48]="72|1|128" + +# Scheda 4 - address 73h - GS1:aperto, GS2:aperto, GS3:chiuso +SPB16CH_RELE_MAP[49]="73|0| 1" +SPB16CH_RELE_MAP[50]="73|0| 2" +SPB16CH_RELE_MAP[51]="73|0| 4" +SPB16CH_RELE_MAP[52]="73|0| 8" +SPB16CH_RELE_MAP[53]="73|0| 16" +SPB16CH_RELE_MAP[54]="73|0| 32" +SPB16CH_RELE_MAP[55]="73|0| 64" +SPB16CH_RELE_MAP[56]="73|0|128" +SPB16CH_RELE_MAP[57]="73|1| 1" +SPB16CH_RELE_MAP[58]="73|1| 2" +SPB16CH_RELE_MAP[59]="73|1| 4" +SPB16CH_RELE_MAP[60]="73|1| 8" +SPB16CH_RELE_MAP[61]="73|1| 16" +SPB16CH_RELE_MAP[62]="73|1| 32" +SPB16CH_RELE_MAP[63]="73|1| 64" +SPB16CH_RELE_MAP[64]="73|1|128" + +# Scheda 5 - address 74h - GS1:chiuso, GS2:chiuso, GS3:aperto +SPB16CH_RELE_MAP[65]="74|0| 1" +SPB16CH_RELE_MAP[66]="74|0| 2" +SPB16CH_RELE_MAP[67]="74|0| 4" +SPB16CH_RELE_MAP[68]="74|0| 8" +SPB16CH_RELE_MAP[69]="74|0| 16" +SPB16CH_RELE_MAP[70]="74|0| 32" +SPB16CH_RELE_MAP[71]="74|0| 64" +SPB16CH_RELE_MAP[72]="74|0|128" +SPB16CH_RELE_MAP[73]="74|1| 1" +SPB16CH_RELE_MAP[74]="74|1| 2" +SPB16CH_RELE_MAP[75]="74|1| 4" +SPB16CH_RELE_MAP[76]="74|1| 8" +SPB16CH_RELE_MAP[77]="74|1| 16" +SPB16CH_RELE_MAP[78]="74|1| 32" +SPB16CH_RELE_MAP[79]="74|1| 64" +SPB16CH_RELE_MAP[80]="74|1|128" + +# Scheda 6 - address 75h - GS1:aperto, GS2:chiuso, GS3:aperto +SPB16CH_RELE_MAP[81]="75|0| 1" +SPB16CH_RELE_MAP[82]="75|0| 2" +SPB16CH_RELE_MAP[83]="75|0| 4" +SPB16CH_RELE_MAP[84]="75|0| 8" +SPB16CH_RELE_MAP[85]="75|0| 16" +SPB16CH_RELE_MAP[86]="75|0| 32" +SPB16CH_RELE_MAP[87]="75|0| 64" +SPB16CH_RELE_MAP[88]="75|0|128" +SPB16CH_RELE_MAP[89]="75|1| 1" +SPB16CH_RELE_MAP[90]="75|1| 2" +SPB16CH_RELE_MAP[91]="75|1| 4" +SPB16CH_RELE_MAP[92]="75|1| 8" +SPB16CH_RELE_MAP[93]="75|1| 16" +SPB16CH_RELE_MAP[94]="75|1| 32" +SPB16CH_RELE_MAP[95]="75|1| 64" +SPB16CH_RELE_MAP[96]="75|1|128" + +# Scheda 7 - address 76h - GS1:chiuso, GS2:aperto, GS3:aperto +SPB16CH_RELE_MAP[97]="76|0| 1" +SPB16CH_RELE_MAP[98]="76|0| 2" +SPB16CH_RELE_MAP[99]="76|0| 4" +SPB16CH_RELE_MAP[100]="76|0| 8" +SPB16CH_RELE_MAP[101]="76|0| 16" +SPB16CH_RELE_MAP[102]="76|0| 32" +SPB16CH_RELE_MAP[103]="76|0| 64" +SPB16CH_RELE_MAP[104]="76|0|128" +SPB16CH_RELE_MAP[105]="76|1| 1" +SPB16CH_RELE_MAP[106]="76|1| 2" +SPB16CH_RELE_MAP[107]="76|1| 4" +SPB16CH_RELE_MAP[108]="76|1| 8" +SPB16CH_RELE_MAP[109]="76|1| 16" +SPB16CH_RELE_MAP[110]="76|1| 32" +SPB16CH_RELE_MAP[111]="76|1| 64" +SPB16CH_RELE_MAP[112]="76|1|128" + +# Scheda 8 - address 77h - GS1:aperto, GS2:aperto, GS3:aperto +SPB16CH_RELE_MAP[113]="77|0| 1" +SPB16CH_RELE_MAP[114]="77|0| 2" +SPB16CH_RELE_MAP[115]="77|0| 4" +SPB16CH_RELE_MAP[116]="77|0| 8" +SPB16CH_RELE_MAP[117]="77|0| 16" +SPB16CH_RELE_MAP[118]="77|0| 32" +SPB16CH_RELE_MAP[119]="77|0| 64" +SPB16CH_RELE_MAP[120]="77|0|128" +SPB16CH_RELE_MAP[121]="77|1| 1" +SPB16CH_RELE_MAP[122]="77|1| 2" +SPB16CH_RELE_MAP[123]="77|1| 4" +SPB16CH_RELE_MAP[124]="77|1| 8" +SPB16CH_RELE_MAP[125]="77|1| 16" +SPB16CH_RELE_MAP[126]="77|1| 32" +SPB16CH_RELE_MAP[127]="77|1| 64" +SPB16CH_RELE_MAP[128]="77|1|128" + + + + + diff --git a/drv/spb16ch/init.include.sh b/drv/spb16ch/init.include.sh index 5d5036e..42b3dd3 100644 --- a/drv/spb16ch/init.include.sh +++ b/drv/spb16ch/init.include.sh @@ -3,11 +3,53 @@ # function drv_spb16ch_init { - $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py 72 0 - $DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py 25 255 0 - $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py 72 1 - $DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py 25 255 0 - $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py 72 0 + 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 } diff --git a/drv/spb16ch/rele.include.sh b/drv/spb16ch/rele.include.sh index cdcefd9..7f5415b 100644 --- a/drv/spb16ch/rele.include.sh +++ b/drv/spb16ch/rele.include.sh @@ -22,13 +22,15 @@ function drv_spb16ch_rele_open { log_write "$message" message_write "warning" "$message" fi - local channel_num=${rele_data:0:2} - local rele_num=${rele_data:2:3} + local address_num=${rele_data:0:2} + local channel_num=${rele_data:3:1} + local rele_num=${rele_data:5:3} + echo address_num=$address_num echo channel_num=$channel_num echo rele_num=$rele_num - $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py 72 $channel_num - $DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py 72 $rele_num 0 + $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py $address_num $channel_num + $DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py $address_num $rele_num 0 } @@ -46,13 +48,15 @@ function drv_spb16ch_rele_close { log_write "$message" message_write "warning" "$message" fi - local channel_num=${rele_data:0:2} - local rele_num=${rele_data:2:3} + local address_num=${rele_data:0:2} + local channel_num=${rele_data:3:1} + local rele_num=${rele_data:5:3} + echo address_num=$address_num echo channel_num=$channel_num echo rele_num=$rele_num - $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py 72 $channel_num - $DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py 72 $rele_num 1 + $DIR_SCRIPT/drv/spb16ch/scripts/mux_channel.py $address_num $channel_num + $DIR_SCRIPT/drv/spb16ch/scripts/gpo_init.py $address_num $rele_num 1 } diff --git a/piGarden.sh b/piGarden.sh index 9f1a0d7..c80545e 100755 --- a/piGarden.sh +++ b/piGarden.sh @@ -10,11 +10,9 @@ # function initialize { - #lock - log_write "Run initialize" - # Iniziazlizza i driver gpio + # Inizializza i driver gpio for drv in "${list_drv[@]}" do echo "$(date) drv_${drv}_init" @@ -62,8 +60,6 @@ function initialize { log_write "End initialize" - #unlock - } # @@ -588,6 +584,7 @@ function show_usage { echo -e "\t$NAME_SCRIPT check_rain_sensor check rain from hardware sensor" echo -e "\t$NAME_SCRIPT close_all_for_rain close all solenoid if it's raining" echo -e "\t$NAME_SCRIPT close_all [force] close all solenoid" + echo -e "\n" echo -e "\t$NAME_SCRIPT start_socket_server [force] start socket server, with 'force' parameter force close socket server if already open" echo -e "\t$NAME_SCRIPT stop_socket_server stop socket server" echo -e "\n" @@ -750,6 +747,9 @@ LAST_INFO_FILE="$STATUS_DIR/last_info" LAST_WARNING_FILE="$STATUS_DIR/last_worning" LAST_SUCCESS_FILE="$STATUS_DIR/last_success" +if [ -z $LOG_OUTPUT_DRV_FILE ]; then + $LOG_OUTPUT_DRV_FILE="/dev/null" +fi # Elimina il file di lock se più vecchio di 11 secondi if [ -f "$LOCK_FILE" ]; then From 75dd4f5c48a261a4f92edec566c13501fd13ef78 Mon Sep 17 00:00:00 2001 From: lejubila Date: Sat, 9 Sep 2017 00:37:11 +0200 Subject: [PATCH 5/5] ottimizzato loop di inizializzazione sul driver spb16ch --- drv/spb16ch/init.include.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drv/spb16ch/init.include.sh b/drv/spb16ch/init.include.sh index 42b3dd3..34feed5 100644 --- a/drv/spb16ch/init.include.sh +++ b/drv/spb16ch/init.include.sh @@ -16,8 +16,8 @@ function drv_spb16ch_init { 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 + local address_num=${rele_data:0:2} if [[ ! " ${address_used[@]} " =~ " ${address_num} " ]]; then address_used+=("$address_num") fi @@ -25,14 +25,14 @@ function drv_spb16ch_init { fi done - # Cerca gli indirizzi delle schede spb16ch utilizzate per i rele utilizzate per la gestione alimentazione + # Cerca gli indirizzi delle schede spb16ch utilizzate per i rele che gestiscono alimentazione delle elettrovalvole bistabili 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 + local address_num=${rele_data:0:2} if [[ ! " ${address_used[@]} " =~ " ${address_num} " ]]; then address_used+=("$address_num") fi @@ -43,7 +43,7 @@ function drv_spb16ch_init { # Esegue l'inizializzazione delle schede spb16ch trovate for address_num in ${address_used[@]} do - echo "****** address_num = $address_num *******" + 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