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

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

[code]
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][code]

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);