Add transmission
This commit is contained in:
parent
fe3f3a31c6
commit
5de8b3b42b
@ -63,6 +63,35 @@ Potendo opera unicamente nello spazio utente non è stato possibile superare que
|
||||
|
||||
### Trasmissione
|
||||
|
||||
Il dispositivo dell'utente deve eseguire il broadcast di un beacon bluetooth contenete l'UUID identificativo.
|
||||
Questa operazione è stata svolta attraverso la classe `BeaconTransmitter` messa a disposizione dalla *Android Beacon Library*.
|
||||
Inoltre per la modalità di funzionamento *C* è stato necessario prevedere un meccanismo di rotazione delle chiavi.
|
||||
Questa rotazione viene settata attraverso la funzione `rotateTCN()` che sfrutta un `Handler` per programmare la rotazione dell'UUID.
|
||||
|
||||
``` {.kotlin #lst:rotate-tcn caption="Codice necessario alla torazione del tcn."}
|
||||
private fun rotateTCN() {
|
||||
val advertiseHandler = Handler()
|
||||
val changeTCN: Runnable = object : Runnable {
|
||||
override fun run() {
|
||||
tcnManager.nextTcn()
|
||||
startAdvertising()
|
||||
advertiseHandler.postDelayed(
|
||||
this,
|
||||
TCNManager.ELAPSE_BETWEEN_NEW_TCN
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
advertiseHandler.postDelayed(
|
||||
changeTCN,
|
||||
TCNManager.ELAPSE_BETWEEN_NEW_TCN
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
La scelta della frequenza di *advertising* è stata dettata dai vincoli tracciati dall'API di Android @AdvertiseSettings.
|
||||
Infatti la libreria permette di trasmettere un beacon o con una frequenza di 1 *Hz*, 3 *Hz* o 10 *Hz*.
|
||||
Fortunatamente questi vincoli non si sono rilevati troppo limitanti infatti la frequenza di un Hertz, quindi un beacon trasmetto ogni secondo, permette di avere una buona trasmissione e di risparmiare batteria, inoltre in fase di scanning evita che siano registrate più interazioni nello stesso ciclo.
|
||||
|
||||
### Scansione
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user