![]() |
||
| « Torna all'articolo - Stampa | ||
|
||
|
Pagina 1 - Introduzione Questa guida vuole essere un serio approfondimento di jaLCDs, per una serie di motivi:-Uno sguardo superficiale non rende giustizia ad un programma di questa complessità. -La documentazione, quasi tutta in Tetesco, non e′ alla portata di tutti (neanche mia [non so una parola di tedesco], peroì sono riuscito lo stesso a venirne a capo). -Con jaLCDs ed un po′ di buona volontà si puo′ veramente fare di tutto, cose che altri programmi di questo tipo si scordano. Prima di proseguire con il nostro tutorial, un consiglio, installate la RC2 di jaLCDs 3.10, aprendo questo link. Fatto questo, copiate il contenuto dell′archivio dentro la dir ove e′ installato il vostro jaLCDs 3.02. All′interno dell′archivio ve n′e′ un secondo che contiene il programma di configurazione: aprite anche questo e, come prima, copiatene il contenuto nella dir di installazione di jaLCDs. Cosa abbiamo ottenuto? Oltre al configuratore in italiano, questa versione implementa una serie di funzioni nuove, due delle quali, come vedremo, saranno di fondamentale importanza. Vediamo innanzitutto quali sono le possibilità del software (rimarco con un * quelle "uniche"): -Client indipendente dal programma di configurazione (*): Questo, se da una parte e′ uno svantaggio (non c′e′ la possibilità di vedere "immediatamente" [solo dopo un reload della configurazione] cosa si e′ ottenuto), dall′altra offre un programma che gira in background piu′ leggero, e la possibilità di editare con un editor di testo esterno le proprie configurazioni [cosa che, all′utente avanzato, diventerà quasi indispensabile]. -Possibilità di mostrare sul display scritte, dati relativi al sistema, a MBM5, ai dischi rigidi, email, winamp, reti distribuite, Seti@home, orologioni e via di seguito. -Effetti di transizione in e out (*) -Possibilità di definire e mostrare caratteri grafici personalizati (*): non si parla solo di caratteri, ma anche di animazioni (fino a 8). -Completo linguaggio interno che permette l′elaborazione dei dati in svariati modi per una visualizzazione personalizzata / condizionata e via discorrendo (*). -Possibilità di gestire plugins che possono interagire a vari livelli con il client. -Possibilità di ricevere tramite rete dati relativi ad una macchina remota (*). -Possibilità di istant messaging sul display (*). -E, soprattutto, la possibilità di intergrare (e elaborare, mostrare) dati provenienti dalla rete (***). Pagina 2 - Il programma di configurazione Vediamo rapidamente le cose poco utili:-Setup: una volta settato il setup, non si toccherà piu′ (solite cose: porta, grandezza LCD e via di seguito). -Growing Chars: fino a 8 caratteri "crescenti" per schermo, un effetto totalmente inutile imho. -Transizioni: abbellimento grafico, giochicchiateci, nulla di particolarmente difficile... Adesso cominciamo a vedere le cose interessanti: Lo "Screen Settings" consente di definire uno schermo. Uno "schermo" e′ virtualmente cio′ che il display mostrerà. Questo e′ solo in parte vero, in quanto possono anche esistere schermi vuoti che conterranno solo definizioni di variabili, testi e/o salti condizionali, etc. (vedremo piu′ avanti). E′ quindi possibile creare un nuovo schermo (Add), cancellarlo (Delete), cambiare l′ordine degli schermi (Change screen order), fare "skippare" lo schermo (utile solo in fase di test), e scriverne il contenuto, nelle apposite 4 righe di testo (presumo che le ultime due siano inutili per schermi lcd a 2 righe...). Sulla destra troviamo altri 4 parametri che saranno unici per ogni schermo: -Time to show: tempo per il quale lo schermo viene mostrato (in millisecondi). -Update interval: il ritardo in millisecondi tra un update dello schermo e l′altro (utile soprattutto per le barre grafiche, winamp e per l′aggiornamento delle variabili). -Scrolling speed: ... autoesplicatorio... -Effect speed: velocità degli effetti di transizione (o dei growing characters). Andando a sinistra c′e′ un menu′ ad albero che mostra le variabili disponibili per essere mostrate. Troviamo un sacco di cose utili, ed altre meno... Andando sotto System, troveremo, ad esempio, la percentuale di occupazione della CPU. Clickando quindi sulla voce "CPU-Usage", sotto al menu′ verrà mostrata la sintassi della variabile da inserire nelle righe dello schermo ($cpuload§) ed un tastino "->" che permette di inserire automaticamente la variabile stessa nella riga selezionata. Abbiamo già scoperto una cosa: la sintassi delle variabili (e degli operatori, che vedremo dopo) si apre sempre con il carattere "$" e si chiude con il carattere "§". Parlando di operatori, troviamo, sempre sotto Sytem (devo ancora capire che ci fanno li′...) quattro utili operatori per il posizionamento delle variabili (o dei testi scritti direttamente). "$setfixed§" Che serve a definire un punto "fisso" ove mostrare un testo in una riga. Scrivendo ad esempio: "$setfixed9§Testo" La parola "Testo" verrà mostrata a partire dalla nona colonna della riga nella quale il comando compare. possiamo provare anche un: "$setfixed9§$cpuload§% ...per avere, a partire dalla nona colonna, il valore percentuale di occupazione della CPU. Nota che il caratter "%" e′ interpretato come testo (non e′ un comando o parte di un comando). il comando $center§ chiaramente centrerà il testo seguente nel display (sempre a patto che il testo abbia un numero di caratteri minore di quelli che il vostro LCD puo′ mostrare orizzontalmente). $fix§ serve a "bloccare" un testo sullo schermo. Se ci saranno scroll, orizontali o verticali, di altro testo, questo non verrà cancellato o spostato, ma rimarrà fisso ove e′ stato piazzato. "$fix:testo§" Bloccherà quindi la parola "testo" finche′ questo schermo sarà mostato. $fixend§ funziona allo stesso modo, ma il testo bloccato sarà mostrato in fondo alla linea. L′utilità del centraggio di un testo e′ ovvia, quella di fix e fixend dubbia (a dir poco), ma quella di setfixed e′, come vedremo, quasi fondamentale. Scorrendo in avanti troviamo le variabili e funzioni relative a Winamp. C′e′ da notare che jaLCDs e′ l′unico ad implementare internamente un analizzatore di spettro ed un VU meter grafici (solo un determinato plugin di winamp lo fa... e non e′ gratis [e fa solo quello...]). I full screen clocks sono un′altra bella aggiunta che solo questo programma offre (3 tipi)... Pagina 3 - Le bargraph Adesso cominciamo a vedere le cose veramente interessantiBargraph: questo comando consente di visualizzare graficamente, tramite una barra liberamente dimensionabile (in orizzontale) i propri valori numerici. Il comando consta di vari parametri. (PS: leggete e ricordate per i futuro: quando parlo di parametri ricordate che questi potranno *sempre* essere sia valori fissi che variabili...). la sintassi e′ quindi: "$bar:a:b:c:d:e:f§" dove: a = riga di partenza b = colonna di partenza c = lunghezza della barra (in caratteri) d = valore minimo e = valore da mostrare f = valore massimo Vediamo un esempio pratico (in tutti gli esempi da qui in avanti suppongo che si disponga di un LCD da 20x4). Supponiamo di voler mostrare, sulla stessa riga, il valore percentuale di occupazione della CPU, e, a fianco di questo, una barra grafica che mostri lo stesso dato graficamente. "CPU: $cpuload§$bar:1:10:11:0:$cpuload§:100§" Cosa succede? Scriviamo (in testo) la parola CPU: Inseriamo la variabile che ci mostrerà, numericamente, la percentuale di occupazione. Definiamo una barra che parta nella riga 1, dalla colonna 10, per una lungezza massima di 11 caratteri, con un valore minumo di 0, il valore di cpuload, che ha un valore massimo di 100. Carino, eh? ma! Cosa e′ quella roba li?! Notiamo una cosa. Il valore numerico della cpu puo′ essere lungo da 1 a 3 caratteri (es: 1, 22, 100). Quando viene mostrato sullo schermo, il valore viene sempre allineato a sinistra, cosa non propriamente bella da vedersi... che facciamo? Andiamo a vedere il comando $format§ Questo comando consente appunto di "formattare" un valore numerico in modo tale che questo venga presentato secondo i nostri voleri La sintassi e′: "$format:VAL:FORMAT§" dove VAL e′ il valore da formattare, FORMAT e′ il formato. il sistema per specificare la formattazione e′ lo stesso del Visual Basic o di exel, quindi potete fare riferimento a quelli. Per ottenere, ad esempio, il valore *decimale* di occupazione della cpu possiamo semplicemente scrivere: "$format:$cpuload§:0.0§ nel nostro caso, facciamo in modo che il valore percentuale venga *sempre* mostrato di 3 cifre. Qundi, la riga di prima varierà cosi′: "CPU: $format:$cpuload§:000§$bar:1:10:11:0:$cpuload§:100§" Seguendo questo esempio, possiamo, ad esempio, mostrare dei dati relativi all′occupazione della ram nella seconda riga: "RAM: $ramfree§ $bar:2:10:11:0:$ramfree§:$ramtotal§§" Mostriamo quindi il valore numerico della ram libera, dopodiche′ definiamo una barra, che parte nella riga 2, colonna 10, lunghezza 11, con valore minumo 0, con il contenuto della ram libera ($ramfree§) e definendo come valore massimo quello reale, che e′ contenuto nella variabile $ramtotal§. Notare che alla fine della linea ci sono 2 simboli "§". Questo perche′ quello piu′ esterno chiude l′istruizione "bar", quello piu′ a sinistra fa parte della variabile $ramtotal§. Completiamo il nostro primo screen inserendo nella terza riga i seguenti comandi: "$date§ $time§ continuando a scorrere la lista delle funzioni scopriamo l′Advanced Bargraph. Che e′?! E′ una barra del tutto simile alla precente, con la differenza che ci consente di inseire, in maniera grafica, all′interno della grafica, un valore (di massimo 5 caratteri). Pensate a quello che penso io? Andate alla prima riga e modificatela cosi′: "CPU $advbar:1:5:16:0:$cpuload§:100:$cpuload§%:1§" Scriviamo la parola CPU seguita da uno spazio. Definiamo una advbar che inizi alla riga 1, colonna 5, lunga 16 caratteri, con valore minimo 0, che mostri il valore di cpuload, che ha un valore massimo di 100, scriviamo il valore numerico di cpuload piu′ il segno percentuale a partire dalla posizione 1 (si conta dall′inizio della barra). Abbiamo cosi′ ottenuto una barra piu′ lunga senza pero′ eliminare il valore numerico di del dato visualizzato. Mica male, eh? Adesso vi faccio fare un bell′esperimento! Clickate Add e create un nuovo schermo chiamato "clock". Sulla destra dategli un time to show di almeno 10000. Selezionate una riga (una qualsiasi), e scriveteci dentro "$clock2§ " Salvate la vostra configurazione, caricatela con jalcds e quando viene mostrato l′orologione......... 00.00 ?!?!?!!? Ma come?!?!!? Ok, Windows: Start, pannello di controllo, Opzioni internazionali e della lingua, personalizza... settate come segue: Sotto il tab "ora" : Formato ora: HH:mm:ss Separatore ora: : (il simbolo ":") Sotto il tab "Data": Formato data breve: gg.MM.aaaa Separatore data: . (il simbolo ".") Formato data estesa: gggg, g. MMMM aaaa Applica, ok, guardate il vostro LCD. Che bello, ora avete il vostro orologione da 2/3/4/5 milioni, a seconda di quanto avete pagato il PC e quanto ci avete messo dentro tra schede, schifezze varie e modding. :) Pagina 4 - 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. Pagina 5 - Il Winamp Passiamo ora a vedere lo schermo che ho creato per il Winamp:
[WinAmp] showtime 1000 growspeed 100 updateinterval 500 scrollspeed 150 modein modeout jump 0 line 1 $showif:$math:$len:$winampartist§§+$len:$winamptitle§§+3§:>>:20: *** §$winampartist§$showif:$len:$winampartist§§:>>:0: - §$winamptitle§ line 2 $winampposition§ $ascii:126§ $winamplength§ $winampbitrate§ Kbs line 3 $winampspectrum§ line 4 che produce questo risultato: ![]() Ci sono varie cose da notare, per la precisione: Non e′ possibile mettere un vu-meter ed uno spectrum analyzer sullo stesso schermo. Lo stesso dicasi se si volesse mettere, che so, lo spectrum analyzer ed una bar. Nella prima riga troviamo un comando utilissimo, $showif§. La sintassi e′ la seguente: "$showif:VAL1:op:VAL2:testo§" in pratica l′istruzione confronta il primo valore con il secondo. Nel caso la condizione venga soddisfatta, viene mostrato il testo (testo, variabile, quello che si vuole...). Per la lista degli operatori dispobili, date un′occhiata al configuratore di jaLCDs. Nel caso specifico a cosa lo showif presente nella prima riga? Semplice! Lo scopo principale della riga e′ di mostrare il nome dell′artista ed il titolo del brano in esecuzione. Se la lunghezza di Autore + Brano supera i 20 caratteri (la larghezza dell′LCD), il testo scrollerà ciclicamente, andando ad "attaccare" la fine del nome del brano con l′inizio del nome dell′autore alla prima ripetizione. Lo $showif§ serve a rendere la cosa piu′ leggibile. Quindi, se Autore + Titolo e′ minore di 20, questi vengono mostrati e non succede nulla di particolare (non scrollano). Nel caso invece che la lunghezza dei due testi (e di altri 3 caratteri, cioe′, " - ", il separatore) superi i 20 caratteri, verrà inserito *anche* il separatore " *** ", che renderà chiaramente leggibile il tutto. Nella seconda riga vediamo un′altra cosa nuova, $ascii§. Come si puo′ immaginare, il comando serve a mostrare uno specifico carattere richiamandolo per il suo codice ascii. la sintassi e′: "$ascii:codice§, dove codice e′ un valore numerico da 0 a 255." Ora che abbiamo visto il primo comando condizionale ($showif§), passiamo ad esaminare gli altri a disposizione. I salti condizionali sono effettuati con il comando $if§, la cui sintassi e′: "$if:VAL1:op:VAL2:Target§" Cioe′: Se il confronto tra il valore1 ed il valore2 soddisfa la condizione, si eseguirà un salto allo schermo chiamato Target. Se si vuole un′applicazione pratica di questo comando, fate cosi′: Nella prima riga dello schermo immediatamente successivo a Netstats, andate ad inserire, come primo comando, cio′ che segue: "$if:$dlspeed0§:>>:20:Netstats§" A che serve? Se la velocità di download supera i 20 Kbps, allora si torna allo schermo di netstats. In pratica, per meglio monitorizzare i downloads, lo schermo rimarrà fisso a Netstats finche′ il download (che deve avere una velocità comunque superiore a 20kbps) non termina. Utile, vero? In realtà, gli usi che questo comado concede sono molto ampie, come vedremo in seguito. L′altro comando condizionale e′ legato al Blink del testo. Come avrete visto, sfogliando i vari comandi, e′ possibile visualizzare testo che lampeggia. In questo caso, lo si puo′ far lampeggiare solo in determinate condizioni. La sintassi e′ praticamente identica a quella gia vista precedentemente. Un piccolo esempio: "$blinkif:$mail1§:>>:0:You have $mail1§ emails§" Finche′ ci saranno 0 email il testo comparirà come: You have 0 emails Come le email arrivano, il testo lampeggerà. I salti condizionali possono essere, ad esempio, molto utili per segnalare condizioni anonime, come il sovrariscaldamento della CPU o la carenza di ram, facendo, magari, lampeggiare la retroilluminazione del display, o avviando programmi esterni. Pagina 6 - Le variabili esterne Tralascio la creazione dei caratteri grafici, molto semplice, soprattutto se si utilizza l′editor addizionale presente sul sito jaLCDs.Tralascio anche altre funzioni piu′ triviali (ci si puo′ arrivare da soli) e mi avvio invece da esaminare una delle cose che rendono jaLCDs veramente grande : Le variabili esterne. Tradotto: la possibilità di importare dall′esterno, altre variabili, da mostrare in jalcds. Questo puo′ essere fatto in vari modi: -Tramite un plugin: e′ presente la documentazione e sono presenti già plugins per winamp (gia lo sappiamo), EDonkey, Nero, etc. Il plugin altro non fa che prelevare/elaborare/creare dei dati e spedire delle righe di variabili a jaLCDs, tramite alcune porte tcp/ip. -Un elaboratore esterno puo′ inviare delle righe di variabili all′IP ove jaLCDs gira, in UDP su una porta specifica (pensate solo alle possibilità di monitoraggio di macchine esterne che questa cosa offre...). -jaLCDs puo′ prelevare direttamente, o dall′hard-disk locale o dalla rete, un file, opportunamente formattato, che contenga le variabili (e relativi valori). Quest′ultima possibilità e′ particolarmente interessante. Nei primi due casi (plugin e "macchina in ascolto") e′ sufficente inviare righe di variabili cosi′ formattate: "setvar variabile1 valore1; setvar variabile2 valore2;" (notate che non ci sono caratteri speciali, come $ o §) ...e cosi′ via. Si possono gestire fino a 200 variabili esterne. Per cio′ che riguarda i files di testo, la formattazione e′ la medesima, con la differenza che essi possono contenere piu′ righe. Per settare un file di variabili esterne e′ sufficente andare sul configuratore, clickare external variables, ed aggiungere l′indirizzo del file da raggiungere. Questo settaggio viene salvato *indipendentemente* dai files di configurazione. Il retrieving del/dei file/s avviene 1 volta ogni minuto. Cercando per la rete si scopre che il francese Yetka aveva messo a punto due script pronti per essere richiamati da jaLCDs: uno forniva le notizie meteo, l′altro i programmi in onda. Purtroppo, entrambi gli script non sono piu′ reperibili. Che fare? Be′, l′arte di arrangiarsi e′ sempre viva a casa mia. Forse qualcuno di voi sa cosa sono i feed RSS. Brevemente, sono dei files XML, messi a disposizione da vari siti, contenenti brevi "news", piu′ il link al sito di origine. Un secondo sito puo′ cosi′ mostrare i richiami alle news fornite dal primo sito. Una volta clickati, tali richiami porteranno al sito di origine, ove verrà mostrata la notizia intera. La settimana scorsa, quando ho cominciato ad interessarmi di LCD, un sito che seguo assiduamente, www.corriere.fantascienza.com, ha cominciato a mettere a disposizione due feeds RSS. Uno riguarda (chiaramente) le notizie del sito stesso, il secondo...... i programmi (film, telefilm, miniserie) che stanno per essere trasmessi sulle TV terresti e satellitari. tale feed e′ raggiungibile alla URL http://www.corriere.fantascienza.com/rss/tv.rss Perche′ non approfittarne?! Il problema e′, chiaramente, che il formato del feed non ha nulla a che vedere da quello che jaLCDs accetta. Ma, come ho detto, l′arte di arrangiarsi e′ viva da queste parti. La prima cosa che ho fatto e′ stato cercare un parser XML in php, liberamente distribuibile e modificabile, da adattare alle mie esigenze. Anche se di php non so niente, sono riuscito nel mio intento. Trovate lo script nell′archivio in attachment. Basta caricare entrambi i files in un server web che abbia a disposizione l′esecuzione di script in php, renderli eseguibili e creare una directory chiamata xmlcache, che deve essere scrivibile. (nota: lo script crea una cache per impattare in maniera piu′ lieve possibile sul sito che fornisce il feed). Fatto? Ok, ora provate a richiamare lo script con il vostro browser, puntanto alla url nel quale esso e′ raggiungibile. Ad esempio: http://www.vostrosito.it/feed.php questo restituirà quanto segue: Codice: setvar title0 20.55: Alias; setvar desc0 TELEFILM - THRILLER - con Jenniifer Garner, Ron Rifkin - episodio "La scatola" - Raidue, 20.55; setvar title1 22.45: The Hunger; setvar desc1 TELEFILM - HORROR - con Terence Stamp - Canal Jimmy, 22.45; Ho riportato solo 2 righe, perche′ verso sera, man mano che i programmi (di tema fantascentifico, horror, fantasy, thriller, etc.) si esauriscono, si esauriscono anche le righe. Al massimo comunque, lo script e′ configurato per riportare solo i prossimi 4 programmi. Come vedete, per ogni programmi, vengono definite 2 variabili: titleX, che contiene orario e titolo. descX, che contiene genere, sottogenere, descrizione (non sempre disponibile), canale, e di nuovo, l′orario. Le variabili sono solo due a causa della natura del feed, che suddivide in "notizia breve" (messo in titleX) ed estesa (messo in descX). Questo potrebbe già essere sufficente ai nostri scopi. Il problema e′ che le due varabili contengono troppi dati perche′ questi possano essere mostrati ordinatamente. Nel frattempo, caricate i files nel vostro server web, ed aggiungete la relativa URL alle vostre variabili esterne. Provvedete anche a fare l′update a jaLCDs 3.10RC2, senno′ non si fa nulla. Pagina 7 - Le variabili esterne, parte 2 Bene, e′ arrivata l′ora di
visualizzare i dati sul nostro LCD. Come ho detto, 2 variabili per i dati di una sola trasmissione sono un po′ scomode da gestire. Ci avvaremo quindi di altre funzioni (alcune esclusive della versione 3.10!)per estrarre solo i dati che ci interessano *dove* ci interessano. C′e′ da fare comunque una premessa: come ho detto, jaLCDs estrae (o meglio, richiede) i dati esterni ogni minuto. Di base, quindi, bisogna aspettare circa 1 minuto affinche′ le variabili vengano richieste, piu′ al tempo necessario perche′ il server remoto risponda con i dati che ci interessano. Prima di avere questi dati, e′ *pericoloso* manipolare le variabili interessate,
in quanto si andrà inevitabilmente incontro ad un crash di jaLCDs. Ci avvarremo
quindi del salto condizionato per skippare ogni elaborazione sulle variabili
esterne fin quando queste non saranno dispobili, mettendo come prima istruzione,
sulla prima linea un: Cioe′: Se la lunghezza della variabile $title0§ e′ minore di 1, salta al prossimo schermo. Ci avvarremo anche di: $part§ Sintassi: $part:a:b:testo§ Che estrae da un testo solo una porzione dello stesso. a = numero del carattere (da sinistra a destra) dal quale cominciare l′estrazione
Esempio: estrae "ava". $count§ sintassi: $count:testo:carattere§ restituisce il numero di volte che il carattere comapre nel testo. e poi: $split§ sintassi: $split:testo:delimitatore:numerooggetto§ che serve a selezionare in una stringa una porzione di testo. Ad esempio: $split:non mi sono - mai piaciuti - i cavalli - assetati:-:3§ restituisce: "i cavalli". Abbiamo infatti indicato che le porzioni di testo sono delimitate dal carattere "-", e che vogliamo la terza porzione. Fa la sua comparsa anche il comando $space§, che seve a "scivere" un certo numero di spazi: $space:numero§, ove "numero" indica il numero di spazi da scrivere. Voglio ottenere un risultato simile a questo: ![]() il codice che ho elaborato e′ il seguente:
Riga1: Riga2: Riga3: Riga4: Un lavoraccio, credetemi Come ho detto, lo script provvede a inviare (quando disponibili) i 4 prossimi programmi in onda, quindi avremo bisogno di 4 schermi che si facciano vedere solo se le relative variabili esistono. Ecco il codice completo dei 4 schermi: Bene. Se qualche anima buona che mastica php o altri linguaggi vuole mettersi a disposizione per elaborare altri dati provenienti dalla rete.... e′ il benvenuto. Ci sono ancora un sacco di funzioni che non abbiamo visto, come ad esempio l′instant messaging di jaLCDs, ma, visto che perlopiu′ si tratta di funzioni ben documentate (sul sito del programma) mi sembra inutile vederle qui. Buon divertimento. Pagina 8 - Conclusioni Sicuramente questa e′ la migliore guida che si possa trovare sullo jaLCDs, e fa vedere che, con un po′ di impegno, un lcd puo′ dare tante informazioni utili ed interessanti.Un sentito ringraziamento a Dhs che ha messo a disposizione di tutti le conoscenze di questo ottimo programma. Happy modding a tutti! Stefano. |
||
| Pagina stampata da Hardware Upgrade: http://www.hwupgrade.it Vietata la copia e la distribuzione (anche parziale) senza la previa autorizzazione di Hardware Upgrade S.r.l Per maggiori informazioni : http://www.hwupgrade.it/sito/legale/ Copyright 1997 - 2012 Hardware Upgrade S.r.l |