[RESOLVIDO]Erro na comunicação com porta serial RXTXComm

1 resposta
A

Olá pessoal,

Preciso de ajuda para estabelecer uma comunicação serial com um hardware externo.

Estou usando o RXTXComm num maquina Windows 64 bits.

Primeiro deixa eu explicar como o proprietário explica o funcionamento da comunicação.

- Primeiro enviar uma mensagem "?".
- O disposto responde "".

- Depois enviar "3c 44 61 74 61 6c 6f 67 67 65 72 3e 01 00"
- O dispositivo manda varias informações.
- Quando não tiver mais dados a enviar ele envia um ""

O primeiro passo eu estou realizando com sucesso o segundo não.

O proprietário me recomendou usar um software chamado "hercules_3-2-8" para comunicação serial, neste software tudo funciona, o único detalhe é que eu preciso enviar a primeira string normal e a segunda em hexadecimal.

Abaixo segue o meu código
try {

				StringBuffer buffer = new StringBuffer();
				outputStream.write("<Datalogger>?".getBytes());
				System.out.println("enviei 1>> '<Datalogger>?'");
				buffer = new StringBuffer();
				while ( inputStream.available() > 0 ) {
					buffer.append(new String(new byte[] {(byte) inputStream.read()}));
				}
				System.out.println(buffer.toString());
				Thread.sleep(1000);
				outputStream.flush();
			
				outputStream.write("3c446174616c6f676765723e 01 00".getBytes());
				
				buffer = new StringBuffer();
				while ( inputStream.available() > 0 ) {
					buffer.append(new String(new byte[] {(byte) inputStream.read()}));
				}
				System.out.println(buffer.toString());
				outputStream.flush();
				System.out.println("eu já li");


		} catch (Exception e) {
			e.printStackTrace();
		}
[code]

1 Resposta

A

Pessoal, apenas para ficar registrado, resolvi o problema.

Para enviar a informação corretamente precisei transformar tudo em binário. O código ficou assim:

byte[] data = new byte[] {(byte)0x3c, (byte)0x44, (byte)0x61, (byte)0x74, (byte)0x61, (byte)0x6c, (byte)0x6f, (byte)0x67, (byte)0x67, (byte)0x65, (byte)0x72, (byte)0x3e, (byte)indice_pagina, (byte)00};
outputStream.write(data);
Criado 14 de março de 2015
Ultima resposta 22 de mar. de 2015
Respostas 1
Participantes 1