lipxx
Agosto 18, 2012, 11:46am
#1
Boa tarde malta, estou com um grande problema, tenho uma aplicaçao para comunicar com uma placa ligada via lan.
para lhe enviar uma mensagem tenho que lhe enviar este codigo hexadecimal
4C 20 00 05 00 01 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 78 0F 1E 08 00 00 00 00 84 10 A1 18
00 00 00 00 84 10 A1 28 00 00 00 00 84 10 A1 08 00 00 00 00 84 10 A1 08
00 00 00 00 84 10 A1 08 00 00 00 00 84 10 A1 08 00 00 00 00 84 10 A1 08
00 00 00 00 84 10 A1 08 00 00 00 00 78 8F 1E 08 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 03 44
e eu consegui fazer por este metodo:
byte[] arrayBytes = new byte[134];
arrayBytes[0]= 0x4C;
arrayBytes[1]= 0x20;
arrayBytes[2]= 0x00;
arrayBytes[3]= 0x05;
arrayBytes[4]= 0x00;
…
arrayBytes[132]= 0x03;
arrayBytes[133]= 0x44;
//enviando o codigo
int porta = 8378;
Socket socket = new Socket(“192.168.0.30”, porta);
socket.getOutputStream().write(arrayBytes);
socket.getOutputStream().flush();
mas o que eu realmente queria era colocar o hexadecimal num ficheiro de texto, ler o ficheiro converter para array de bytes e depois enviar. alguem me podia dar uma luz? ja tenho tudo a funcionar so falta esta parte. ajudem pf
Amigo… essa parte é facil… tinha até postado no outro tópico!
O código abaixo mostra como converter de uma string para um array de bytes.
public static void main(String[] args) {
byte[] arrayBytes = parseHexBinary(getBytesString());
System.out.println(printHexBinary(arrayBytes));
}
public static String getBytesString() {
String byteStr = "";
byteStr += "4C 20 00 03 01 01 01 01 00 00 5B 00 78 00 00 00 3F B0 00 ";
byteStr += "00 00 00 00 00 20 88 DD 03 01 00 00 00 5C F9 7A 01 DF 75 ";
byteStr += "57 00 EF 0F 20 00 00 00 00 00 D8 F9 7A 01 3F B0 00 00 02 ";
byteStr += "88 DD 03 3F B0 00 00 00 00 00 00 9E 38 59 00 3F B0 00 00 ";
byteStr += "00 00 00 00 20 88 DD 03 00 00 00 00 88 F9 7A 01 E7 C4 A2 ";
byteStr += "76 E6 08 0B 00 3F B0 00 00 00 00 00 00 20 88 DD 03 3F B0 ";
byteStr += "00 00 CD AB BA DC 00 00 00 00 D8 F9 7A 01 3F B0 00 00 C7 ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 04 01 01 00 01 01 00 00 00 08 10 01 00 00 00 00 ";
byteStr += "00 70 00 00 00 FF FF FF FF FF FF FF FF 90 C5 A2 76 41 C6 ";
byteStr += "A2 76 84 40 30 B0 01 00 00 00 00 00 00 00 00 00 00 00 78 ";
byteStr += "F8 7A 01 D8 F8 7A 01 F0 F9 7A 01 9B 62 A7 76 64 43 E8 C7 ";
byteStr += "FE FF FF FF FE C5 A2 76 31 1B A2 76 00 00 00 00 EF 0F 02 ";
byteStr += "00 E6 08 0B 00 3F B0 00 00 00 00 00 00 20 88 DD 03 00 00 ";
byteStr += "00 00 00 00 00 00 D8 F9 7A 01 4C F9 7A 01 24 F9 7A 01 58 ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 05 00 00 00 00 0A 00 10 00 10 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2A ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 05 00 01 00 00 06 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 3E 20 00 10 00 48 00 00 00 00 00 00 00 00 00 00 41 00 ";
byteStr += "00 10 00 40 00 00 00 00 02 00 00 80 00 00 41 00 00 10 00 ";
byteStr += "40 00 00 00 00 02 00 00 80 00 00 40 25 86 91 C0 49 61 C0 ";
byteStr += "00 00 07 1C 45 C0 00 00 38 26 49 92 20 49 92 20 00 00 0F ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 05 00 01 01 00 06 00 02 22 28 80 00 00 06 24 48 ";
byteStr += "92 20 49 12 20 00 00 02 22 28 80 00 00 01 24 48 93 E0 49 ";
byteStr += "13 E0 00 00 02 3E 10 80 00 00 41 24 48 92 00 49 12 00 00 ";
byteStr += "00 02 20 28 80 00 00 41 24 49 92 20 49 12 20 00 00 02 22 ";
byteStr += "28 80 00 00 3E 24 46 91 C0 49 11 C0 00 00 03 1C 44 C0 00 ";
byteStr += "00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "08 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 8C ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 05 00 01 02 00 06 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 12 20 00 00 02 22 28 80 00 00 01 24 48 93 E0 49 ";
byteStr += "13 E0 00 00 02 3E 10 80 00 00 41 24 48 92 00 49 12 00 00 ";
byteStr += "00 02 20 28 80 00 00 41 24 49 92 20 49 12 20 00 00 02 22 ";
byteStr += "28 80 00 00 3E 24 46 91 C0 49 11 C0 00 00 03 1C 44 C0 00 ";
byteStr += "00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "08 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 52 ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 05 00 01 03 00 06 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 3E 20 00 10 00 48 00 00 00 00 00 00 00 00 00 00 41 00 ";
byteStr += "00 10 00 40 00 00 00 00 02 00 00 80 00 00 41 00 00 10 00 ";
byteStr += "40 00 00 00 00 02 00 00 80 00 00 40 25 86 91 C0 49 61 C0 ";
byteStr += "00 00 07 1C 45 C0 00 00 38 26 49 92 20 49 92 20 00 00 12 ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 05 00 01 04 00 06 00 02 22 28 80 00 00 06 24 48 ";
byteStr += "92 20 49 12 20 00 00 02 22 28 80 00 00 01 24 48 93 E0 49 ";
byteStr += "13 E0 00 00 02 3E 10 80 00 00 41 24 48 92 00 49 12 00 00 ";
byteStr += "00 02 20 28 80 00 00 41 24 49 92 20 49 12 20 00 00 02 22 ";
byteStr += "28 80 00 00 3E 24 46 91 C0 49 11 C0 00 00 03 1C 44 C0 00 ";
byteStr += "00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "08 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 8F ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 05 00 01 05 00 06 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "00 00 00 12 20 00 00 02 22 28 80 00 00 01 24 48 93 E0 49 ";
byteStr += "13 E0 00 00 02 3E 10 80 00 00 41 24 48 92 00 49 12 00 00 ";
byteStr += "00 02 20 28 80 00 00 41 24 49 92 20 49 12 20 00 00 02 22 ";
byteStr += "28 80 00 00 3E 24 46 91 C0 49 11 C0 00 00 03 1C 44 C0 00 ";
byteStr += "00 00 00 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ";
byteStr += "08 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 00 55 ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44 ";
byteStr += "4C 20 00 06 01 01 00 01 01 00 00 00 08 10 01 00 00 00 00 ";
byteStr += "00 70 00 00 00 FF FF FF FF FF FF FF FF 90 C5 A2 76 41 C6 ";
byteStr += "A2 76 84 40 30 B0 01 00 00 00 00 00 00 00 00 00 00 00 78 ";
byteStr += "F8 7A 01 D8 F8 7A 01 F0 F9 7A 01 9B 62 A7 76 64 43 E8 C7 ";
byteStr += "FE FF FF FF FE C5 A2 76 31 1B A2 76 00 00 00 00 EF 0F 02 ";
byteStr += "00 E6 08 0B 00 3F B0 00 00 00 00 00 00 20 88 DD 03 00 00 ";
byteStr += "00 00 00 00 00 00 D8 F9 7A 01 4C F9 7A 01 24 F9 7A 01 58 ";
byteStr += "44 0D ";
byteStr += "4C 59 45 53 44";
byteStr = byteStr.replaceAll("\\s", "");
return byteStr;
}
public static byte[] parseHexBinary(String s) {
final int len = s.length();
// "111" is not a valid hex encoding.
if( len%2 != 0 )
throw new IllegalArgumentException("hexBinary needs to be even-length: "+s);
byte[] out = new byte[len/2];
for( int i=0; i<len; i+=2 ) {
int h = hexToBin(s.charAt(i ));
int l = hexToBin(s.charAt(i+1));
if( h==-1 || l==-1 )
throw new IllegalArgumentException("contains illegal character for hexBinary: "+s);
out[i/2] = (byte)(h*16+l);
}
return out;
}
private static int hexToBin( char ch ) {
if( '0'<=ch && ch<='9' ) return ch-'0';
if( 'A'<=ch && ch<='F' ) return ch-'A'+10;
if( 'a'<=ch && ch<='f' ) return ch-'a'+10;
return -1;
}
private static final char[] hexCode = "0123456789ABCDEF".toCharArray();
public static String printHexBinary(byte[] data) {
StringBuilder r = new StringBuilder(data.length*2);
for ( byte b : data) {
r.append(hexCode[(b >> 4) & 0xF]);
r.append(hexCode[(b & 0xF)]);
}
return r.toString();
}
Agora para ter a String, basta ler de um arquivo texto comum.
Veja este artigo:
http://www.guj.com.br/articles/13
Basta ler tudo em um string e usar as rotinas de conversão (que por sinal peguei da net).
Hoje tou sem tempo de consolidar tudo em um arquivo fonte… mas acredito que você consiga fazer numa boa!