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 Stefano Pepe pubblicato il 24 Febbraio 2003 nel canale ModdingLe 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.
-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.







OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Osmo Nano: la piccola fotocamera alla prova sul campo
Kia PV5: è record di autonomia! Il furgoncino elettrico supera i 690 km con una ricarica
L'aeroplano supersonico ''silenzioso'' NASA X-59 QueSST ha effettuato il suo primo volo!
Nissan: le batterie allo stato solido costeranno il 30% in meno e saranno migliori di quelle al litio
NVIDIA cambia strategia? La GPU Feynman potrebbe essere prodotta con processo TSMC A16
Signal respinge le accuse dopo il down AWS: 'l'infrastruttura è nelle mani di pochi, non abbiamo alternative'
Uragano Melissa in arrivo: la tempesta di categoria 5 più potente del 2025 sfida la Giamaica
8K o 4K? Ecco perché il tuo occhio non vede la differenza
Mercato auto europeo in crescita nei primi nove mesi: ibride in testa, elettriche in aumento ma Tesla arretra. BYD vola
Addio SSD e RAM, benvenuti funghi: dagli Stati Uniti arrivano le memorie bioelettroniche
TCL Q6C: tecnologia e design per un TV completo e accessibile
Corsair MP700 PRO XT al debutto: un SSD PCIe Gen5 alla ricerca del primato
Apple Watch Ultra 2 in titanio con GPS + Cellular al prezzo record di 599€ su Amazon: il miglior sportwatch per ogni avventura
Nuova protezione per Windows 11: scansioni della memoria dopo crash e schermate blu
GoPro LIT HERO a 249€ su Amazon: la nuova action cam ultraleggera con luce integrata e video 4K60








