9.7. Timegraphs¶
9.7.1. Espressioni per le serie calcolate¶
All’interno dei timegraph le serie “calcolate” sono delle serie calcolate on-demand utilizzando i valori delle altre serie definite nello stesso timegraph.
Ipotizziamo di avere un datagroup cosi’ definito
datagroup prova
datasource ds1
exit
datasource ds2
exit
timegraph grafico
serie serie1
var-value ds1
legend "Prima serie"
exit
serie serie2
var-value ds2
legend "Seconda serie"
exit
serie calcolata
computed-value serie1 + serie2
legend "Serie calcolata"
exit
exit
exit
In questo datagroup e’ definito un timegraph chiamato “grafico” che grafica 3 serie: serie1, serie2 e calcolata.
I valori delle prime due (serie1 e serie2) vengono estratti da dati reali, piu’ precisamente dai due datasource ds1 e ds2 definiti all’interno del datagroup.
I valori della serie “calcolata” vengono calcolati prendendo sommando i valori corrispondenti delle altre due serie gia’ definite.
Esempio:
t0 t1 t2 t3 t4
serie1 1 2 3 4 5
serie2 25 -3 45 34 23
calcolata 26 -1 48 38 25
9.7.1.1. Operatori ammessi¶
L’espressione deve essere un’espressione matematica valida. Esempio:
1 + 2 / 3 * abs(-3)
Gli operatiri matematici disponibili sono:
Operatore Descrizione a + b a - b a * b a / b a % b a ** b
All’interno dell’espressione possono essere usate le seguenti funzioni:
funzione Descrizione abs(x) divmod(x) int(x) pow(x,e) float(x) long(x) max(x) min(x) log(n,e) sqrt(x) sin(x) cos(x) radians(x)
Funzioni speciali:
funzione Descrizione iftrue(c,t,e) If “c” is “true” returns “t” else returns “e” ifnull(x,d)
9.7.1.2. Variabili disponibili¶
All’interno delle espressioni possono essere sempre usate come variabili i nomi delle serie che definiscono il parametro “var-value”.
Sono disponibili i seguenti altri simboli/costanti:
funzione Descrizione NONE o None Costante nulla __ts_start__ timestamp di inizio serie (x0) __ts_end__ timestamp di fine serie (xn) __step__ delta temporale tra i valori della serie __t__ timestamp corrente all’interno della serie __i__ indice dell’elemento calcolato nella serie
Esempio:
datagroup test
...
datasource ds1 <--+
exit | referenzia "ds1"
... |
timegraph grafico1 |
serie v | <--+
var-value ds1 <--+ | utilizza "v"
exit |
serie x |
computed-value v * __i__ * 3 <--+
exit
exit
exit
9.7.1.3. Valori nulli nelle serie¶
Se all’interno di una espressione viene usata una serie che contiene i valori nulli, il singolo valori della serie viene considerato equivalente alla costante “NONE”.
Il valore “NONE” e’ un valore speciale e quando viene usato all’interno di una espressione aritmetica provoca come risultato sempre “NONE”.
L’unico modo per evitare questo comportamento e’ usare la funzione isnull().
Esempio:
datagroup prova
...
datasource ds1
...
exit
...
timegraph grafico1
serie x
var-value ds1
exit
serie y1
computed-value "x * 3"
exit
serie y2
computed-value "ifnull(x, 0) * 3"
exit
exit
...
exit
9.7.1.4. Ordine di valutazione delle serie¶
Quando vengono calcolate le serie l’ordine di valutazione e’ il seguente: - estrazione dei valori per tutte le serie “reali” (con parametro ‘var-value’) - per ogni serie con parametro “computed-value” calcolo valori in base alle serie “reali”
Questo significa che non e’ possibile utilizzare all’interno di una espressione di una serie calcolate i valori di un’altra serie calcolata.