On Thu, 20 Mar 2025, Diego Zuccato wrote:
Il 19/03/2025 14:22, Leonardo Boselli ha scritto:
Premessa: i dati vengono o inviati da processi esterni creando dei file che contengono all'interno il dato (o da solo o in un record CSV) oppure aggiornati periodicamante da un processo cron
Hint: *standardizza* in un unico formato i dati da leggere. Cioè fai in modo che da ogni sorgente arrivino nello stesso formato. Crei dei filtri per ogni sorgente che convertono da quel che genera quella sorgente al formato che intendi usare dopo. E già hai ridotto notevolmente la complessità.

sono tutti csv, con uno o più valori perché ogni lettura può fornire più valri, di fenomeni differenti.

 1. se ho uno script bash posso fare i test su variabili locali o varibili di ambiente. Come faccio a fare il test sul contenuto di un file, senza dovere fare prima un varlocale=`cat file` ?
Che test devi fare sul contenuto? Per capire se è stato aggiornato può essere sufficiente analizzare i metadati, ma se devi proprio guardare il contenuto lo devi leggere e parsare.

il problema è che in genere ogni script sarebbe un:

while [ NOW -lt $c ]
 do
  sleep 20
  aggiorna-status-variabili
  if [VAR-A -lt $a && VAR-B -lt $b ]
  then
    esegui-quello-che-deve-fare
    break
  else
    sleep 20
    aggiorna-status-variabili
  fi
 done

ora NOW è il tempo ... come la infilo nel loop (ossia il loop attende che si verifichino de condizioni su VAR-A e VAR-B, ma solo fino a un certo orario.

  1bis. nel test di bash come metto una formula ?
Dipende dalla formula.

vedi sopra ...

 2. la presentazione viene fatta da uno script php, in certi casi però è necessario che questo script "solleciti" i dati aggiornati. il modo più semplice è fare una chiamata http al server remoto, che però fornsce un record json .
E già nobbuono. Se servono i dati aggiornati, non deve (generalmente) essere la presentazione a richiederli ma il filtro di ingresso.

la presentazione sa QUANDO gli servono i dati aggiornati, e quindi sollecita l'aggiornamento solo quando gli servono veramente. misurare certi valori "disturba" il fenomeno misurato, per cui se li chiedi troppo spesso, il valore ha un errore dovuto al disturbo della misura.

Quindi devi usare
$ob['gate:1']['action']
$ob['gate:1']['res'][0]
$ob['gate:1']['res'][1]

FUNZIONA !!!!!!

a questo punto mi sa che lo script lo faccio direttamante in php

Grazie per l'aiuto !

--
Leonardo Boselli
Firenze, Toscana, Europa

Rispondere a