AVVISO IMPORTANTE: È disponibile una nuova versione dell'utility CosmoRD, più robusta rispetto ai problemi di rete transitori e con dei colori più visibili per le Arpe e il Bardo. Potete scaricarla all'URL http://islp.di.unipi.it/~gervasi/CosmoRD.jar. Come al solito, usate il comando appropriato per il vostro browser per scaricare l'eseguibile Java. Rimane la compatibilità totale con la vecchia versione di CosmoRD. |
java -jar CosmoRD.jar login password [server]
![]() |
La finestra di CosmoRD presenta un'ampia
area dedicata alla visualizzazione del fondo oceanico e alcuni controlli
in basso. Nell'area dedicata alla mappa, i puntini rossi rappresentano noduli
di manganese, mentre il BARDO e le ARPE di un gruppo sono rappresentati da
punti di altro colore (che dipende dal gruppo). In particolare, il BARDO
appare come un quadratino etichettato con il nome del gruppo, mentre le ARPE
appaiono come puntini piu' piccoli, numerati da 1 a 5. Ciascun gruppo "vede" soltanto il proprio BARDO e le proprie ARPE, ma altri gruppi possono essere in azione contemporaneamente: può dunque accadere che alcuni noduli "scompaiano" improvvisamente dal fondo marino. In basso, da sinistra, troviamo un testo che descrive lo stato dell'applicazione e due indicatori di livello. Il primo indica il numero di gruppi collegati in un certo momento, mentre il secondo presenta un'indicazione del livello di carico della CPU sulla macchina locale. Infine, la casella "Aggiorna" consente di attivare o sospendere l'aggiornamento della visualizzazione: quando "Aggiorna" non è attivo, il traffico sulla rete viene ridotto in maniera sostanziale, migliorando le condizioni di lavoro per tutti. |
import java.net.*;
import java.io.*;
/* ... */
Socket sock=null;
PrintWriter out;
BufferedReader in;
/* ... */
try {
sock = new Socket(server, 7890);
sock.setSoTimeout(10000);
out = new PrintWriter(new OutputStreamWriter(sock.getOutputStream()),true);
in = new BufferedReader(new InputStreamReader(sock.getInputStream()));
/* qui chiamate il corpo della vostra Arpa */
} catch (IOException e) {
System.err.println(e);
} finally {
if (sock!=null)
sock.close();
}
public String exec(String cmd) throws IOException
{
// per il debug: System.err.println("EXEC: "+cmd);
out.println(cmd);
String res = in.readLine();
// per il debug: System.err.println("RES: "+res);
return res;
}
res = exec("3 BATT");(si veda avanti per l'esatta sintassi dei comandi e delle risposte).
3 BATTha l'effetto di restituire lo stato di carica della batteria della vostra quarta Arpa. Le risposte ai comandi hanno sempre il formato
OK eventuali risultati
FAIL ragione del fallimento
0 LOGIN login password
0 LOGOUTUna sessione viene comunque chiusa anche in altri casi:
telnet server 7890una volta aperta la connessione, potete digitare i comandi che inviereste normalmente (iniziando da "0 LOGIN ..."), e osservare i risultati. Per uscire da telnet, usate la sequenza CTRL+], Enter, "quit", Enter.