Modalità di segnalazione

I sensori possono generare eventi in diversi modi chiamati modalità di segnalazione; ogni tipo di sensore ha una ed una sola modalità di segnalazione ad esso associata. Esistono quattro modalità di segnalazione.

Continuo

Gli eventi vengono generati a una velocità costante definita dal parametro sampling_period_ns passato alla funzione batch . Esempi di sensori che utilizzano la modalità di segnalazione continua sono accelerometri e giroscopi .

In cambio

Gli eventi vengono generati solo se i valori misurati sono cambiati. Attivando il sensore a livello HAL (chiamando su di esso activate(..., enable=1) ) si attiva anche un evento, il che significa che l'HAL deve restituire un evento immediatamente quando viene attivato un sensore di cambio. Esempi di sensori che utilizzano la modalità di segnalazione al cambio sono i tipi di sensore di contapassi, di prossimità e di frequenza cardiaca.

Il parametro sampling_period_ns 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 sampling_period_ns non sono trascorsi nanosecondi dall'ultimo evento, anche se il valore è cambiato da allora. Se il valore è cambiato, un evento deve essere generato non appena sampling_period_ns è trascorso dall'ultimo evento.

Supponiamo ad esempio:

  • Attiviamo 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 10 secondi circa durante il primo minuto (compreso all'istante t=0 per l'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.

Un colpo

Al rilevamento di un evento, il sensore si disattiva e quindi invia un singolo evento tramite l'HAL. Ordinare questioni per evitare condizioni di gara. (Il sensore deve essere disattivato prima che l'evento venga segnalato attraverso l'HAL). Nessun altro evento viene inviato finché il sensore non viene riattivato. Il movimento significativo è un esempio di questo tipo di sensore.

I sensori one-shot sono talvolta indicati come sensori trigger.

I parametri sampling_period_ns e max_report_latency_ns passati alla funzione batch vengono ignorati. Gli eventi di eventi one-shot non possono essere archiviati in FIFO hardware; gli eventi devono essere segnalati non appena vengono generati.

Speciale

Vedere le descrizioni dei singoli tipi di sensore per i dettagli su quando vengono generati gli eventi.