17.06.2013 Views

pvbrowser manual - Flussi liberi informatici

pvbrowser manual - Flussi liberi informatici

pvbrowser manual - Flussi liberi informatici

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2 CAPITOLO 1. INTRODUZIONE<br />

Il client <strong>pvbrowser</strong> può essere paragonato ad un normale browser web. Tramite il <strong>pvbrowser</strong> non viene presentato<br />

nessun contenuto statico ma invece viene mostrato contenuto di tipo dinamico, come è necessario per un<br />

software SCADA. Con <strong>pvbrowser</strong> può essere realizzata qualsiasi maschera (pagina) di visualizzazione che può<br />

essere fruibile su tutto l’impianto oppure anche su Internet. Queste maschere (pagine) possono essere sfogliate<br />

utilizzando dei collegamenti ipertestuali.<br />

La struttura delle finestre di <strong>pvbrowser</strong> è controllata dallo stesso <strong>pvbrowser</strong> , ma il contenuto delle stesse è<br />

completamente progettato dallo sviluppatore della maschera. La progettazione di queste maschere può essere<br />

fatta anche da computer remoti. Se una maschera (pagina) viene modificata non è necessario fare nessuna<br />

modifica sul computer client.<br />

Le funzionalità ed il modo di operare di una finestra è determinato dalla realizzazione su misura della maschera.<br />

La finestra del client è dotata di un Help integrato. Un clic su ? accanto al campo dell’URL e poi un clic su di<br />

un’elemento nella barra degli strumenti farà aprire una guida contestuale. Il menu di aiuto in alto a destra è in<br />

realtà una pagina HTML a partire da index.html. Questa pagina deve essere scaricata dal server utilizzando il<br />

comando pvDownloadFile (). Se la pagina index.html non esiste non vi è alcun aiuto disponibile per la maschera<br />

(pagina) in funzione. Per l’help è possibile utilizzare tutte le funzionalità fornite da WebKit. Pvbrowser può<br />

essere personalizzato utilizzando l’editor in File Options. Si prega di notare che alcune variazioni vengono<br />

applicate solo dopo un riavvio del client. Sono disponobili le seguenti opzioni da riga di comando.<br />

opzioni per <strong>pvbrowser</strong> da linea di comando<br />

usage: <strong>pvbrowser</strong> <br />

<br />

example: <strong>pvbrowser</strong><br />

example: <strong>pvbrowser</strong> localhost<br />

example: <strong>pvbrowser</strong> localhost:5050<br />

example: <strong>pvbrowser</strong> -font=courier localhost<br />

example: <strong>pvbrowser</strong> -font=arial:14 localhost:5050 -disable<br />

example: <strong>pvbrowser</strong> -geometry=0:0:640:480<br />

example: <strong>pvbrowser</strong> -global_strut=50:50 # set minimum size for embedded systems<br />

Il client <strong>pvbrowser</strong> si collegherà ad un pvserver via TCP/IP. Il pvserver inizierà l’invio di testo ASCII per il<br />

client che lo interpreterà ed il risultato porterà alla chiamata di un metodo Qt. Nella direzione opposta il client<br />

<strong>pvbrowser</strong> invierà messaggi di testo ASCII per il pvserver quando l’utente attiverà un evento come un clic su<br />

di un pulsante per esempio. Questo testo verrà interpretato all’interno di un ciclo di gestione degli eventi nel<br />

pvserver. Questo si tradurrà in una chiamata alla relativa ’slot function’. Il compito dello sviluppatore di una<br />

maschera di visualizzazione è quello di personalizzare queste ’slot function’. Lo scheletro del pvserver verrà<br />

generato e curato automaticamente da pvdevelop così lo sviluppatore potrà concentrarsi sulle ’slot function’.<br />

Il layout delle maschere verrà invece progettato graficamente.<br />

Una tipica funzione in pvserver che invia del testo ASCII al client <strong>pvbrowser</strong>.<br />

int pvSetValue(PARAM *p, int id, int value)<br />

{<br />

char buf[80];<br />

sprintf(buf,"setValue(%d,%d)\n",id,value);<br />

pvtcpsend(p, buf, strlen(buf));<br />

return 0;<br />

}

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!