Guida completa a jaLCDs

Guida completa a jaLCDs

Carlo "Dhs" Demichelis ha scritto per noi una dettagliatissma guida per lo jaLCDs, il piu′ completo, e complicato, programma di gestione di un display LCD basato su interfaccia Hitachi HD44780.

di pubblicato il nel canale Modding
 

Le bargraph, parte 2

Visti gli esempi fatti fin′ora, vediamo di creare un nuovo schermo. Ipotizziamo di volerne uno che mostri, per 4 hard disks:

-Numericamente, lo spazio libero.
-Con una barra, lo spazio occupato rispetto a quello libero.

Il codice sarà il seguente:
[nb: quello che segue e′ il codice di uno screen completo. Per aggiungerlo alla vostra configurazione, e′ sufficiente copiarlo/incollarlo alla fine del vostro file di config]

[HD]
showtime 5000
growspeed 100
updateinterval 1000
scrollspeed 150
modein shutteron
modeout
jump 0
line 1 C: $format:$drivecfree§:00000§ $setfixed9§Mb
$bar:1:12:9:0:$drivecused§:$drivectotal§§
line 2 D: $format:$drivedfree§:00000§ $setfixed9§Mb
$bar:2:12:9:0:$drivedused§:$drivedtotal§§
line 3 E: $format:$driveefree§:00000§ $setfixed9§Mb
$bar:3:12:9:0:$driveeused§:$driveetotal§§
line 4 H: $format:$drivehfree§:00000§ $setfixed9§Mb
$bar:4:12:9:0:$drivehused§:$drivehtotal§§


Il risultato sarà una visualizzazione di questo tipo:



Andiamo ora a qualcosa di piu′ complesso.
Come immaginate, si potrebbero utilizzare le barre grafiche per visualizzare la velocità di trasmissione e ricezione della rete.
Le variabili ci sono, le barre le sapete fare, quindi...
C′e′ pero′ una cosa sgradevoluccia a vedersi: le barre, essendo il fetching dei dati molto veloce, e se la velocità non e′ costante, hanno la tendenza a muoversi su e giu′ in maniera isterica. Sarebbero molto piu′ gradevoli delle barre con un minimo di latenza "analogica".
Presto fatto.

[Netstats]
showtime 5000
growspeed 100
updateinterval 1000
scrollspeed 150
modein delayedforkon
modeout wipeoffrightleft
jump 0
line 1 UP $setfixed$math:9- $len:$format:$ulc0§:0.0§§§§$format:$ulc0§:0.0§ K $setfixed$math:18-$len:$ultraffic0§§§§$ultraffic0§ MB
line 2$setvar:ulc3:$ulc2§§$setvar:ulc2:$ulc1§§$setvar:ulc1:$ulspeed0§§$setvar:ulc0:$math:($ulc3§+$ulc2§+$ulc1§)/3§§$bar:2:1:20:0:$ulc0§:16§
line 3 DN $setfixed$math:9-$len:$format:$dlc0§:0.0§§§§$format:$dlc0§:0.0§ K $setfixed$math:19-$len::$dltraffic0§§§§$dltraffic0§ MB
line 4 $setvar:dlc3:$dlc2§§$setvar:dlc2:$dlc1§§$setvar:dlc1:$dlspeed0§§$setvar:dlc0:$math:($dlc3§+$dlc2§+$dlc1§)/3§§$bar:4:1:20:0:$dlc0§:80§


per ottenere un risultato di questo tipo:



In questo schermo vediamo un sacco di cose nuove:

il comando $math§ che consente di fare operazioni matematiche tra operatori e/o variabili.

il formato e′:

"$math:ESPRESS§"

Ad esempio, volendo sommare, per qualsiasi strana ragione, la cifra 10 alla velocità di download e stamparne il risultato sarà sufficiente fare un:

"$math:$dlspeed0§+10§ "

Vediamo anche l′istruzione $setvar§

Come immaginabile, serve ad attribuire un valore ad una variabile (sia numerico che di testo).

Ad esempio:

"$setvar:a0:10§ "

Attribuisce alla variabile $a0§ il valore di 10.

oppure:

"$setvar:a0:$math:$dlspeed0§+10§§"

Attribuisce alla variabile $a0§ il valore della velocità di download + 10
Abbiamo inoltre $len§. Questo comando restituisce il numero di caratteri che costituiscono cio′ che vi viene racchiuso. Ad esempio:

"$len:giuseppe§"

restituirà il valore 8.

Se vi studiate lo schermo sopra, vedrete che basilarmente viene:

-Attribuito un formato preciso ai valori numerici.
-Preso per tre volte consecutive il valore di upload (e la stessa cosa viene fatta alla riga 4 per quello di download), viene fatta una media che viene assegnata ad una variabile, e quest′ultima viene utilizzata sia per il valore numerico che per quello mostrato graficamente con la barra. Questo serve a creare quella "latenza" che rende meno isterica la parte grafica.
-Notate inoltre come il comando $setfixed§ viene utilizzato, congiuntamente alle funzioni matematiche e al comando $len§, per posizionare correttamente i valori numerici affinche′ questi rimangano ordinati.
Due cose che mi sono dimenticato di dire sullo schermo "netstats":

-Il codice e′ preso da una configurazione presente sul sito di jaLCDs stesso, che ho modificato in vari modi.
-Le barre grafiche sono calibrate (nei valori massimi) per una connessione adsl da 640K. Quindi, in caso, i valori da modificare sono il "16" nella seconda riga per cio′ che riguarda la banda in uscita e "80" nella quarta riga per la banda in entrata.
 
^