18.08.2013 Views

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

UNIVERSITA' DEGLI STUDI DI PAVIA - Robotica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

servono anch'esse ad aggiornare il contenuto dello schermo durante l'esecuzione<br />

dei programmi: vengono aggiornati lo stato del driver dei servo e il livello delle<br />

soglie per il puntatore laser e per il bersaglio.<br />

Sono fornite le procedure per gestire la barra di stato, alla quale è associato<br />

un task periodico con criticità SOFT e periodo opportuno, che realizza l'eventuale<br />

lampeggio del testo visualizzato nella barra di stato. Un task che desidera scrivere<br />

nella status bar deve indicare, al momento della creazione, di utilizzare la risorsa<br />

SRP_STATUSBAR. L'effettiva scrittura del testo avviene con la procedura<br />

set_statusbar(), la quale permette anche di indicare se il testo deve lampeggiare o<br />

rimanere fisso sul video. Il modulo esecutivo che utilizza la barra di stato deve<br />

eseguire la procedura go_statusbar_MOD(), il quale serve a creare e ad avviare il<br />

task che gestisce la barra.<br />

Infine, la libreria fornisce gli strumenti per effettuare l'hardcopy di una<br />

schermata e salvarla in un file in standard PGM. Il PGM è un formato grafico<br />

particolarmente semplice, che adatto ad immagini di qualsiasi dimensione ma<br />

soltanto monocromatiche a 256 livelli di grigio.<br />

Per abilitare l'hardcopy al termine dell'elaborazione, il programma<br />

principale deve richiamare la procedura enable_hard_copy(). Quando<br />

l'elaborazione del programma principale termina, chiamando la funzione<br />

shut_down_sys(), nel modulo elabor.h, viene effettuato l'hardcopy dello schermo e<br />

salvato in una variabile interna alla libreria. Questo avviene dopo la chiusura del<br />

sistema (ovvero dopo la sys_end()), in modo da non avere interferenze da parte<br />

dei task che scrivono sullo schermo. Solo dopo aver completato l'operazione viene<br />

chiusa anche la grafica. Rimane compito del programma principale richiamare la<br />

funzione save_pgm_screen() per la scrittura vera e propria nel file.<br />

138

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

Saved successfully!

Ooh no, something went wrong!