venerdì 9 maggio 2008

Architettura di riferimento aggiornata

martedì 22 aprile 2008

Log2

Per il componente GuidaAutomatica abbiamo già creato un logger utilizzando java.util.logging.
Abbiamo esteso la classe Handler per gestire la coda dei log prodotta dal nostro componente; come dicevamo oggi a Paolo abbiamo bisogno che la chiamata al logger sia il più possibile "leggera" per il thread chiamante.
Credo che i due lavori possano essere integrati, l'Handler fatto da noi può essere usato per pubblicare i log sul vostro logger, ci occupiamo noi di tradurre il LogRecord di java nel vostro LogEntry, tanto il formato mi sembra praticamente lo stesso. In questo modo non dovete riscrivere il logger per preoccuparvi di eventuali vincoli sulle "performance " che potrebbe richiedere il nostro componente.
Così possiamo anche attivare il logging sul vostro logger attraverso un parametro nel file di configurazione (ed usare il nostro per il test e lo sviluppo preliminare), evitando eventuali cambiamenti al codice in fase di integrazione dei vari componenti.
Ciao a tutti

lunedì 21 aprile 2008

Log

Ho creato le interfacce necessarie per loggare gli eventi.
Il componente GUI passera' ad ogni altro componente (ancora dobbiamo decidere in che modo) un oggetto di tipo LogWriter quando parte una nuova simulazione. Tale oggetto rimarra' valido finche' la simulazione viene terminata. Ogni componente dovra' utilizzare tale oggetto per loggare.

Per loggare un evento e' sufficiente instanziare un oggetto di tipo LogEntry con i dati desiderati e quindi passarlo al LogWriter tramite il metodo addEntry.
Ecco un esempio:

// aggiungo al LogWriter lw un evento che segnala l'avvio di una simulazione
Log.LogWriter lw;
Log.LogEntry l = new Log.LogEntry( Log.LogEntry.EntryType.INFORMATION, "Gui.MainGui", "Simulazione avviata" );
l.setDescription( "Una nuova simulazione e' appena stata avviata in modalita' batch." );
l.setParameter( "modalita", "batch" );
lw.addEntry( l );


Alcune note:
  • Come autore dell'evento e' possibile specificare una stringa contenente punti (come ho mostraro nell'esempio precedente, dove l'autore e' "Gui.MainGui"), in tal modo la gui che si occupa di mostrare i log permettera' di filtrare l'autore in modo piu' avanzato: potra' mostrare tutti gli eventi ("*"), gli eventi di Gui e dei suoi sottocomponenti ("Gui.*") o anche gli eventi di solo Gui.MainGui: ("Gui.MainGui")
  • I parametri aggiuntivi (settabili col metodo setParameter) devono venire documentati. Tali parametri potranno infatti venire gestiti dalla gui per mostrare informazioni speciali su un evento. Se ad esempio un evento di titolo "Car crash" contiene i parametri "x" ed "y", quando tale evento viene selezionato dall'utente sara' possibile inserire una bandierina sulla mappa alle coordinate specificate da "x" ed "y".

Al seguente indirizzo potete trovare un archivio contenente l'interfaccia LogWriter e le classi LogEntry e Logger. Quest'ultima non dovrebbe servirvi (viene utilizzata soltanto dalla gui), ma potete usarla temporaneamente per utilizzare il vostro componente prima che venga assemblato assieme agli altri.
Log.tar.gz

lunedì 7 aprile 2008

Interfacce di AVT-GuidaAutomatica

Le interfacce scritte dal nostro gruppo sono incluse in questa cartella

EDIT:
- per InterpreteSensori: ho corretto il metodo init di SENS_Controls aggiungendo tra i parametri anche un interfaccia CONTR_Exceptions (la modifica è stata fatta sotto esplicita richiesta del professore, la notify del fuori tempo va fatta anche dall'Interprete autonomamente), ecco il file CONTR_Exceptions.java
- per il Simulatore: non vi abbiamo mandato lo scheletro della classe AVT-GuidaAutomatica, che rappresenta l'intero componente (per creare un AVT dovete creare un oggetto di questa classe e in seguito chiamare il metodo getAVT_Controls() per prendere l'interfaccia di inizializzazione e avvio), ecco il file AVTGuidaAutomatica.java

mercoledì 2 aprile 2008

Riunione Gruppi

Dato che non abbiamo ancora deciso tutte le interfacce da usare, riterrei opportuno trovarci per discuterne.
Venerdì va bene per tutti?

giovedì 20 marzo 2008

Architettura di riferimento

Dato che nessuno ha ancora pubblicato l'architettura di riferimento scritta in aula martedì scorso propongo io lo schema.




Per quanto riguarda la lezione straordinaria della prossima settimana, nessuno ha espresso le proprie disponibilità e preferenze? Il gruppo dell'AVT-Guida Automatica dovrebbe essere diponibile per venerdì.

mercoledì 19 marzo 2008

Interfacce con AVT-Sensori e AVT-Attuatori: prima versione

Abbiamo definito le interfacce per lo scambio di dati con i componenti AVT-Sensori e AVT-Attuatori.
Dovrebbe esserci tutto il necessario, ma e' possibile che ci sia sfuggito qualcosa. Doveste notare qualcosa che non funziona, segnalatelo per favore, cosi' possiamo correggerlo.
SENSORS_Buffer.java
ACTUATORS_Buffer.java

(versioni solo testo visualizzabili col browser:
SENS - ACT)