From e3b7e75072971fc810f2df556f308c6afe59a82b Mon Sep 17 00:00:00 2001 From: norangebit Date: Wed, 22 Jul 2020 19:05:15 +0200 Subject: [PATCH] Change section order --- documentazione.md | 48 +++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/documentazione.md b/documentazione.md index 8000753..e79275b 100644 --- a/documentazione.md +++ b/documentazione.md @@ -173,7 +173,7 @@ L'ultima modalità, la ***C***, è quella che tutela maggiormente la privacy deg - Rotazione dei *tcn* - Matching locale -La generazione degli *tcn* avviene attraverso una derivazione deterministica come visto nella @sec:tcn-protocol, in modo tale da avere lo stesso livello di privacy di una soluzione randomica, ma con una migliore scalabilità. +La generazione dei *tcn* avviene attraverso una derivazione deterministica come visto nella @sec:tcn-protocol, in modo tale da avere lo stesso livello di privacy di una soluzione randomica, ma con una migliore scalabilità. Mentre il matching locale permette di condividere il minor numero di informazioni possibili e solo quando questo è strettamente necessario. Infatti in questa modalità l'applicazione carica le informazioni sul server solo in seguito alla richiesta delle autorità sanitarie. Inoltre a differenza delle prime due modalità è previsto l'upload unicamente dei *tcn* che il dispositivo ha assunto nel tempo, in questo modo il server non è in grado di conoscere o ricavare i contatti avuti dall'utente. @@ -194,7 +194,7 @@ Questa caratteristica, unita alle regole stringenti di utilizzo imposte della li [^regole-api-apple-google]: Le due società californiane consentono lo sviluppo di applicazioni che fanno uso della loro API solo ad enti governativi e impongo un numero massimo di applicazioni per nazione pari ad uno. Dalla documentazione ufficiale non è ben chiaro se questi vincoli riguardino solo la pubblicazione sugli store o anche lo sviluppo. -## Interazione via bluetooth +## Interazione via Bluetooth L'interazione tra l'hardware bluetooth del dispositivo e l'applicazione è stata gestita attraverso l'impiego della libreria *Android Beacon Library* [@AndroidBeaconLibrary] che permette di gestire più facilmente le operazioni con beacon bluetooth. Inoltre per rendere l'applicazione più funzionale, e quindi garantirne il funzionamento anche in background o a schermo spento è stato utilizzato un *foreground service* [@ServicesOverview], che consente di mantenere in *primo piano* le operazioni di trasmissione e scansione anche quando l'applicazione non lo è. @@ -292,27 +292,6 @@ $TxPower$ è la potenza di trasmissione nominale che si misurerebbe alla distanz Il valore di $TxPower$ deve essere precedentemente ricavato per ogni emettitore e deve essere inviato all'interno del beacon bluetooth. Lavorando con dispositivi eterogenei tra di loro non è stato possibile calcolare in modo esatto questo valore, ma si è scelto di utilizzare il valore $-59$ poiché si adattava mediamente a tutti i dispositivi utilizzati in fase di test. -## Interfaccia utente - -L'applicazione opera prevalentemente in background, ma comunque è dotata di una serie di elementi grafici che consentono all'utente di interagire con essa. -Quando l'applicazione viene avviata per la prima volta l'utente ha la possibilità di scegliere la modalità di funzionamento che desidera utilizzare (si veda @fig:ui-welcome). -Una volta compiuta questa scelta viene chiesto all'utente di concedere l'accesso alla posizione. -Sebbene l'applicazione non utilizzi il GPS o altri strumenti di posizionamento ciò si rende necessario al fine di abilitare la scansione dei beacon BLE anche in background. - -![Schermata di benvenuto.](fig/welcome.jpg){#fig:ui-welcome width=130} - -La schermata principale dell'applicazione, riportata in @fig:ui-main, si compone di tre elementi: - -- `TextView` che indica la modalità di funzionamento. -- `Button` *start/stop* che consente di avviare o stoppare il servizio bluetooth. - Questo pulsante viene abilitato unicamente se sono stati concessi i permessi di accesso alla posizione. -- `Button` *exposed* consente all'utente di raggiungere l'activity, @fig:ui-upload, attraverso la quale è possibile comunicare al server il proprio stato di contagiato. - Nel caso della modalità *B* e *C* vengono caricati sul server anche i dati di contatto presenti sul dispositivo. - -![Schermata principale.](fig/main.jpg){#fig:ui-main width=130} - -![Schermata per l'upload.](fig/upload.jpg){#fig:ui-upload width=130} - ## Memorizzazione ID In base alla modalità di funzionamento l'applicazione deve memorizzare diversi tipi di dati. @@ -378,7 +357,7 @@ interface TCNDataDao { ## Comunicazione report -La comunicazione con il server avviene mediante un brocker MQTT fornito da un altro gruppo di studenti. +La comunicazione con il server avviene mediante un broker MQTT fornito da un altro gruppo di studenti. Come implementazione del client MQTT si è scelto di utilizzare *Paho* [@EclipsePahoMQTT], un client realizzato da Eclipse. Questa libreria oltre a fornire un client MQTT per la JVM fornisce anche un *service* per Android che permette di sollevare lo sviluppatore da alcuni dettagli implementativi. @@ -445,4 +424,25 @@ fun publish( Le funzionalità di rete sono state testate attraverso l'impiego di un broker pubblico (`tcp://broker.hivemq.com:1883`) ed un'istanza locale di *ActiveMQ Artemis* inoltre è stato utilizzato il topic `exposed-test-topic` per la pubblicazione dei messaggi. Entrambi i parametri sono stati settati tramite delle costanti e quindi possono essere modificati facilmente. +## Interfaccia utente + +L'applicazione opera prevalentemente in background, ma comunque è dotata di una serie di elementi grafici che consentono all'utente di interagire con essa. +Quando l'applicazione viene avviata per la prima volta l'utente ha la possibilità di scegliere la modalità di funzionamento che desidera utilizzare (si veda @fig:ui-welcome). +Una volta compiuta questa scelta viene chiesto all'utente di concedere l'accesso alla posizione. +Sebbene l'applicazione non utilizzi il GPS o altri strumenti di posizionamento ciò si rende necessario al fine di abilitare la scansione dei beacon BLE anche in background. + +![Schermata di benvenuto.](fig/welcome.jpg){#fig:ui-welcome width=130} + +La schermata principale dell'applicazione, riportata in @fig:ui-main, si compone di tre elementi: + +- `TextView` che indica la modalità di funzionamento. +- `Button` *start/stop* che consente di avviare o stoppare il servizio bluetooth. + Questo pulsante viene abilitato unicamente se sono stati concessi i permessi di accesso alla posizione. +- `Button` *exposed* consente all'utente di raggiungere l'activity, @fig:ui-upload, attraverso la quale è possibile comunicare al server il proprio stato di contagiato. + Nel caso della modalità *B* e *C* vengono caricati sul server anche i dati di contatto presenti sul dispositivo. + +![Schermata principale.](fig/main.jpg){#fig:ui-main width=130} + +![Schermata per l'upload.](fig/upload.jpg){#fig:ui-upload width=130} + # Riferimenti