From 85b0ee4bae215560010d0e6d0641705923a1aaa3 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期五, 03 十一月 2023 10:42:53 +0800 Subject: [PATCH] 优化工具类 --- src/main/java/com/ard/utils/tcp/ClientHandler.java | 3 +-- src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java | 2 +- src/main/java/com/ard/utils/other/ByteUtils.java | 42 ++++++++++++++++++++---------------------- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java b/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java index 7deea3e..aea22b1 100644 --- a/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java +++ b/src/main/java/com/ard/utils/hiksdk/service/impl/FMSGCallBack.java @@ -48,7 +48,7 @@ @Override public boolean invoke(int lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) { SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String sDeviceIP = ByteUtils.bytesToStringZh(pAlarmer.sDeviceIP);//璁惧IP鍦板潃 + String sDeviceIP = ByteUtils.bytesToStringZh(pAlarmer.sDeviceIP).trim();//璁惧IP鍦板潃 Integer wLinkPort = Integer.valueOf(pAlarmer.wLinkPort);//璁惧閫氳绔彛 CameraEventInfo info; String sTime;//浜嬩欢鏃堕棿 diff --git a/src/main/java/com/ard/utils/other/ByteUtils.java b/src/main/java/com/ard/utils/other/ByteUtils.java index f89e0e9..bda4b8c 100644 --- a/src/main/java/com/ard/utils/other/ByteUtils.java +++ b/src/main/java/com/ard/utils/other/ByteUtils.java @@ -5,7 +5,10 @@ import java.io.UnsupportedEncodingException; import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.nio.charset.StandardCharsets; import java.util.zip.CRC32; + +import static oracle.security.pki.util.SignatureAlgorithms.i; /** * @Description: 瀛楄妭宸ュ叿绫� @@ -27,20 +30,13 @@ * byte鏁扮粍杞腑鏂囧瓧绗︿覆 */ public static String bytesToStringZh(byte[] bytes) { - String zhStr = ""; + ByteBuffer buffer = ByteBuffer.wrap(bytes); // byteArray 鏄寘鍚瓧鑺傛暟缁勭殑鍙橀噺 try { - int position = ByteUtils.findIndexOfDoubleZero(bytes); - if (position != -1) { - byte[] result = new byte[position]; - System.arraycopy(bytes, 0, result, 0, position); - zhStr = new String(result, "GBK"); - } else { - zhStr = new String(bytes, "GBK"); - } + return new String(buffer.array(), "GBK"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } - return zhStr; + return ""; } /** @@ -71,19 +67,18 @@ * byte鏁扮粍杞暣鍨� */ public static int bytesToDecimal(byte[] byteArray) { - int decimalValue = 0; - for (int i = 0; i < byteArray.length; i++) { - decimalValue = (decimalValue << 8) | (byteArray[i] & 0xFF); - } - return decimalValue; + ByteBuffer buffer = ByteBuffer.wrap(byteArray); // byteArray 鏄寘鍚瓧鑺傛暟缁勭殑鍙橀噺 + return buffer.getInt(); } + /** * byte鏁扮粍杞珼ouble */ public static double bytesToDouble(byte[] byteArray) { - // 鍒涘缓涓�涓狟yteBuffer骞惰缃瓧鑺傞『搴忎负澶х + // 鍒涘缓涓�涓狟yteBuffer ByteBuffer buffer = ByteBuffer.wrap(byteArray); + //璁剧疆瀛楄妭椤哄簭涓哄ぇ绔� buffer.order(ByteOrder.LITTLE_ENDIAN); // 浠嶣yteBuffer涓幏鍙杁ouble鍊� double doubleValue = buffer.getDouble(); @@ -124,17 +119,19 @@ return buffer.array(); } + /** * double杞琤yte鏁扮粍 */ public static byte[] doubleToBytes(double d) { - long value = Double.doubleToRawLongBits(d); - byte[] byteRet = new byte[8]; - for (int i = 0; i < 8; i++) { - byteRet[i] = (byte) ((value >> 8 * i) & 0xff); - } - return byteRet; + // 鍒涘缓涓�涓� ByteBuffer锛屽垎閰嶈冻澶熺殑绌洪棿鏉ュ瓨鍌ㄤ竴涓� float 鍊� + ByteBuffer buffer = ByteBuffer.allocate(Double.BYTES); + // 灏� float 鍊煎啓鍏� ByteBuffer + buffer.putDouble(d); + // 鑾峰彇瀛楄妭鏁扮粍 + return buffer.array(); } + /** * float杞琤yte鏁扮粍 */ @@ -146,6 +143,7 @@ // 鑾峰彇瀛楄妭鏁扮粍 return buffer.array(); } + /** * byte鏁扮粍鎷兼帴 */ diff --git a/src/main/java/com/ard/utils/tcp/ClientHandler.java b/src/main/java/com/ard/utils/tcp/ClientHandler.java index be814de..15258ce 100644 --- a/src/main/java/com/ard/utils/tcp/ClientHandler.java +++ b/src/main/java/com/ard/utils/tcp/ClientHandler.java @@ -464,11 +464,10 @@ float ty= ByteUtils.bytesToFloat(fTy); log.debug("淇话:" + ty); Map<String,Object>forceGuideMap=new HashMap<>(); - forceGuideMap.put("distance",distance); forceGuideMap.put("p",tx); forceGuideMap.put("t",ty); + forceGuideMap.put("z",1); forceGuideMap.put("radarId",radarId); - forceGuideMap.put("radarName",radarName); //endregion MqttProducer.publish(2, false, "radarForceGuide", JSON.toJSONString(forceGuideMap)); } -- Gitblit v1.9.3