Separar cadena en varias en Java.

Estoy leyendo en un PC datos por el puerto serie, un ejemplo de tramas recibidas, seria el siguiente:


"123\n345\n678\n75"


"3\n222\n112"


El problema que estoy teniendo, es con esos datos partidos, en el ejemplo un dato enviado seria el 753, y con el codigo que adjunto tendria dos datos, el 75 y el 3.

El problema esta en esos datos que quedan partidos, que quiero que estén en uno solo. ¿Como lo podria hacer?

En el ejemplo tengo copiado el codigo dos veces, logicamente eso es un bucle, en el que se actualiza la variable 'datos', con tamaños distintos segun llegan datos por el puerto.

Gracias por todo.
 

Adjuntos

  • HolaMundo.rar
    510 bytes · Visitas: 3
Edito: Leyendo tu código y tu post con calma, me parece que es un problema del buffer.
Me parece que debes de enviar un terminador de trama y no analizar la cadena hasta que llegue.
 
Última edición:
Edito: Leyendo tu código y tu post con calma, me parece que es un problema del buffer.
Me parece que debes de enviar un terminador de trama y no analizar la cadena hasta que llegue.


Al PC le están llegando continuamente datos, se almacenan en el buffer, y cuando el PC le dedica tiempo a leerlos, los lee. Pero eso es aleatorio, unas tramas leidas pueden ser mas largas que otras.

El microcontrolador que envia los datos, los separa con un salto de linea, y los envia en decimal. Por ejemplo, si quiero enviar el numero 123 en decimal, me envia: el caracter ASCII del 1, el del 2, el del 3, y el salto de linea.

El problema es que el PC puede empezar a leer por ejemplo cuando el 3 y el salto no han llegado, entonces me guardará por un lado una cadena con el 12, y otra con el 3.

Saludos.
 
La idea es representar los datos segun van llegando, por eso no quiero poner un terminador de trama.

Una trama completa puede tardar de 1 a 10 segundos, y me gustaría utilizar los datos segun llegan.

Saludos.
 
Atrás
Arriba