studio scanner recibir por libreria enviar dispositivos detectar datos android bluetooth serial-communication data-stream

scanner - recibir datos bluetooth android



Cómo transmitir datos de manera correcta a través de Bluetooth a Android (0)

Estoy en el proceso de desarrollar una aplicación que lea datos de un DAQ que transmite sus datos a través de Bluetooth. Los tamaños de paquete pueden cambiar, al igual que la velocidad de muestreo (1 Hz - 512 Hz), y puedo recorrer y leer los datos del dispositivo utilizando un búfer.

Mi pregunta es, ¿cómo proceso correctamente los datos cuando existe una variable de tamaño de paquete y velocidad de muestreo? ¿Cómo determino el tamaño del buffer?

Actualmente simplemente estoy abriendo un socket, abriendo un flujo de entrada, y luego usando un ciclo while (mientras el socket está abierto == verdadero) para leer de la transmisión y procesar los datos (simple decodificación, no una tarea extraña).

Como ejemplo, hay 23 bytes en un paquete, y tengo la tasa de muestreo muy baja en este momento a 1Hz. Tengo un búfer de 256 bytes, lo que significa que no alojará un paquete completo al final del búfer, y he escrito el código para que se ejecute en el siguiente búfer. Una vez que se leen los datos, tome un paquete del buffer, descifre y almacénelo, haga el siguiente, etc.

¿Cómo debería estar transmitiendo y manipular los datos correctamente? Eventualmente agarraré algo en la región de 44 paquetes a 512Hz, justo al límite de transferencia de Bluetooth, y quiero poder procesarlo de la manera más efectiva posible, y mostrar errores cuando se descarta un paquete en el proceso, etc.

TL; DR: ¿cómo puedo transmitir datos de forma correcta mediante búferes y / o interrupciones?