Ingegneria del software: laboratorio di progettazione
Anno accademico 2000/01
II semestre
Vincenzo Ambriola
(a cura di Vincenzo Gervasi)
La CoSMO s.r.l. (COmpagnia per lo Sfruttamento Minerario degli Oceani) ha avviato un programma per la raccolta automatizzata di noduli di manganese dal fondo oceanico. La vostra società è stata contattata, insieme ad altre, per la fornitura del software per i moduli di raccolta. La CoSMO ha designato una particolare area oceanica come campo di test e valutazione delle offerte delle diverse società; il vostro compito è di dimostrare alla CoSMO che il vostro software garantirà risultati migliori (in termini di efficacia, efficienza ed economia di gestione) nella raccolta del manganese.
Ogni sistema di raccolta è composto da un modulo base, detto BARDO (BAse di Ricarica e Deposito Oceanica), e da un certo numero di moduli semoventi di raccolta, detti ARPA (Automa di Raccolta e Prospezione Adattivo). Un’ARPA si muove sul fondo oceanico, raccogliendo noduli di manganese nei limiti della propria capacità di carico e della propria autonomia energetica. Periodicamente, deve ritornare al proprio BARDO per depositare la manganese raccolta e per ricaricare le batterie. Un BARDO può immagazzinare una quantità molto grande di noduli e dispone di un solo alloggiamento per l’aggancio delle ARPA. Quando il BARDO ha raccolto manganese fino a raggiungere la propria capacità massima, le operazioni di raccolta si considerano ultimate (il personale di superficie interverrà per recuperare il BARDO con una nave appoggio).
Un modulo ARPA dispone di motori di spinta e di assetto per spostarsi sul fondo oceanico, di un sensore di posizione, di un rivelatore di manganese, di un dispositivo per la raccolta dei noduli e di un dispositivo di aggancio al BARDO, che attiva contestualmente lo scarico dei noduli di manganese e la ricarica delle batterie. Un’ARPA può inoltre comunicare via radio con altre ARPA e può leggere lo stato di carica della propria batteria. In particolare:
I driver del sistema operativo dell’ARPA accettano i seguenti comandi:
|
Comando |
Descrizione |
Parametri |
Risultato |
| THRUST stato | Controlla i motori di spinta | stato: ON o OFF. | |
| TURN dir | Controlla i motori di assetto | dir: R per girare a destra, L per girare a sinistra, S per fermare la rotazione. | |
| POSITION | Restituisce la posizione dell’ARPA rispetto al BARDO | x y: la posizione corrente in un sistema di riferimento che ha il BARDO all’origine. | |
| SCAN angle | Attiva il sensore di manganese, puntandolo in una direzione data. | angle: la direzione (rispetto alla direzione corrente dell’ARPA) lungo la quale si cerca. | dist: la distanza del più vicino nodulo di manganese lungo la direzione angle, o –1 se non ci sono noduli entro il raggio di funzionamento dello strumento. |
| GRAB | Attiva il braccio per la raccolta dei noduli. | n: il numero di noduli raccolti (0 se non ci sono moduli entro il raggio d’azione del braccio). | |
| DOCK | Attiva il dispositivo di aggancio al BARDO. | OK se l’aggancio è riuscito, FAIL altrimenti. | |
| UNDOCK | Disattiva il dispositivo di aggancio al BARDO. | ||
| BATT | Legge lo stato di carica della batteria. | current: lo stato di carica corrente, 100 = piena carica. | |
| SEND msg | Invia un messaggio in broadcast | msg: un messaggio (arbitrario). | |
| RECV | Riceve un messaggio in broadcast. | msg: il testo di un messaggio, oppure NULL se non ci sono messaggi. | |
| LOAD | Restituisce la quantità di manganese immagazzinata. | current max: due interi che rappresentano, rispettivamente, il numero di noduli stivati e la capienza massima della stiva. | |
| ID | Restituisce l’identificatore dell’ARPA. | id: un intero che identifica l’ARPA. |
Pagina gestita da Vincenzo Ambriola. Aggiornata il 13 February, 2002.