Modalità di generazione dei report

I sensori possono generare eventi in diversi modi, chiamati modalità di generazione di report. A ogni tipo di sensore è associata una sola modalità di generazione di report. Esistono quattro modalità di generazione di report.

Continuo

Gli eventi vengono generati a una frequenza costante definita dal parametro sampling_period_ns passato alla funzione batch. Alcuni esempi di sensori che utilizzano la modalità di generazione di report continua sono accelerometri e giroscopio.

Al cambio

Gli eventi vengono generati solo se i valori misurati sono cambiati. L'attivazione del sensore a livello di HAL (chiamata activate(..., enable=1)) attiva anche un evento, il che significa che l'HAL deve restituire un evento immediatamente quando viene attivato un sensore su variazione. Alcuni esempi di sensori che utilizzano la modalità di generazione di report al variare sono i tipi di sensori di contapassi, di prossimità e di battito cardiaco.

Il sampling_period_ns parametro passato alla funzione batch viene utilizzato per impostare il tempo minimo tra eventi consecutivi, il che significa che un evento non deve essere generato fino a quando non sono trascorsi sampling_period_ns nanosecondi dall'ultimo evento, anche se il valore è cambiato da allora. Se il valore è cambiato, deve essere generato un evento non appena è trascorso sampling_period_ns dall'ultimo evento.

Ad esempio, supponiamo che:

  • Attiva il contapassi con sampling_period_ns = 10 * 10^9 (10 secondi).
  • Camminiamo per 55 secondi, poi rimaniamo fermi per un minuto.
  • Gli eventi vengono generati ogni circa 10 secondi durante il primo minuto (incluso il momento t=0 a causa dell'attivazione del sensore e t=60 secondi), per un totale di sette eventi. Nessun evento viene generato nel secondo minuto perché il valore del conteggio dei passi non è cambiato dopo t=60 secondi.

One-shot

Al rilevamento di un evento, il sensore si disattiva e invia un singolo evento tramite l'HAL. L'ordine è importante per evitare condizioni di gara. Il sensore deve essere disattivato prima che l'evento venga segnalato tramite l'HAL. Nessun altro evento viene inviato finché il sensore non viene riattivato. Movimento significativo è un esempio di questo tipo di sensore.

I sensori una tantum sono a volte chiamati sensori di attivazione.

I parametri sampling_period_ns e max_report_latency_ns passati alla funzione batch vengono ignorati. Gli eventi da eventi una tantum non possono essere memorizzati in FIFO hardware; gli eventi devono essere registrati non appena vengono generati.

Speciale

Consulta le singole descrizioni del tipo di sensore per informazioni dettagliate su quando vengono generati gli eventi.