lunes, 27 de julio de 2009

Como leer del puerto serie

Trabajando con J2ME tras un modem java de siemens, tenemos que leer por el puerto seria la inforamcion que nos mandaba un instrumento electrico, esta fue la manera que encontramos para poder leer efectivamente del puerto serie:

sbResult=new StringBuffer();

comando = desp.getNextCommand();

out.write(comando.getQuery("31").getBytes());
out.flush();

int inputChar;

do
{
inputChar= is.read();
if (inputChar!=-1)
sbResult.append((char) inputChar);
//miLog.INFO("de a uno:" + inputChar);
if(inputChar==3)
break;
}while (is.available()>0);

miLog.INFO( serviceName + " RESPUESTA : " + sbResult.toString());


Este metodo no me funciono del todo bien , ya que aveces se me corrian las lecturas, es por eso que haciendo pruebas lo cambie por el siguiente codigo.

do
{
inputChar= is.read();
if (inputChar!=-1)
sbResult.append((char) inputChar);
if(inputChar==3)
break;
// }while (is.available()>0);
}while (true);

miLog.INFO( serviceName + " RESPUESTA : " + sbResult.toString());


Despues de varias pruebas, tampoco pudimos hacer andar esta forma, finalmente encontramos esta forma que realmente no es muy linda, pero bueno ya estamos muy jugados con el tiempo, se probo y anda asi que asi quedo:



do
{

do
{
inputChar= is.read();
if (inputChar!=-1)
sbResult.append((char) inputChar);
if(inputChar==3)
break;
}while (is.available()>0);
if(inputChar==3)
break;
}while (true);

miLog.INFO( serviceName + " RESPUESTA DUCATI: " + sbResult.toString());

No hay comentarios:

Publicar un comentario