Ayuda con MIDlet CommConnections

edparker
21 de Enero del 2006
Hola a todos!!!

Alguien me podr铆a ayudar proporcionandome un ejemplo o informaci贸n de como hacer un MIDlet J2ME que utilice la clase CommConections y que se env铆e datos por el puerto serial de un dispositivo m贸vil.

El MIDlet que estoy programando, estoy tratando de que tenga estas caracter铆sticas:

baudrate: 9600
bitsperchar: 8
stopbits: 2
parity: ninguna

Este MIDlet me servir谩 de mucho ya que estoy haciendo el prototipo de control inal谩mbrico para el robot m贸vil Koala de k-team utilizando mi Dell Axim x30.


Gracias por su ayuda!!!

Hasta pronto!!!!

Armando M
21 de Enero del 2006
Hola yo ando en las mismas q tu, pero yo ya cuento con una clase que abre el puerto serial de un equipo y envia los datos a otro dispositvo y funciona bien te pongo unas lineas de codigo abajo para q te des una idea de como funciona. Por cierto aprovechando yo estoy teniendo un problema cuando abro la conexion serial y no recibo ningun dato esta conexion no se cierra por si sola y bloque mi aplicacion por completo ya q el puerto serial continua esperando algun dato del otro dispositovo Se te ocurre alguna forma de hacerlo??
class PuertoSerial
{
public boolean open() {// throws IOException, Exception {
System.out.println("Open Method");
String parameter = "comm:0;baudrate=115200;parity=n;databits=8;stopbits=1;flowcontrol=n/n";
try {

sc = (StreamConnection)Connector.open(parameter, Connector.READ_WRITE, false);

} catch (Exception e) {

return(false);
}

return(true);
}

public boolean close() {

try {
if(sc != null){
sc.close();
sc = null;
return (true);
}
} catch (Exception e) {

return (false);
}

return (false);
}


public String descargaCodigo() throws IOException, Exception{

OutputStream os = null;
InputStream is = null;
int ch, i;
String dato = "";
String no_serie = "";
int exitvar = 0;


try{
os = this.sc.openOutputStream();
i = 0;

os.write((char)68);//D Comando para decargar los codigos de barra
os.write((char)13);//cr Comando de retorno de carro

is = this.sc.openInputStream();

do{

ch = is.read(); //Se toma el caracter que arroja el escaner
dato = dato + (char)ch;

if( ch == 6 ){ //ACK indica que el escaner ya no tiene datos en memoria
dato = "";
exitvar = 1;
//break;

}if( ch == 21){//NAK el escaner no ha recibido ningun dato de confirmacion por parte del host
dato = "";
exitvar = 1;
//break;

}if( ch <= 0 || ch >= 123){//NAK el escaner no ha recibido ningun dato de confirmacion por parte del host
dato = "";
exitvar = 1;
//break;

}if( ch == 13 ){//CR indica que se ha enviado un codigo de barras

no_serie = dato.substring( dato.length() - 5, dato.length() - 1 ); //Este dato se debe enviar al escaner para que borre el codigo que ha enviado de su memoria
//t.sleep(100);
String x = confirmaNoSerie(no_serie); //y envie el siguiente codigo en caso de tenerlo
dato = dato.substring(1, dato.length() - 5 );
//t = null;
exitvar = 1;
//return dato;
}

//}while( ( ch != 13) && ( ch != 6 ) && ( exitvar != 1 ));
}while( ( exitvar != 1 ) );

}finally{

if(os != null){
os.close();
os = null;
}
if(is != null){
is.close();
is = null;
}
}

return dato;
}
}


max
21 de Enero del 2006
HELP ME......podrias ayudarme enviandome el ejemplo completo...no encuentro mucho material de apoyo con la puerta serial.

tecpa
21 de Enero del 2006
As铆 es, puedes hacer que se cierre en un timer cada 20 segundos o a la inversa que lea en el timer cada x segundos y en seguida se cierre, encuentre o no encuentre nada.