handle Step Counter Data
Maneja los datos del sensor STEP_COUNTER.
Implementa la lógica para:
Inicialización de la línea base (baseline)
Detección de reinicios del sensor
Cálculo de los pasos de la sesión actual
Validación de los datos recibidos
Esta función es el núcleo del conteo de pasos. Asegura que los pasos se cuenten desde cero para cada sesión, maneja posibles reinicios del sensor (por ejemplo, reinicio del dispositivo o mal funcionamiento del sensor) y valida los datos entrantes.
Flujo de Trabajo:
Validación de Datos: Comprueba si
totalStepsFromSensorno es negativo. Registra una advertencia y retorna si el valor no es válido.Línea Base Inicial: Si
stepCountInitializedes falso, esta es la primera lectura válida. Llama ainitializeStepCounterBaseline()para establecer la línea base inicial y emitir 0 pasos.Detección de Reinicio del Sensor: Si
totalStepsFromSensores menor quelastSensorTotalSteps, se sospecha un reinicio del sensor. Llama ainitializeStepCounterBaseline()para reiniciar la línea base con el nuevo valor más bajo, reiniciando efectivamente el conteo de la sesión desde este nuevo punto, pero preservando la idea de pasos de "sesión".Actualizar Último Total Conocido: Almacena
totalStepsFromSensorenlastSensorTotalStepspara la siguiente comparación.Verificación de Listo para Emitir: Asegura que
readyToEmitStepssea verdadero. Esta bandera es establecida porinitializeStepCounterBaseliney previene la emisión de valores intermedios si ocurre un reinicio inmediatamente después de la inicialización.Calcular Pasos de la Sesión: Calcula
currentSessionStepscomo