Commit 89fdc440 authored by captainwong's avatar captainwong

update pack2

parent 21e2ec9d
......@@ -88,7 +88,8 @@ JNIEXPORT jstring JNICALL Java_javademo_jni_AdemcoHbLibrary_pack2
nullptr, static_cast<size_t>(ademco_id), static_cast<unsigned char>(gg),
static_cast<ademco::ADEMCO_EVENT>(ademco_event), static_cast<size_t>(zone), xdata_);
if (res > 0) {
buff[res] = 0;
auto ascii = ademco::detail::toString(buff, res, ademco::detail::ToStringOption::ALL_CHAR_AS_HEX, false, false);
memcpy(buff, ascii.data(), ascii.size());
return env->NewStringUTF(buff);
}
return 0;
......
......@@ -7,11 +7,31 @@ import java.util.regex.*;
public class SimpleServerThread extends Thread {
private Socket socket;
private AdemcoHbLibrary lib;
private long lastTimeStatusChange = 0;
public SimpleServerThread(Socket socket, AdemcoHbLibrary lib) {
this.socket = socket;
this.lib = lib;
}
/**
* 16进制表示的字符串转换为字节数组
*
* @param s 16进制表示的字符串
* @return byte[] 字节数组
*/
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] b = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
// 两位一组,表示一个字节,把这样表示的16进制字符串,还原成一个字节
b[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character
.digit(s.charAt(i + 1), 16));
}
return b;
}
public void run() {
try {
......@@ -74,6 +94,18 @@ public class SimpleServerThread extends Thread {
System.out.println("Found ademco_event: " + ademco_event);
System.out.println("Found gg: " + gg);
System.out.println("Found zone: " + zone);
if(ademco_event == 3400 || ademco_event == 1400){
long now = System.currentTimeMillis();
if(now - lastTimeStatusChange > 5000){
lastTimeStatusChange = now;
String cmd = lib.pack2(seq+1, ademco_id16, ademco_event == 3400 ? 1400 : 3400, gg, zone, "123456");
System.out.println("sending command:" + cmd);
byte[] data = hexStringToByteArray(cmd);
output.write(data);
output.flush();
}
}
}else{
System.out.println("r2 NO MATCH");
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment