eae galera, seguinte, to precisando usar o modulo TC65 da siemens para me comunicar com um dispositivo com baudrate 9600, para isso eu estou usando o código abaixo:
package src;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.microedition.io.CommConnection;
import javax.microedition.io.Connector;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import com.siemens.icm.io.ATCommandFailedException;
public class Teste extends MIDlet {
public ComandoAT atc;
public InputStream in;
public OutputStream out;
CommConnection con;
Arquivo arq;
/**
* Construtor
* Abre conexão com a porta serial
*/
public Teste() {
System.out.println("\nConstrutor");
try {
atc = new ComandoAT(false);
System.out.println("\nTry");
con = (CommConnection) Connector.open("comm:com0;blocking=off;baudrate=9600;autorts=off;autocts=off");
int baudrate = con.getBaudRate();
System.out.println("Baudrate com0: " + baudrate);
out = con.openOutputStream();
in = con.openInputStream();
//in = atc.getDataInputStream();
} catch (IOException e) {
System.out.println(e);
} catch (ATCommandFailedException e) {
System.out.println(e);
}
}
/**
* Método principal da aplicação.
* Primeiro a ser executado quando a aplicação é iniciada.
*/
public void startApp() throws MIDletStateChangeException {
System.out.println("\nstartApp\n");
System.out.println(resposta);
//Seta 8 data bits, sem bit paridade e stop bit 1
resposta = atc.send("AT+ICF=3","ERROR: AT+ICF",false);
System.out.println(resposta);
//Seta controle de fluxo XON/XOFF
resposta = atc.send("AT\\Q0", "ERROR: AT\\Q1", false);
System.out.println(resposta);
//Seta o baudrate para 9600
//resposta = atc.send("AT+IPR=9600", "ERROR: AT+IPR", false);
//System.out.println(resposta);
int rcv = 0;
try {
arq = new Arquivo("file:///a:/teste.txt");
System.out.println("arquivo pronto");
out.write(new String("status").getBytes());
System.out.println("status enviado");
String input = "";
while(rcv != -1){
//if(in.available() > 0){
rcv = in.read();
//rcv++;
if(rcv >= 0){
input = input + (char)rcv;
System.out.println(input);
if((char)rcv == '\r'){
rcv = -1;
}
}
//}
}
System.out.println("escrevendo em arquivo");
arq.esvreverArquivo(input);
System.out.println(arq.lerArquivo());
arq.fecharArquivo();
} catch (IOException e1) {
System.out.println(e1);
}
destroyApp(true);
}
/**
* Método chamado quando a aplicação tem de ser temporariamente pausada.
*/
public void pauseApp() {
System.out.println("\npauseApp()\n");
}
/**
* Método chamado quando a aplicação é finalizada.
* Aqui deve ser destruido tudo que não pode ser levado pelo garbage collector.
*/
public void destroyApp(boolean unconditional) {
System.out.println("\ndestroyApp(" + unconditional + ")\n");
try {
con.close();
in.close();
out.close();
} catch (IOException e) {
System.out.println(e);
}
notifyDestroyed();
}
}
eu consigo enviar o comando pela serial, mas eu nao recebo nenhuma resposta e quando eu conecto o pc direto pela serial com o dispositivo e mando o mesmo comando eu consigo a resposta
alguem pode me ajudar ae???
vlws



