20/07/2012 – Aggiornamento Applicazione:
Gestita la modalità landscape (cioè quando si gira il tablet/cellulare in orizzontale)
17/07/2012 – Aggiornamento Applicazione:
- Corretto bug nel grafico con tutte le temperature del file e gli eventi (Se aggiunto lo stesso evento in giorni differenti, disegnava più grafici anzichè uno solo, con conseguente ripetizione del tipo di evento nella legenda)
- Aggiunta finestra di caricamento non statica (Comunica all’utente ciò che si sta calcolando) quando si vuole disegnare il grafico con tutte le temperature del file e gli eventi (operazione a volte onerosa)
- Aggiunta una CheckBox per permettere di scegliere se vedere i grafici in modalità Scrollable (navigabile col dito a dx e sx) o no
—————————————————————————
Finalmente ho completato l’applicazione Android “Gestion de Eventos” (quella dei 2 post precedenti)
Qui trovate l’eseguibile .apk http://ubuntuone.com/6lh70jpZmaZ6xdmQGOq3a4
Qui i sorgenti http://ubuntuone.com/7MukCA3IykiIVXZNepVAFD
Approfitto di questo post per scrivere una breve descrizione dell’app:
L’applicazione fa parte di un progetto di ricerca chiamato Al-Senior (finanziato dal Ministero della Scienza e della Ricerca del Gobierno de España) che si occupa principalmente di monitorare persone anziane non autosufficienti.
In particolare lo scopo di questa applicazione è:
- Definire tipi di eventi quotidiani (es. pranzo, cena, riposo pomeridiano, passeggiata, presenza in sala di lettura, ed altro), salvarli in una sorta di diario-calendario (registrando data, ora di inizio e di fine di ciascuno di essi) e poter esportare questi dati in un file sulla memoria esterna del cellulare. Il file ha estensione “.xml” ed è in un formato “strano” (non user-friendly ehehe). E’ compito di un altro membro del gruppo di ricerca creare un programma per pc che prenda questo file e lo traduca in un formato “leggibile”. Qui un esempio del file
- Rappresentare su un apposito grafico questo speciale diario-calendario
- Utilizzando un apposito strumento denominato Misuratore della temperatura corporea esterna, acquisire i dati relativi alla temperatura corporea del soggetto, (che viene rilevata ogni 10 minuti per un periodo di 2 settimane) , per poi rappresentare in appositi grafici sia la suddetta temperatura corporea che la “Media Mobile” di essa
- Confrontare ed analizzare questi grafici allo scopo di stabilire se eventuali variazioni di temperatura in un dato momento sono da mettere in relazione con la tipologia di evento che nello stesso momento sta verificandosi (es. la temperatura potrebbe salire dopo il pranzo, o diminuire in sala di lettura)
Quando si esegue l’app, ci si trova di fronte alla tab centrale chiamata AGGIUNGI EVENTI
In questa tab è possibile creare o eliminare un tipo di evento (pranzo, cena ecc), eliminare tutti i tipi di eventi e esportare il file di configurazione .xml contenente tutti i dati sulla sd del telefono. Queste 4 operazioni si possono effettuare col tasto Menù
Inoltre è possibile creare un evento selezionando il tipo, la data, l’ora di inizio e di fine e premendo sul bottone “Invia Dati”
Dopo aver aggiunto un’evento, esso sarà visualizzato nella tab LISTA EVENTI
In questa tab vengono elencati tutti gli eventi con le loro caratteristiche (tipo, ora inizio/fine e data) in ordine cronologico. Cliccando su uno di essi è possibile eliminarlo e premendo il tasto menù è possibile eliminare in un colpo solo tutti gli eventi creati
Tab DISEGNA GRAFICI
In questa tab è appunto possibile disegnare grafici statistici riguardanti gli eventi da noi creati.
Premendo il primo bottone “Disegna/Aggiorna il grafico dato un evento” è possibile, selezionando un tipo di evento, vedere quante volte succede quest’evento nell’arco della giornata (es l’evento colazione avverrà la maggior parte delle volte di mattina, quindi il grafico vedrà la barra più alta per esempio nella facia oraria 8-10)
Gli altri due bottoni disegnano il grafico della temperatura corporea esterna misurata ai pazienti con questo apparecchietto (http://www.ibuttonlink.com/ds1921g.aspx) ad intervalli regolari di 10 minuti per 2 settimane.
Per registrare queste temperature, è necessario avere nella memoria sd del cellulare un file chiamato temperaturas_solo_datos.txt contenente le temperature esterne in questo formato
10/21/2009 00:01 , 35,4°C
10/21/2009 00:11 , 35,8°C
10/21/2009 00:21 , 35,8°C
10/21/2009 00:31 , 35,8°C
10/21/2009 00:41 , 35,9°C
Allego il file d’esempio qui (http://ubuntuone.com/6IzFcU1kCmQsEZWRZRIaW6)
In particolare vengono disegnati 2 grafici:
A questi 2 grafici vengono sovrapposti altri grafici che rappresentano una “diario visuale” degli eventi inseriti da noi in precedenza
Tutto ciò serve a capire per esempio la causa di bruschi cambiamenti della temperatura corporea (per esempio nel grafico posso vedere un innalzamento della temperatura durante il pranzo o un abbassamento in sala lettura o durante la siesta)
In particolare premendo il bottone “Disegna/Aggiorna il grafico data una data” i grafici disegnati riguardano solo un giorno selezionato dall’utente (ricordo che nel file d’esempio, i dati raccolti dal misuratore di temperatura vanno dal giorno 21/10/2009 al giorno 3/11/2009)
Premendo invece il bottone “Disegna tutte le temperature e gli eventi” viene disegnato il grafico di tutte le temperature presenti sul file txt e degli eventi (se ce ne sono) in tutte queste date. Data la moltitudine di dati sull’asse x, questo grafico è “Scrollable”, cioè vengono visualizzate solo 12 ore e ci si può spostare con il dito a destra e sinistra
Durante la creazione del grafico con tutte le temperature e gli eventi, essendo un’operazione molto onerosa in termini di tempo, appare un ProgressDialog (una finestra di caricamento) che comunica all’utente ciò che sta avvenendo
Digressione sulla Media Mobile:
Cos’è la media mobile? Lo spiego con un esempio
Facciamo finta di avere misurato le seguenti 7 temperature : x0=2 x1=3 x2=6 x3=7 x4=4 x5=5 x6=6
La Media Mobile di parametro M=5 viene calcolata in questo modo:
- Copio primi (M-1)/2 e gli ultimi (M-1)/2 valori. In questo caso y0=x0, y1=y1, y5=x5, y6=x6
- Calcolo i rimanenti punti in questo modo:
y2=(x0+x1+x2+x3+x4)/5
y3=(x1+x2+x3+x4+x5)/5
y4=(x2+x3+x4+x5+x6)/5
Commenti recenti