ah bueno ya entendi mas, eso significa que si se puede hacer. lo mas seguro es que el problema sea por el android, lo malo de android estudio es que hay muchas formas de hacer lo mismo y es dificil hacer que sea eficiente, tendriamos que obserbar si hay alguna forma para aumentarle la prioridad al bluetooth y a la aplicacion para que tenga mas procesador y asi pueda recibir todos los datos sin ningun problema.
este es el codigo que llebo hasta ahora, te agradeceria mucho si me pudieras sugerir algunas tecnicas para mejorar el rendimiento.
esto es el codigo para recibir los datos del bluetot:
public class Listenner extends Thread {
public Listenner() {
InputStream = new DataInputStream(InStream);
}
@Override
public void run() {
android.os.Message mensaje;
while (!this.isInterrupted()) //se ejecuta mientras la task no sea aya intenrrumpido
{
bytes = 0;
try {
if(InStream.available() > 0) { //si hay datos disponibles
bytes = InStream.read(buffer); //leemos la cantidad de datos disponibles en el bluetot
mensaje = ListennerHandler.obtainMessage(AVAILABLE_DATA, -1, -1); //mandamos el mensaje atravez del handler de mensajes
ListennerHandler.sendMessageAtFrontOfQueue(mensaje); //lo ponemos al frente para que lo lea mas rapido
}
} catch (IOException e) {
e.printStackTrace();
Log.w("salio mal", e.getMessage());
break;
}
try{
Thread.sleep(10); //dormimos la rutina por 10 milisegundos para liberar el procesador
}catch(InterruptedException ie){Log.w("error al dormir", ie.getMessage()); }
}
}
}
este es el codigo para leer el handler y mostrar los datos en la pantalla
Bluetooth_ListennerHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
if (msg.what == Bluetooth.AVAILABLE_DATA) { // si el mensaje nos los mando el listener del bluetott
tempBuffer = BytetoInt(Bluetooth.getData()); //almacenamos los datos en un bufer temporal
chart.AddSetofData(tempBuffer, Bluetooth.getAvailableData(), 0.1f); //graficamos los datos en la pantalla
} else {
super.handleMessage(msg); //le consedemos el manejo al handler principal
}
};
};
bueno. el problema es que hasta ahora lo maximo que he logrado son recibir mil bytes por segundo, si le aumento el numero de bytes que envio con el hc-05 al android, entonces pasa que se pierden datos o salen repetidos.
muchas gracias por ayudarme, te lo agradesco mucho.