diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 8d2250a..99560bb 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -47,9 +47,7 @@ .build(); - - - public synchronized static String startVolMapCache() { + public synchronized static String startVolMapCache() { String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); @@ -101,161 +99,142 @@ return msgs; } - public static void main(String[] args) { + public static void main(String[] args) { - String msg="f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - - msg="0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055aa55aa8dfccf1a4e0000002331363337362c31363337362c31363337362c31363337362c31363337362c31363337362c3234342c32303030302c322c3130302c31363338332c302c323030302355aa55aa4dfccf1a2c000000f0f0a5a50300001102000c081b00700000000000df63650092810300e3d50000"; - -// msg="55aa55aa8dfccf1a4e0000002331363337362c31363337362c31363337362c31363337362c31363337362c31363337362c3234342c32303030302c322c3130302c31363338332c302c323030302355aa55aa4dfccf1a4c000000f0f0a5a50300001102000b081b00700000000000933b7100e47d0300a8d20000f0f0a5a50300001102000b081b00700000000000127c88003d810300a6d50000"; -// int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, 24)), 16); + String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; + msg="55aa55aa4dfccf1a2c000000"; + msg="22"; + String[] arr =msg.split(InstructCode.PSD1_HEAD); + System.out.println(arr); + } -// msg="55aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000b5560c00597f0300f6d3000055aa55aa4dfccf1a6c000000f0f0a5a50300001102000a081b007000000000005e8623007480030019d50000f0f0a5a50300001102000b081b0070000000000055083c006b7d030023d20000f0f0a5a50300001102000b081b007000000000007d3d3c00196103008fb7000055aa55aa5dfccf1a540000000000000000000000000000000000000000000000df2e000000000000000000000000000000000000000000000000000000000000e02e00000000000000000000000000000000000055aa55aa10fccf1a0c200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + //解析PSD数据 + public static void processPSD(String msgT) { -// msg="55aa55aa4dfccf1a2c000000"; + String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); + for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ + msg=InstructCode.PSD1_HEAD+msg; + } + if(ObjectUtil.isNotEmpty(msg)){ + // 1、处理 PSD数据 + if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { - -// -// String[] msgArr = msg.split(InstructCode.PSD1_HEAD); -// if(msgArr.length>2){ -// for(int i=1;i= 24) { -//// log.info("原始msg--->"+msg); -// int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, -// msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); -// if (msg.length() >= totalLength * 2) { -// -// for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { -// String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); -// if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { -// String gateOff = msgi.substring(16, 20); -// String baseline = msgi.substring(20, 24); -// String shortGate = msgi.substring(24, 28); -// String longGate = msgi.substring(28, 32); -// String qlong = msgi.substring(48, 56); -// String qshort = msgi.substring(56, 64); -// //toDo:算法计算 -// System.out.println("gateOff--->" + gateOff + -// "baseline--->" + baseline + -// "shortGate--->" + shortGate + -// "longGate--->" + longGate + -// "qlong--->" + qlong + -// "qshort--->" + qshort); -// } -// } -// } -// } - - } - - - public static void proccessData(String msg){ - //拆包处理 PSD数据 - if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { - - if (msg.length() >= 24) { + if (msg.length() >= 24) { // log.info("原始msg--->"+msg); - int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, - msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); - if (msg.length() >= totalLength * 2) { - PSD_FLAG = false; - for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { - String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); - if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { - String gateOff = msgi.substring(16, 20); - String baseline = msgi.substring(20, 24); - String shortGate = msgi.substring(24, 28); - String longGate = msgi.substring(28, 32); - String qlong = msgi.substring(48, 56); - String qshort = msgi.substring(56, 64); - //toDo:算法计算 - log.info("gateOff--->" + gateOff + - "baseline--->" + baseline + - "shortGate--->" + shortGate + - "longGate--->" + longGate + - "qlong--->" + qlong + - "qshort--->" + qshort); - } - } - } else { - //2.缺psd数据存入缓存处理 - PSD_FLAG = true; - PSD_I++; - CacheUtils.PSD_MAP.put(PSD_I, msg); + int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, + msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); + if (msg.length() >= totalLength * 2) { + PSD_FLAG = false; + for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { + String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); + if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { + String gateOff = msgi.substring(16, 20); + String baseline = msgi.substring(20, 24); + String shortGate = msgi.substring(24, 28); + String longGate = msgi.substring(28, 32); + String qlong = msgi.substring(48, 56); + String qshort = msgi.substring(56, 64); + //toDo:算法计算 + log.info("gateOff--->" + gateOff + + "baseline--->" + baseline + + "shortGate--->" + shortGate + + "longGate--->" + longGate + + "qlong--->" + qlong + + "qshort--->" + qshort); + } + } + } else { + //2.缺psd数据存入缓存处理 + PSD_FLAG = true; + PSD_I++; + CacheUtils.PSD_MAP.put(PSD_I, msg); // log.info("psd加入数据:" + PSD_I + "------->" + msg); - } - } - } else if (PSD_FLAG) { - PSD_I++; - CacheUtils.PSD_MAP.put(PSD_I, msg); - String str = startPsdMapCache(); + } + } + } else if (PSD_FLAG) { + PSD_I++; + CacheUtils.PSD_MAP.put(PSD_I, msg); + String str = startPsdMapCache(); // log.info("分包psd加入数据:" + PSD_I + "------->" + msg); - if (ObjectUtil.isNotEmpty(str) && str.length() >= 24) { + if (ObjectUtil.isNotEmpty(str) && str.length() >= 24) { // log.info("**************strpsd---->" + str); - if (str.indexOf(InstructCode.PSD1_HEAD) != -1 && str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16).length() >= 8) { - int totalLength = Integer.parseInt(ByteUtil.reverseHex(str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16, - str.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); - if (str.length() >= totalLength * 2) { - for (int i = 0; i < (str.length() - (str.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { - String msgi = str.substring((str.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (str.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); - if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { - String gateOff = msgi.substring(16, 20); - String baseline = msgi.substring(20, 24); - String shortGate = msgi.substring(24, 28); - String longGate = msgi.substring(28, 32); - String qlong = msgi.substring(48, 56); - String qshort = msgi.substring(56, 64); - //toDo:算法计算 - log.info("分包:gateOff--->" + gateOff + - "baseline--->" + baseline + - "shortGate--->" + shortGate + - "longGate--->" + longGate + - "qlong--->" + qlong + - "qshort--->" + qshort); - } - } - } - } - } - } - //拆包处理 电压数据 - if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { - //完整包处理 - if (msg.length() >= (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { - VOL_FLAG = false; - msg = msg.substring(msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); - String[] volArr = InstructCode.getVolArr(msg); - //本设备只用到第6通道 - String vol6 = volArr[5]; - log.info("第6通道电压值-------->" + vol6); - } else { - //分包处理,先放到缓存 - VOL_FLAG = true; - VOL_I++; - CacheUtils.VOL_MAP.put(VOL_I, msg); - } - } else if (VOL_FLAG) { - VOL_I++; - CacheUtils.VOL_MAP.put(VOL_I, msg); - String str = startVolMapCache(); - if (ObjectUtil.isNotEmpty(str) && - str.length() >= (str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { - VOL_FLAG = false; - str = str.substring(str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); - String[] volArr = InstructCode.getVolArr(str); - //本设备只用到第6通道 - String vol6 = volArr[5]; - log.info("分包第6通道电压值-------->" + vol6); - } - } + if (str.indexOf(InstructCode.PSD1_HEAD) != -1 && str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16).length() >= 8) { + int totalLength = Integer.parseInt(ByteUtil.reverseHex(str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16, + str.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); + if (str.length() >= totalLength * 2) { + for (int i = 0; i < (str.length() - (str.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { + String msgi = str.substring((str.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (str.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); + if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { + String gateOff = msgi.substring(16, 20); + String baseline = msgi.substring(20, 24); + String shortGate = msgi.substring(24, 28); + String longGate = msgi.substring(28, 32); + String qlong = msgi.substring(48, 56); + String qshort = msgi.substring(56, 64); + //toDo:算法计算 + log.info("分包:gateOff--->" + gateOff + + "baseline--->" + baseline + + "shortGate--->" + shortGate + + "longGate--->" + longGate + + "qlong--->" + qlong + + "qshort--->" + qshort); + } + } + } + } + } + } + } + } - } + } + + //解析电压数据 + public static void processVOL(String msg) { + //2、处理 电压数据 + if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { + //完整包处理 + if (msg.length() >= (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { + VOL_FLAG = false; + msg = msg.substring(msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); + String[] volArr = InstructCode.getVolArr(msg); + //本设备只用到第6通道 + String vol6 = volArr[5]; + log.info("第6通道电压值-------->" + vol6); + } else { + //分包处理,先放到缓存 + VOL_FLAG = true; + VOL_I++; + CacheUtils.VOL_MAP.put(VOL_I, msg); + } + } else if (VOL_FLAG) { + VOL_I++; + CacheUtils.VOL_MAP.put(VOL_I, msg); + String str = startVolMapCache(); + if (ObjectUtil.isNotEmpty(str) && + str.length() >= (str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { + VOL_FLAG = false; + str = str.substring(str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); + String[] volArr = InstructCode.getVolArr(str); + //本设备只用到第6通道 + String vol6 = volArr[5]; + log.info("分包第6通道电压值-------->" + vol6); + } + } + } + + + public static void processData(String msg) { + + //解析PSD数据 + processPSD(msg); + + //解析电压数据 + processVOL(msg); + + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 8d2250a..99560bb 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -47,9 +47,7 @@ .build(); - - - public synchronized static String startVolMapCache() { + public synchronized static String startVolMapCache() { String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); @@ -101,161 +99,142 @@ return msgs; } - public static void main(String[] args) { + public static void main(String[] args) { - String msg="f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - - msg="0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055aa55aa8dfccf1a4e0000002331363337362c31363337362c31363337362c31363337362c31363337362c31363337362c3234342c32303030302c322c3130302c31363338332c302c323030302355aa55aa4dfccf1a2c000000f0f0a5a50300001102000c081b00700000000000df63650092810300e3d50000"; - -// msg="55aa55aa8dfccf1a4e0000002331363337362c31363337362c31363337362c31363337362c31363337362c31363337362c3234342c32303030302c322c3130302c31363338332c302c323030302355aa55aa4dfccf1a4c000000f0f0a5a50300001102000b081b00700000000000933b7100e47d0300a8d20000f0f0a5a50300001102000b081b00700000000000127c88003d810300a6d50000"; -// int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, 24)), 16); + String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; + msg="55aa55aa4dfccf1a2c000000"; + msg="22"; + String[] arr =msg.split(InstructCode.PSD1_HEAD); + System.out.println(arr); + } -// msg="55aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000b5560c00597f0300f6d3000055aa55aa4dfccf1a6c000000f0f0a5a50300001102000a081b007000000000005e8623007480030019d50000f0f0a5a50300001102000b081b0070000000000055083c006b7d030023d20000f0f0a5a50300001102000b081b007000000000007d3d3c00196103008fb7000055aa55aa5dfccf1a540000000000000000000000000000000000000000000000df2e000000000000000000000000000000000000000000000000000000000000e02e00000000000000000000000000000000000055aa55aa10fccf1a0c200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + //解析PSD数据 + public static void processPSD(String msgT) { -// msg="55aa55aa4dfccf1a2c000000"; + String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); + for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ + msg=InstructCode.PSD1_HEAD+msg; + } + if(ObjectUtil.isNotEmpty(msg)){ + // 1、处理 PSD数据 + if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { - -// -// String[] msgArr = msg.split(InstructCode.PSD1_HEAD); -// if(msgArr.length>2){ -// for(int i=1;i= 24) { -//// log.info("原始msg--->"+msg); -// int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, -// msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); -// if (msg.length() >= totalLength * 2) { -// -// for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { -// String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); -// if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { -// String gateOff = msgi.substring(16, 20); -// String baseline = msgi.substring(20, 24); -// String shortGate = msgi.substring(24, 28); -// String longGate = msgi.substring(28, 32); -// String qlong = msgi.substring(48, 56); -// String qshort = msgi.substring(56, 64); -// //toDo:算法计算 -// System.out.println("gateOff--->" + gateOff + -// "baseline--->" + baseline + -// "shortGate--->" + shortGate + -// "longGate--->" + longGate + -// "qlong--->" + qlong + -// "qshort--->" + qshort); -// } -// } -// } -// } - - } - - - public static void proccessData(String msg){ - //拆包处理 PSD数据 - if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { - - if (msg.length() >= 24) { + if (msg.length() >= 24) { // log.info("原始msg--->"+msg); - int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, - msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); - if (msg.length() >= totalLength * 2) { - PSD_FLAG = false; - for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { - String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); - if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { - String gateOff = msgi.substring(16, 20); - String baseline = msgi.substring(20, 24); - String shortGate = msgi.substring(24, 28); - String longGate = msgi.substring(28, 32); - String qlong = msgi.substring(48, 56); - String qshort = msgi.substring(56, 64); - //toDo:算法计算 - log.info("gateOff--->" + gateOff + - "baseline--->" + baseline + - "shortGate--->" + shortGate + - "longGate--->" + longGate + - "qlong--->" + qlong + - "qshort--->" + qshort); - } - } - } else { - //2.缺psd数据存入缓存处理 - PSD_FLAG = true; - PSD_I++; - CacheUtils.PSD_MAP.put(PSD_I, msg); + int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, + msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); + if (msg.length() >= totalLength * 2) { + PSD_FLAG = false; + for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { + String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); + if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { + String gateOff = msgi.substring(16, 20); + String baseline = msgi.substring(20, 24); + String shortGate = msgi.substring(24, 28); + String longGate = msgi.substring(28, 32); + String qlong = msgi.substring(48, 56); + String qshort = msgi.substring(56, 64); + //toDo:算法计算 + log.info("gateOff--->" + gateOff + + "baseline--->" + baseline + + "shortGate--->" + shortGate + + "longGate--->" + longGate + + "qlong--->" + qlong + + "qshort--->" + qshort); + } + } + } else { + //2.缺psd数据存入缓存处理 + PSD_FLAG = true; + PSD_I++; + CacheUtils.PSD_MAP.put(PSD_I, msg); // log.info("psd加入数据:" + PSD_I + "------->" + msg); - } - } - } else if (PSD_FLAG) { - PSD_I++; - CacheUtils.PSD_MAP.put(PSD_I, msg); - String str = startPsdMapCache(); + } + } + } else if (PSD_FLAG) { + PSD_I++; + CacheUtils.PSD_MAP.put(PSD_I, msg); + String str = startPsdMapCache(); // log.info("分包psd加入数据:" + PSD_I + "------->" + msg); - if (ObjectUtil.isNotEmpty(str) && str.length() >= 24) { + if (ObjectUtil.isNotEmpty(str) && str.length() >= 24) { // log.info("**************strpsd---->" + str); - if (str.indexOf(InstructCode.PSD1_HEAD) != -1 && str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16).length() >= 8) { - int totalLength = Integer.parseInt(ByteUtil.reverseHex(str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16, - str.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); - if (str.length() >= totalLength * 2) { - for (int i = 0; i < (str.length() - (str.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { - String msgi = str.substring((str.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (str.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); - if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { - String gateOff = msgi.substring(16, 20); - String baseline = msgi.substring(20, 24); - String shortGate = msgi.substring(24, 28); - String longGate = msgi.substring(28, 32); - String qlong = msgi.substring(48, 56); - String qshort = msgi.substring(56, 64); - //toDo:算法计算 - log.info("分包:gateOff--->" + gateOff + - "baseline--->" + baseline + - "shortGate--->" + shortGate + - "longGate--->" + longGate + - "qlong--->" + qlong + - "qshort--->" + qshort); - } - } - } - } - } - } - //拆包处理 电压数据 - if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { - //完整包处理 - if (msg.length() >= (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { - VOL_FLAG = false; - msg = msg.substring(msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); - String[] volArr = InstructCode.getVolArr(msg); - //本设备只用到第6通道 - String vol6 = volArr[5]; - log.info("第6通道电压值-------->" + vol6); - } else { - //分包处理,先放到缓存 - VOL_FLAG = true; - VOL_I++; - CacheUtils.VOL_MAP.put(VOL_I, msg); - } - } else if (VOL_FLAG) { - VOL_I++; - CacheUtils.VOL_MAP.put(VOL_I, msg); - String str = startVolMapCache(); - if (ObjectUtil.isNotEmpty(str) && - str.length() >= (str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { - VOL_FLAG = false; - str = str.substring(str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); - String[] volArr = InstructCode.getVolArr(str); - //本设备只用到第6通道 - String vol6 = volArr[5]; - log.info("分包第6通道电压值-------->" + vol6); - } - } + if (str.indexOf(InstructCode.PSD1_HEAD) != -1 && str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16).length() >= 8) { + int totalLength = Integer.parseInt(ByteUtil.reverseHex(str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16, + str.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); + if (str.length() >= totalLength * 2) { + for (int i = 0; i < (str.length() - (str.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { + String msgi = str.substring((str.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (str.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); + if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { + String gateOff = msgi.substring(16, 20); + String baseline = msgi.substring(20, 24); + String shortGate = msgi.substring(24, 28); + String longGate = msgi.substring(28, 32); + String qlong = msgi.substring(48, 56); + String qshort = msgi.substring(56, 64); + //toDo:算法计算 + log.info("分包:gateOff--->" + gateOff + + "baseline--->" + baseline + + "shortGate--->" + shortGate + + "longGate--->" + longGate + + "qlong--->" + qlong + + "qshort--->" + qshort); + } + } + } + } + } + } + } + } - } + } + + //解析电压数据 + public static void processVOL(String msg) { + //2、处理 电压数据 + if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { + //完整包处理 + if (msg.length() >= (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { + VOL_FLAG = false; + msg = msg.substring(msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); + String[] volArr = InstructCode.getVolArr(msg); + //本设备只用到第6通道 + String vol6 = volArr[5]; + log.info("第6通道电压值-------->" + vol6); + } else { + //分包处理,先放到缓存 + VOL_FLAG = true; + VOL_I++; + CacheUtils.VOL_MAP.put(VOL_I, msg); + } + } else if (VOL_FLAG) { + VOL_I++; + CacheUtils.VOL_MAP.put(VOL_I, msg); + String str = startVolMapCache(); + if (ObjectUtil.isNotEmpty(str) && + str.length() >= (str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { + VOL_FLAG = false; + str = str.substring(str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); + String[] volArr = InstructCode.getVolArr(str); + //本设备只用到第6通道 + String vol6 = volArr[5]; + log.info("分包第6通道电压值-------->" + vol6); + } + } + } + + + public static void processData(String msg) { + + //解析PSD数据 + processPSD(msg); + + //解析电压数据 + processVOL(msg); + + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index 3626e51..e1932d1 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -46,7 +46,15 @@ }); mChannelFuture = b.connect(host, port).addListener(future -> { - log.info(String.format("客户端启动成功,并监听端口:%s ", port)); + if (future.isSuccess()) + log.info(String.format("客户端启动成功,并监听端口:%s ", port)); + log.info(String.format("客户端启动失败,并监听端口:%s ", port)); + }); + mChannelFuture.channel().closeFuture().addListener(new ChannelFutureListener() { + public void operationComplete(ChannelFuture future) throws Exception { + //重连服务端 + startClient("192.168.1.50", 52002); + } }); } catch (Exception e) { log.error("启动 netty 客户端出现异常", e); @@ -55,6 +63,7 @@ /** * 客户端通过 Channel 对象向服务器端发送数据 + * * @param data 文本数据 */ public void send(String data) { diff --git a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java index 8d2250a..99560bb 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/CacheUtils.java @@ -47,9 +47,7 @@ .build(); - - - public synchronized static String startVolMapCache() { + public synchronized static String startVolMapCache() { String msgs = ""; if (CacheUtils.VOL_MAP.size() > 1) { Set keys = CacheUtils.VOL_MAP.keySet(); @@ -101,161 +99,142 @@ return msgs; } - public static void main(String[] args) { + public static void main(String[] args) { - String msg="f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; - - msg="0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055aa55aa8dfccf1a4e0000002331363337362c31363337362c31363337362c31363337362c31363337362c31363337362c3234342c32303030302c322c3130302c31363338332c302c323030302355aa55aa4dfccf1a2c000000f0f0a5a50300001102000c081b00700000000000df63650092810300e3d50000"; - -// msg="55aa55aa8dfccf1a4e0000002331363337362c31363337362c31363337362c31363337362c31363337362c31363337362c3234342c32303030302c322c3130302c31363338332c302c323030302355aa55aa4dfccf1a4c000000f0f0a5a50300001102000b081b00700000000000933b7100e47d0300a8d20000f0f0a5a50300001102000b081b00700000000000127c88003d810300a6d50000"; -// int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, 24)), 16); + String msg = "f0f0a5a50300001102000c081b0070000000000059f372000d81030058d50000f0f0a5a50300001102000b081b0070000000000012c7a900bd7e03006ed3000055aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000aa0b2e001080030084d40000"; + msg="55aa55aa4dfccf1a2c000000"; + msg="22"; + String[] arr =msg.split(InstructCode.PSD1_HEAD); + System.out.println(arr); + } -// msg="55aa55aa4dfccf1a2c000000f0f0a5a50300001102000b081b00700000000000b5560c00597f0300f6d3000055aa55aa4dfccf1a6c000000f0f0a5a50300001102000a081b007000000000005e8623007480030019d50000f0f0a5a50300001102000b081b0070000000000055083c006b7d030023d20000f0f0a5a50300001102000b081b007000000000007d3d3c00196103008fb7000055aa55aa5dfccf1a540000000000000000000000000000000000000000000000df2e000000000000000000000000000000000000000000000000000000000000e02e00000000000000000000000000000000000055aa55aa10fccf1a0c200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; + //解析PSD数据 + public static void processPSD(String msgT) { -// msg="55aa55aa4dfccf1a2c000000"; + String[] msgArr = msgT.split(InstructCode.PSD1_HEAD); + for(int j=0;j1&&ObjectUtil.isNotEmpty(msgArr[j])&&j>0){ + msg=InstructCode.PSD1_HEAD+msg; + } + if(ObjectUtil.isNotEmpty(msg)){ + // 1、处理 PSD数据 + if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { - -// -// String[] msgArr = msg.split(InstructCode.PSD1_HEAD); -// if(msgArr.length>2){ -// for(int i=1;i= 24) { -//// log.info("原始msg--->"+msg); -// int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, -// msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); -// if (msg.length() >= totalLength * 2) { -// -// for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { -// String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); -// if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { -// String gateOff = msgi.substring(16, 20); -// String baseline = msgi.substring(20, 24); -// String shortGate = msgi.substring(24, 28); -// String longGate = msgi.substring(28, 32); -// String qlong = msgi.substring(48, 56); -// String qshort = msgi.substring(56, 64); -// //toDo:算法计算 -// System.out.println("gateOff--->" + gateOff + -// "baseline--->" + baseline + -// "shortGate--->" + shortGate + -// "longGate--->" + longGate + -// "qlong--->" + qlong + -// "qshort--->" + qshort); -// } -// } -// } -// } - - } - - - public static void proccessData(String msg){ - //拆包处理 PSD数据 - if (msg.indexOf(InstructCode.PSD1_HEAD) != -1) { - - if (msg.length() >= 24) { + if (msg.length() >= 24) { // log.info("原始msg--->"+msg); - int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, - msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); - if (msg.length() >= totalLength * 2) { - PSD_FLAG = false; - for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { - String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); - if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { - String gateOff = msgi.substring(16, 20); - String baseline = msgi.substring(20, 24); - String shortGate = msgi.substring(24, 28); - String longGate = msgi.substring(28, 32); - String qlong = msgi.substring(48, 56); - String qshort = msgi.substring(56, 64); - //toDo:算法计算 - log.info("gateOff--->" + gateOff + - "baseline--->" + baseline + - "shortGate--->" + shortGate + - "longGate--->" + longGate + - "qlong--->" + qlong + - "qshort--->" + qshort); - } - } - } else { - //2.缺psd数据存入缓存处理 - PSD_FLAG = true; - PSD_I++; - CacheUtils.PSD_MAP.put(PSD_I, msg); + int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, + msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); + if (msg.length() >= totalLength * 2) { + PSD_FLAG = false; + for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { + String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); + if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { + String gateOff = msgi.substring(16, 20); + String baseline = msgi.substring(20, 24); + String shortGate = msgi.substring(24, 28); + String longGate = msgi.substring(28, 32); + String qlong = msgi.substring(48, 56); + String qshort = msgi.substring(56, 64); + //toDo:算法计算 + log.info("gateOff--->" + gateOff + + "baseline--->" + baseline + + "shortGate--->" + shortGate + + "longGate--->" + longGate + + "qlong--->" + qlong + + "qshort--->" + qshort); + } + } + } else { + //2.缺psd数据存入缓存处理 + PSD_FLAG = true; + PSD_I++; + CacheUtils.PSD_MAP.put(PSD_I, msg); // log.info("psd加入数据:" + PSD_I + "------->" + msg); - } - } - } else if (PSD_FLAG) { - PSD_I++; - CacheUtils.PSD_MAP.put(PSD_I, msg); - String str = startPsdMapCache(); + } + } + } else if (PSD_FLAG) { + PSD_I++; + CacheUtils.PSD_MAP.put(PSD_I, msg); + String str = startPsdMapCache(); // log.info("分包psd加入数据:" + PSD_I + "------->" + msg); - if (ObjectUtil.isNotEmpty(str) && str.length() >= 24) { + if (ObjectUtil.isNotEmpty(str) && str.length() >= 24) { // log.info("**************strpsd---->" + str); - if (str.indexOf(InstructCode.PSD1_HEAD) != -1 && str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16).length() >= 8) { - int totalLength = Integer.parseInt(ByteUtil.reverseHex(str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16, - str.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); - if (str.length() >= totalLength * 2) { - for (int i = 0; i < (str.length() - (str.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { - String msgi = str.substring((str.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (str.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); - if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { - String gateOff = msgi.substring(16, 20); - String baseline = msgi.substring(20, 24); - String shortGate = msgi.substring(24, 28); - String longGate = msgi.substring(28, 32); - String qlong = msgi.substring(48, 56); - String qshort = msgi.substring(56, 64); - //toDo:算法计算 - log.info("分包:gateOff--->" + gateOff + - "baseline--->" + baseline + - "shortGate--->" + shortGate + - "longGate--->" + longGate + - "qlong--->" + qlong + - "qshort--->" + qshort); - } - } - } - } - } - } - //拆包处理 电压数据 - if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { - //完整包处理 - if (msg.length() >= (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { - VOL_FLAG = false; - msg = msg.substring(msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); - String[] volArr = InstructCode.getVolArr(msg); - //本设备只用到第6通道 - String vol6 = volArr[5]; - log.info("第6通道电压值-------->" + vol6); - } else { - //分包处理,先放到缓存 - VOL_FLAG = true; - VOL_I++; - CacheUtils.VOL_MAP.put(VOL_I, msg); - } - } else if (VOL_FLAG) { - VOL_I++; - CacheUtils.VOL_MAP.put(VOL_I, msg); - String str = startVolMapCache(); - if (ObjectUtil.isNotEmpty(str) && - str.length() >= (str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { - VOL_FLAG = false; - str = str.substring(str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); - String[] volArr = InstructCode.getVolArr(str); - //本设备只用到第6通道 - String vol6 = volArr[5]; - log.info("分包第6通道电压值-------->" + vol6); - } - } + if (str.indexOf(InstructCode.PSD1_HEAD) != -1 && str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16).length() >= 8) { + int totalLength = Integer.parseInt(ByteUtil.reverseHex(str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16, + str.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); + if (str.length() >= totalLength * 2) { + for (int i = 0; i < (str.length() - (str.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { + String msgi = str.substring((str.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (str.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); + if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { + String gateOff = msgi.substring(16, 20); + String baseline = msgi.substring(20, 24); + String shortGate = msgi.substring(24, 28); + String longGate = msgi.substring(28, 32); + String qlong = msgi.substring(48, 56); + String qshort = msgi.substring(56, 64); + //toDo:算法计算 + log.info("分包:gateOff--->" + gateOff + + "baseline--->" + baseline + + "shortGate--->" + shortGate + + "longGate--->" + longGate + + "qlong--->" + qlong + + "qshort--->" + qshort); + } + } + } + } + } + } + } + } - } + } + + //解析电压数据 + public static void processVOL(String msg) { + //2、处理 电压数据 + if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { + //完整包处理 + if (msg.length() >= (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { + VOL_FLAG = false; + msg = msg.substring(msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); + String[] volArr = InstructCode.getVolArr(msg); + //本设备只用到第6通道 + String vol6 = volArr[5]; + log.info("第6通道电压值-------->" + vol6); + } else { + //分包处理,先放到缓存 + VOL_FLAG = true; + VOL_I++; + CacheUtils.VOL_MAP.put(VOL_I, msg); + } + } else if (VOL_FLAG) { + VOL_I++; + CacheUtils.VOL_MAP.put(VOL_I, msg); + String str = startVolMapCache(); + if (ObjectUtil.isNotEmpty(str) && + str.length() >= (str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { + VOL_FLAG = false; + str = str.substring(str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); + String[] volArr = InstructCode.getVolArr(str); + //本设备只用到第6通道 + String vol6 = volArr[5]; + log.info("分包第6通道电压值-------->" + vol6); + } + } + } + + + public static void processData(String msg) { + + //解析PSD数据 + processPSD(msg); + + //解析电压数据 + processVOL(msg); + + } } \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java index 3626e51..e1932d1 100644 --- a/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java +++ b/casic-server/src/main/java/com/casic/missiles/netty/NettyClient.java @@ -46,7 +46,15 @@ }); mChannelFuture = b.connect(host, port).addListener(future -> { - log.info(String.format("客户端启动成功,并监听端口:%s ", port)); + if (future.isSuccess()) + log.info(String.format("客户端启动成功,并监听端口:%s ", port)); + log.info(String.format("客户端启动失败,并监听端口:%s ", port)); + }); + mChannelFuture.channel().closeFuture().addListener(new ChannelFutureListener() { + public void operationComplete(ChannelFuture future) throws Exception { + //重连服务端 + startClient("192.168.1.50", 52002); + } }); } catch (Exception e) { log.error("启动 netty 客户端出现异常", e); @@ -55,6 +63,7 @@ /** * 客户端通过 Channel 对象向服务器端发送数据 + * * @param data 文本数据 */ public void send(String data) { diff --git a/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java index 65eeee4..5d4428a 100644 --- a/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/neutron/service/impl/NeutronOptServiceImpl.java @@ -1,7 +1,5 @@ package com.casic.missiles.neutron.service.impl; -import cn.hutool.core.util.ObjectUtil; -import com.casic.missiles.netty.ByteUtil; import com.casic.missiles.netty.CacheUtils; import com.casic.missiles.netty.InstructCode; import com.casic.missiles.netty.NettyClient; @@ -36,124 +34,9 @@ } -// //电压数据分包计数 -// private volatile static int VOL_I = 0; -// private volatile static boolean VOL_FLAG = false; -// //PSD数据分包计数 -// private volatile static int PSD_I = 0; -// private volatile static boolean PSD_FLAG = false; - @Override public void analysis(String msg) { - String[] msgArr = msg.split(InstructCode.PSD1_HEAD); - if(msgArr.length>2){ - for(int i=1;i= 24) { -//// log.info("原始msg--->"+msg); -// int totalLength = Integer.parseInt(ByteUtil.reverseHex(msg.substring(msg.indexOf(InstructCode.PSD1_HEAD) + 16, -// msg.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); -// if (msg.length() >= totalLength * 2) { -// PSD_FLAG = false; -// for (int i = 0; i < (msg.length() - (msg.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { -// String msgi = msg.substring((msg.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (msg.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); -// if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { -// String gateOff = msgi.substring(16, 20); -// String baseline = msgi.substring(20, 24); -// String shortGate = msgi.substring(24, 28); -// String longGate = msgi.substring(28, 32); -// String qlong = msgi.substring(48, 56); -// String qshort = msgi.substring(56, 64); -// //toDo:算法计算 -// log.info("gateOff--->" + gateOff + -// "baseline--->" + baseline + -// "shortGate--->" + shortGate + -// "longGate--->" + longGate + -// "qlong--->" + qlong + -// "qshort--->" + qshort); -// } -// } -// } else { -// //2.缺psd数据存入缓存处理 -// PSD_FLAG = true; -// PSD_I++; -// CacheUtils.PSD_MAP.put(PSD_I, msg); -//// log.info("psd加入数据:" + PSD_I + "------->" + msg); -// } -// } -// } else if (PSD_FLAG) { -// PSD_I++; -// CacheUtils.PSD_MAP.put(PSD_I, msg); -// String str = CacheUtils.startPsdMapCache(); -//// log.info("分包psd加入数据:" + PSD_I + "------->" + msg); -// if (ObjectUtil.isNotEmpty(str) && str.length() >= 24) { -//// log.info("**************strpsd---->" + str); -// if (str.indexOf(InstructCode.PSD1_HEAD) != -1 && str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16).length() >= 8) { -// int totalLength = Integer.parseInt(ByteUtil.reverseHex(str.substring(str.indexOf(InstructCode.PSD1_HEAD) + 16, -// str.indexOf(InstructCode.PSD1_HEAD) + 24)), 16); -// if (str.length() >= totalLength * 2) { -// for (int i = 0; i < (str.length() - (str.indexOf(InstructCode.PSD1_HEAD) + 24)) / 64; i++) { -// String msgi = str.substring((str.indexOf(InstructCode.PSD1_HEAD) + 24) + i * 64, (str.indexOf(InstructCode.PSD1_HEAD) + 24) + (i + 1) * 64); -// if (msgi.indexOf(InstructCode.PSD2_HEAD) == 0) { -// String gateOff = msgi.substring(16, 20); -// String baseline = msgi.substring(20, 24); -// String shortGate = msgi.substring(24, 28); -// String longGate = msgi.substring(28, 32); -// String qlong = msgi.substring(48, 56); -// String qshort = msgi.substring(56, 64); -// //toDo:算法计算 -// log.info("分包:gateOff--->" + gateOff + -// "baseline--->" + baseline + -// "shortGate--->" + shortGate + -// "longGate--->" + longGate + -// "qlong--->" + qlong + -// "qshort--->" + qshort); -// } -// } -// } -// } -// } -// } -// //拆包处理 电压数据 -// if (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) != -1) { -// //完整包处理 -// if (msg.length() >= (msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { -// VOL_FLAG = false; -// msg = msg.substring(msg.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); -// String[] volArr = InstructCode.getVolArr(msg); -// //本设备只用到第6通道 -// String vol6 = volArr[5]; -// log.info("第6通道电压值-------->" + vol6); -// } else { -// //分包处理,先放到缓存 -// VOL_FLAG = true; -// VOL_I++; -// CacheUtils.VOL_MAP.put(VOL_I, msg); -// } -// } else if (VOL_FLAG) { -// VOL_I++; -// CacheUtils.VOL_MAP.put(VOL_I, msg); -// String str = CacheUtils.startVolMapCache(); -// if (ObjectUtil.isNotEmpty(str) && -// str.length() >= (str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24 + InstructCode.DAC_DATA_LENGTH)) { -// VOL_FLAG = false; -// str = str.substring(str.indexOf(InstructCode.DAC_HEAD + InstructCode.DAC_HEAD_LENGTH) + 24); -// String[] volArr = InstructCode.getVolArr(str); -// //本设备只用到第6通道 -// String vol6 = volArr[5]; -// log.info("分包第6通道电压值-------->" + vol6); -// } -// } - - + CacheUtils.processData(msg); } @Override