From b5a20dca8028e9f515f76e25ae9beed16b1059ab Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 23 Apr 2025 16:39:00 +0200 Subject: [PATCH] Aggiunta scripts x update salt a 2.6.1 --- IOB-PI/README.md | 2 +- IOB-PI/README.pdf | Bin 44263 -> 44325 bytes IOB-PI/readParallela.py | 2 +- IOB-PI/readParallela_12.py | 2 +- IOB-PI/readParallela_8.py | 2 +- IOB-PI/update_2.6.sh | 287 +++++++++++++++++++++++++++++++++++++ 6 files changed, 291 insertions(+), 4 deletions(-) create mode 100644 IOB-PI/update_2.6.sh diff --git a/IOB-PI/README.md b/IOB-PI/README.md index fe80267..d8bf2af 100644 --- a/IOB-PI/README.md +++ b/IOB-PI/README.md @@ -16,7 +16,7 @@ Valutato python-rq x gestione code con redis tramite esecuzione workers python g https://python-rq.org/ https://python-rq.org/docs/workers/ -Testato ma al momento non è rispondente ai requisiti del programma per cui si rischia un blocco inf ase di invio se server non OK, per ora implementata copia "manuale" della coda verso redis per salvaguardare dati accumulati (vers 2.6.0) +Testato ma al momento non è rispondente ai requisiti del programma per cui si rischia un blocco inf ase di invio se server non OK, per ora implementata copia "manuale" della coda verso redis per salvaguardare dati accumulati (vers 2.6.x) ## MD5 zip## diff --git a/IOB-PI/README.pdf b/IOB-PI/README.pdf index 5947235f4422fecfc8b25884081c14f4df7b355c..1e9593a41cb4f730b62c5cd683bd4698e6da4617 100644 GIT binary patch delta 31091 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 YbFi~<^MbM}#Nl{Yc;P82CBJ|BKTE3%k^lez delta 31009 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 diff --git a/IOB-PI/readParallela.py b/IOB-PI/readParallela.py index 9eb3568..5ad263e 100644 --- a/IOB-PI/readParallela.py +++ b/IOB-PI/readParallela.py @@ -44,7 +44,7 @@ MAXRETRY = 10 # numero campioni filtraggio segnale ballerino MAX_COUNTER_BLINK = 10 -PROGRAM_NAME ="ReadPar IOB-pi v.2.6.0" +PROGRAM_NAME ="ReadPar IOB-pi v.2.6.1" # DA FILE CONF idxMacchina = "1001" diff --git a/IOB-PI/readParallela_12.py b/IOB-PI/readParallela_12.py index 9eb3568..5ad263e 100644 --- a/IOB-PI/readParallela_12.py +++ b/IOB-PI/readParallela_12.py @@ -44,7 +44,7 @@ MAXRETRY = 10 # numero campioni filtraggio segnale ballerino MAX_COUNTER_BLINK = 10 -PROGRAM_NAME ="ReadPar IOB-pi v.2.6.0" +PROGRAM_NAME ="ReadPar IOB-pi v.2.6.1" # DA FILE CONF idxMacchina = "1001" diff --git a/IOB-PI/readParallela_8.py b/IOB-PI/readParallela_8.py index edbdfdc..ab67aee 100644 --- a/IOB-PI/readParallela_8.py +++ b/IOB-PI/readParallela_8.py @@ -44,7 +44,7 @@ MAXRETRY = 10 # numero campioni filtraggio segnale ballerino MAX_COUNTER_BLINK = 10 -PROGRAM_NAME ="ReadPar IOB-pi v.2.6.0" +PROGRAM_NAME ="ReadPar IOB-pi v.2.6.1" # DA FILE CONF idxMacchina = "1001" diff --git a/IOB-PI/update_2.6.sh b/IOB-PI/update_2.6.sh new file mode 100644 index 0000000..2c23b08 --- /dev/null +++ b/IOB-PI/update_2.6.sh @@ -0,0 +1,287 @@ +#!/bin/bash + +# script per update IOB-PI (file readParallela) secondo la tipologia del raspberry tra 8 e 12 ingressi + +revNum=`awk '/^Revision/ {sub("^1000", "", $3); print $3}' /proc/cpuinfo` +anno=2000 +model='na' +ram=0 + +# decodifica da questa tabella: https://elinux.org/RPi_HardwareHistory e https://ozzmaker.com/check-raspberry-software-hardware-version-command-line +case $revNum in + + 0002 | 0003 | 0004 | 0005 | 0006) + anno='2012' + model='B' + ram=256 + ;; + + 0007 | 0008 | 0009) + anno='2013' + model='A' + ram=256 + ;; + + 000d | 000e | 000f) + anno='2012' + model='B' + ram=512 + ;; + + 0010) + anno='2014' + model='B+' + ram=512 + ;; + + 0011) + anno='2014' + model='CM1' + ram=512 + ;; + + 0012) + anno='2014' + model='A+' + ram=256 + ;; + + 0013) + anno='2015' + model='B+' + ram=512 + ;; + + 0014) + anno='2014' + model='CM1' + ram=512 + ;; + + 0015) + anno='2014' + model='A+' + ram=512 + ;; + + a01040 | a01041 | a21042) + anno='2015' + model='2 Model B' + ram=1024 + ;; + + a22042) + anno='2016' + model='2 Model B' + ram=1024 + ;; + + 900021) + anno='2016' + model='A+' + ram=512 + ;; + + 900032) + anno='2016' + model='B+' + ram=512 + ;; + + 900092) + anno='2015' + model='Zero' + ram=512 + ;; + + 900093 | 920093) + anno='2016' + model='Zero' + ram=512 + ;; + + 9000c1) + anno='2017' + model='Zero W' + ram=512 + ;; + + a02082 | a22082 | a22082 | a32082) + anno='2016' + model='3 Model B' + ram=1024 + ;; + + a020a0) + anno='2017' + model='CM3' + ram=1024 + ;; + + a020d3) + anno='2018' + model='3 Model B+' + ram=1024 + ;; + + 9020e0) + anno='2018' + model='3 Model A+' + ram=512 + ;; + + a02100) + anno='2019' + model='CM3' + ram=1024 + ;; + + a03111) + anno='2019' + model='4 Model B' + ram=1024 + ;; + + b03111 | b03112) + anno='2019' + model='4 Model B' + ram=2048 + ;; + + b03114) + anno='2020' + model='4 Model B' + ram=2048 + ;; + + b03115) + anno='2022' + model='4 Model B' + ram=2048 + ;; + + c03111 | c03112) + anno='2019' + model='4 Model B' + ram=4096 + ;; + + c03114) + anno='2020' + model='4 Model B' + ram=4096 + ;; + + c03115) + anno='2022' + model='4 Model B' + ram=2048 + ;; + + d03114) + anno='2020' + model='4 Model B' + ram=8192 + ;; + + d03115) + anno='2022' + model='4 Model B' + ram=8192 + ;; + + + 902120) + anno='2021' + model='Zero 2 W' + ram=512 + ;; + + *) + anno='2000' + model='Unknown' + ram=128 + ;; +esac + +echo "RPI $anno | model $model | RAM $ram" +echo "Revisione: $revNum" + +# default a 8 IN... +selIn=8 +# verifico anno/ram, se almeno 2014 e 1gb --> 12 bit... +if [ $anno -gt 2015 ] && [ $ram -gt 512 ]; then + selIn=12 +fi + +echo "Scelta versione $selIn ingressi" + + +# fermo esecuzione... +#/etc/init.d/MapoIOB stop +systemctl stop MapoIOB +echo "Arrestato servizio..." + +#fix permessi +chown pi:pi . -R + +# mv file readParallela.py corrente... +mv readParallela.py readParallela_$(date -d "today" +"%Y%m%d").py + +# secondo tipo copio il file corretto +if [ $selIn -eq 8 ]; then + cp -f readParallela_8.py readParallela.py +else + cp -f readParallela_12.py readParallela.py +fi + +# fix permessi +chown pi:pi . -R +chmod +x readP* + +# conf redis + +# aggiunta passwd accesso se mancante +file="/etc/redis/redis.conf" +line="24068Seriate" + +# Check if the line is missing +if grep -q "$line" "$file"; then + echo "requirepass ok!" +else + # execute the sed command + echo "rquirepass missing! adding" + sed -i '/#requirepass*/a\requirepass 24068Seriate' $file +fi + + +# aggiunta criterio save da num changes +line="save 3600 1 600 10" +if grep -q "$line" "$file"; then + echo "save rdb OK" +else + # execute the sed command + echo "save rdb not found: adding!" + sed -i '/# save 3600*/a\save 3600 1 600 10 300 100 60 10000' $file +fi + +# riportare bind a solo localhost +sed -i '/#bind 127.0.0.1*/c\bind 127.0.0.1 -::1' $file +# rimozione bind a rete globale x test +sed -i '/bind 0.0.0.0/c\#bind 0.0.0.0' $file + +#riavvio redis +systemctl restart redis + +# riavvio esecuzione... +systemctl restart MapoIOB +echo "Modifiche effettuate..." + +echo "Attenzione: verificare effettiva partenza servizio, per farlo digitare il comando" +echo "/etc/init.d/MapoIOB restart" +echo "--------------------------------" +echo "In particolare il file IOB.cfg deve contenere NMAXSEND = 5 nella sezione [time]" +echo "--------------------------------" +echo "Inoltre verificare presenza sezioni [blink] [invert] [filter]" +echo "------------------" +