Olá.
Estou desenvoilvendo um programa pra enviar comandos para o controlador de um robô aqui no lab. O controlador funciona com porta serial, e código ASCII. Primeiramente, estou tentando controlar os comandos mas simples, como posicionar os motores.
Este comando é escrito da seguinte forma : “B+150\r”, Onde B é a identificação do motor, o sinal é a direção, e o valor numérico é a contagem de enconder. O /r é o terminador, (Código 13 de ASCII).
Já trabalhei com porta serial antes, então achei que não seria problema. O programa está pronto, e funciona perfeitamente quando comunica com outro computador.
O problema é que o controlador não faz nada quando envio estes comandos. Percebi então que o Java utiliza códigos Unicode e não ASCII, e cacei uma solução.
Tentei tudo que achei no santo Google e aqui no GUJ, mas nada deu certo. Eu sei que tudo aqui está funcionando, pois quando envio os comandos pela porta no matlab, tudo funciona.
Alguém tem uma ideia de como fazer isso ?
Aqui estão as tentativas que eu fiz mais não deram resultador.
método charAt() com e sem cast de int, com e sem cast de byte:
String comando = "B+150\r";
for(i=0;i<comando.length();i++){
saidaSerial.write((int) comando.charAt(i));
}
enviar a letra separada como char, e o resto como inteiro:
[code]
saidaSerial.wite('B');
saidaSerial.write('+');
saidaSerialwrite(150);
saidaSerial.write(13);
[/code]
Além de tentar várias ‘mixagens’ entre esses códigos. Estou sem idéias, e desde ontem não achei uma outra solução, então venho pedir ajuda a alguém que já passou por isso, ou saiba como resolver?
Ah mais uma coisa, Esse controlador é bem antigo, tem uns 20-25 anos, então poderia ser alguma diferença no código ASCII ?