Foros del Web » Programación para mayores de 30 ;) » Java »

tratamiento datos puerto serie

Estas en el tema de tratamiento datos puerto serie en el foro de Java en Foros del Web. Buenos días: Estoy recibiendo un string de datos por el puerto serie con el siguiente formato x:0.000g ;y:0.000g ;z:0.000g Para recibir los datos uso la ...
  #1 (permalink)  
Antiguo 15/02/2014, 02:57
 
Fecha de Ingreso: diciembre-2011
Ubicación: Ourense España
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
tratamiento datos puerto serie

Buenos días:
Estoy recibiendo un string de datos por el puerto serie con el siguiente formato
x:0.000g ;y:0.000g ;z:0.000g

Para recibir los datos uso la clase giovynet.

Hasta ahí todo correcto. va leyendo la cadena hasta encontrar un salto de linea e imprime la siguiente.

El tema es que no soy capaz de pasar estos datos a un array para luego tratarlos de forma individual es decir

x:0.000g un bloque
y:0.000g otro bloque
z:0.000g otro bloque

tener en cuenta que puede haber recepción de datos negativos quedando
x:-0.000g
y:-0.000g
z:-0.000g

Os dejo el trozo de codigo para la recepcion de datos

public class LeerSerie {
private String caracter;

public void LeerSerie() throws Exception{
SerialPort puerto = new SerialPort();
List<String> listaPuertos;
Com com3;
String otraCadena;
String [] datos;
listaPuertos = puerto.getFreeSerialPort();

Parameters settings =new Parameters();
settings.setPort("COM3");
settings.setBaudRate(Baud._57600);
com3 = new Com(settings);

while (caracter !="\t"){
caracter=com3.receiveSingleString();

System.out.print(caracter);
}
}
}

muchas gracias de antelacion por vuestra ayuda
  #2 (permalink)  
Antiguo 15/02/2014, 14:45
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 9
Respuesta: tratamiento datos puerto serie

En tu cadena cada bloque esta separado por " ; " si vas recorriendo los caracteres (y formando la String) hasta que encuentres uno, y al encontrar uno agregas la String en tu ArrayList y sigues con el siguiente.
  #3 (permalink)  
Antiguo 16/02/2014, 00:54
 
Fecha de Ingreso: diciembre-2011
Ubicación: Ourense España
Mensajes: 10
Antigüedad: 13 años
Puntos: 0
Respuesta: tratamiento datos puerto serie

Buenos días,
Como voy generando un String de los datos que recibo.
Gracias por la respuesta
  #4 (permalink)  
Antiguo 16/02/2014, 09:42
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 9
Respuesta: tratamiento datos puerto serie

Algo como esto ?

Código Java:
Ver original
  1. import java.util.ArrayList;
  2.  
  3. public class NewClass {
  4.  
  5.     String miCadena, temporal;
  6.     char a;
  7.     ArrayList<String> cadena;
  8.  
  9.     public NewClass() {
  10.         miCadena = "x:0.000g ;y:0.000g ;z:0.000g\nx:-0.000g ;y:-0.000g ;z:-0.000g";
  11.         temporal = "";
  12.         System.out.println(miCadena);
  13.         cadena = new ArrayList<>();
  14.     }
  15.  
  16.     public void crearCadenas() {
  17.         for (int i = 0; i < miCadena.length(); i++) {
  18.             a = miCadena.charAt(i);
  19.             if (a == ';' || a == '\n') {
  20.                 cadena.add(temporal);
  21.                 temporal = "";
  22.             } else {
  23.                 temporal += a;
  24.             }
  25.         }
  26.         cadena.add(temporal);
  27.     }
  28.  
  29.     public void imprimir() {
  30.         for (int i = 0; i < cadena.size(); i++) {
  31.             System.out.println(cadena.get(i));
  32.         }
  33.     }
  34. }

Etiquetas: clase, puerto, serie, string, tratamiento
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:26.