From 06d8587c46b4e60eaaf311749c1aa7adf6d2ea83 Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Wed, 4 Sep 2024 09:17:08 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E7=94=B5=E5=8D=95=E8=BD=A6=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/jsowell/common/YouDianUtils.java | 14 ++++++++++++++ .../jsowell/common/enums/ebike/EBikeTypeEnum.java | 6 ++++++ .../java/com/jsowell/common/util/BytesUtil.java | 8 ++++---- .../domain/ebike/serversend/EBikeMessageCmd82.java | 2 +- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/jsowell-common/src/main/java/com/jsowell/common/YouDianUtils.java b/jsowell-common/src/main/java/com/jsowell/common/YouDianUtils.java index 5607d7090..6fa10883b 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/YouDianUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/YouDianUtils.java @@ -1,5 +1,7 @@ package com.jsowell.common; +import com.google.common.primitives.Bytes; +import com.jsowell.common.enums.ebike.EBikeTypeEnum; import com.jsowell.common.util.BytesUtil; import lombok.extern.slf4j.Slf4j; @@ -88,6 +90,18 @@ public class YouDianUtils { return BytesUtil.intToBytesLittle(calculatedChecksum); } + /** + * 获取物理IDbyte数组 + * @param deviceNumber + * @return + */ + public static byte[] getPhysicalIdBytes(int deviceNumber) { + byte[] physicalIdBytes = BytesUtil.intToBytes(deviceNumber, 3); + // 拼接识别码, 12路插座 + byte[] concat = Bytes.concat(EBikeTypeEnum.socket_12way.getBytes(), physicalIdBytes); + return BytesUtil.reverse(concat); + } + // public static String convertPortNumberToHex(int portNumber) { // if (portNumber < 1 || portNumber > 16) { // throw new IllegalArgumentException("Port number must be between 1 and 16."); diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/ebike/EBikeTypeEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/ebike/EBikeTypeEnum.java index 9fedf909e..3cfb31705 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/ebike/EBikeTypeEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/ebike/EBikeTypeEnum.java @@ -1,5 +1,7 @@ package com.jsowell.common.enums.ebike; +import com.jsowell.common.util.BytesUtil; + public enum EBikeTypeEnum { socket_1way(0x03, "单路插座"), @@ -23,6 +25,10 @@ public enum EBikeTypeEnum { return desc; } + public byte[] getBytes() { + return BytesUtil.intToBytesLittle(value, 1); + } + EBikeTypeEnum(int value, String desc) { this.value = value; this.desc = desc; diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/BytesUtil.java b/jsowell-common/src/main/java/com/jsowell/common/util/BytesUtil.java index 307285fbc..e9322b2ef 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/BytesUtil.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/BytesUtil.java @@ -372,7 +372,7 @@ public class BytesUtil { */ public static byte[] str2BcdLittle(String asc) { byte[] temp = str2Bcd(asc); - return revert(temp); + return reverse(temp); } public static void main(String[] args) { @@ -494,7 +494,7 @@ public class BytesUtil { * @return */ public static String ascii2StrLittle(byte[] ascs) { - byte[] data = revert(ascs); + byte[] data = reverse(ascs); String asciiStr = null; try { asciiStr = new String(data, "ISO8859-1"); @@ -526,7 +526,7 @@ public class BytesUtil { * @return */ public static byte[] str2AscLittle(String str) { - return revert(str2Asc(str)); + return reverse(str2Asc(str)); } /** @@ -550,7 +550,7 @@ public class BytesUtil { * @param temp * @return */ - public static byte[] revert(byte[] temp) { + public static byte[] reverse(byte[] temp) { byte[] ret = new byte[temp.length]; for (int i = 0; i < temp.length; i++) { ret[temp.length - i - 1] = temp[i]; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ebike/serversend/EBikeMessageCmd82.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ebike/serversend/EBikeMessageCmd82.java index aab97106e..155cb991f 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/ebike/serversend/EBikeMessageCmd82.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/ebike/serversend/EBikeMessageCmd82.java @@ -47,7 +47,7 @@ public class EBikeMessageCmd82 extends AbsEBikeMessage { // 包头 byte[] headerBytes = BytesUtil.stringToHexBytes(header, 3); // 物理ID - byte[] physicalIdBytes = BytesUtil.intToBytesLittle(physicalId, 4); + byte[] physicalIdBytes = YouDianUtils.getPhysicalIdBytes(physicalId); // 消息ID byte[] messageIdBytes = BytesUtil.intToBytesLittle(messageId, 2); // 命令