Browse Source

增加配置mac

master
lijunjie 3 years ago
parent
commit
fceae8f8d2
  1. 48
      src/main/java/com/ccsens/pelma_analyse/service/impl/SerialServiceImpl.java

48
src/main/java/com/ccsens/pelma_analyse/service/impl/SerialServiceImpl.java

@ -100,24 +100,39 @@ public class SerialServiceImpl implements SerialService {
System.out.println("配置band:680008900309A416"); System.out.println("配置band:680008900309A416");
break; break;
case 3: case 3:
//配置mac
SerialTool.sendToPort(SerialTool.HexString2Bytes("68000D9001616162626363EA16"), openSerial);
System.out.println("配置mac:68000D9001616162626363EA16");
break;
case 4:
//配置log
SerialTool.sendToPort(SerialTool.HexString2Bytes("680008900801A116"), openSerial);
System.out.println("配置log:680008900801A116");
break;
case 5:
//查询白名单 //查询白名单
SerialTool.sendToPort(SerialTool.HexString2Bytes("68000781038B16"), openSerial); SerialTool.sendToPort(SerialTool.HexString2Bytes("68000781038B16"), openSerial);
System.out.println("查询白名单"); System.out.println("查询白名单");
break; break;
case 4: case 6:
//将缺少的mac添加到白名单 //将缺少的mac添加到白名单
white_list.removeAll(query_white_list); white_list.removeAll(query_white_list);
if (white_list.size() > 0){ if (white_list.size() > 0){
add_while = white_list.get(0); add_while = white_list.get(0);
System.out.println(add_while);
int while_len = add_while.length() / 2 + 7; int while_len = add_while.length() / 2 + 7;
String while_len_zero_str = String.format("%4s", Integer.toHexString(while_len).toUpperCase()).replace(" ", "0"); String while_len_zero_str = String.format("%4s", Integer.toHexString(while_len).toUpperCase()).replace(" ", "0");
String add_while_str = while_len_zero_str + "'8101'" + add_while; String add_while_str = while_len_zero_str + "8101" + add_while;
String check_code = getCheckCode(add_while_str); String check_code = getCheckCode(add_while_str);
add_while_str = "68" + add_while_str + check_code + "16"; add_while_str = "68" + add_while_str + check_code + "16";
@ -126,7 +141,7 @@ public class SerialServiceImpl implements SerialService {
System.out.println("配置白名单:" + add_while_str); System.out.println("配置白名单:" + add_while_str);
} else { } else {
init_status = 5; init_status = 7;
} }
break; break;
@ -138,28 +153,27 @@ public class SerialServiceImpl implements SerialService {
String res_ack = joinData(openSerial); String res_ack = joinData(openSerial);
if (res_ack != null){ if (res_ack != null){
if (res_ack.equalsIgnoreCase(ack_success) && Arrays.asList(1, 2).contains(init_status)){ if (res_ack.equalsIgnoreCase(ack_success) && Arrays.asList(1, 2, 3, 4).contains(init_status)){
++init_status; ++init_status;
limit_time = start_time; limit_time = start_time;
} else if (init_status == 3){ } else if (init_status == 5){
//过滤白名单 //过滤白名单
String command = res_ack.substring(6, 10); String command = res_ack.substring(6, 10);
if (command.equalsIgnoreCase("2000") || command.equalsIgnoreCase("2006")){ if (command.equalsIgnoreCase("2000") || command.equalsIgnoreCase("2006")){
String white_list_str = res_ack.substring(10, (res_ack.length() - 4)); String white_list_str = res_ack.substring(10, (res_ack.length() - 4));
query_white_list = stringToStringArray(white_list_str, 12); query_white_list = stringToStringArray(white_list_str, 12);
++init_status; ++init_status;
limit_time = start_time; limit_time = start_time;
} }
} else if (res_ack.equalsIgnoreCase(ack_success) && init_status == 4){ } else if (res_ack.equalsIgnoreCase(ack_success) && init_status == 6){
query_white_list.add(add_while); query_white_list.add(add_while);
limit_time = start_time; limit_time = start_time;
} }
} }
if (init_status >= 5){ if (init_status >= 7){
break; break;
} }
} }
@ -176,15 +190,19 @@ public class SerialServiceImpl implements SerialService {
while (true){ while (true){
String res_ack = joinData(openSerial); String res_ack = joinData(openSerial);
if (res_ack != null ){ if (res_ack != null ){
if (res_ack.substring(6, 8).equalsIgnoreCase("05")){
String node = res_ack.substring(8, 20); String node = res_ack.substring(8, 20);
String send_data = res_ack.substring(28, 44); String send_data = res_ack.substring(28, 44);
try {
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
String url = pelma_url + "/storeBlood?node=" + node + "&data=" + send_data; String url = pelma_url + "/storeBlood?node=" + node + "&data=" + send_data;
restTemplate.getForEntity(url, String.class); restTemplate.getForEntity(url, String.class);
} catch (Exception e){
System.out.println(e.getMessage());
}
}
} }
Thread.sleep(1000);
} }
} }
@ -201,7 +219,6 @@ public class SerialServiceImpl implements SerialService {
bytes = SerialTool.readFromPort(openSerial); bytes = SerialTool.readFromPort(openSerial);
String join_str = ""; String join_str = "";
if (bytes != null){ if (bytes != null){
join_data = ArrayUtils.addAll(join_data, bytes); join_data = ArrayUtils.addAll(join_data, bytes);
@ -227,7 +244,8 @@ public class SerialServiceImpl implements SerialService {
} }
} }
} }
Thread.sleep(2000); //睡眠
Thread.sleep(1000);
return null; return null;
} }
@ -271,10 +289,10 @@ public class SerialServiceImpl implements SerialService {
public ArrayList stringToStringArray(String src, int length){ public ArrayList stringToStringArray(String src, int length){
// 检查参数是否合法 // 检查参数是否合法
if(null == src || src.equals("")){ if(null == src || src.equals("")){
return null; return new ArrayList<>();
} }
if(length <= 0){ if(length <= 0){
return null; return new ArrayList<>();
} }
// 获取整个字符串可以被切割成字符子串的个数 // 获取整个字符串可以被切割成字符子串的个数
int n = (src.length() + length - 1) / length; int n = (src.length() + length - 1) / length;

Loading…
Cancel
Save