TK06A GPS 추적기를 사용하고 있으며 자체 서버 자바 파일을 개발 중이며 TK06A 설명서에 따라 초기 로그인 메시지 패킷을 받았으며 이제는 ack GPS 메시지 패킷을 얻기 위해 장치에 연결합니다.메시지를 서버에서 GPS 장치로 보냅니다.
좌표를 저장하는 GPS 메시지 패킷이 표시되지 않습니다. 아래 코드를 추가합니다. 나는 LOC에서 IMEI 번호를 얻을 때까지 정확하고 출력 스트림/ACk를 보내는 데 문제가 있다고 확신합니다. 나는 여기에서 완전히 맞았다. 내가 어디로 잘못 가고 있는지 모르겠다.
친절히 도움!
public void run() {
DataInputStream inputS = null;
DataOutputStream dos = null;
try {
inputS = new DataInputStream(socket.getInputStream());
if (inputS.available() > 0) {
byte[] bb = getBytesFromInputStream(inputS);
ChannelBuffer buf = toByteBuffer(bb);
String imei = readImei(buf);
System.out.println("IMEI::::: " + imei);
buf.skipBytes(5); // End
OutputStream os = socket.getOutputStream();
dos = new DataOutputStream(os);
byte[] response = parseHex();
dos.write(response);
Thread.sleep(1000);
dos.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
inputS.close();
if (dos != null)
dos.close();
socket.close();
} catch (IOException e) {
}
}
}
public byte[] parseHex() {
String hexACKlogin = "787805010001D9DC0D0A"; // String in HEX format
int len = hexACKlogin.length();
byte[] data = new byte[len/2];
for (int i = 0; i < len; i += 2) {
data[i/2] = (byte) ((Character.digit(hexACKlogin.charAt(i), 16) << 4)
+ Character.digit(hexACKlogin.charAt(i+1), 16));
}
return data;
}
당신이 구현하는지 프로토콜 알려주세요. 그것이 없으면 우리는 당신을 도울 수 없을 것입니다. –
기본적으로 데이터 소켓에서 읽는 방법은 read 및 * Reader 대신 * Writer 클래스의 메서드를 사용하여이 데이터 소켓에 쓰는 방법이기도합니다. – laune
왜 태그가 달린 GPS입니까 ?? – laune