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); // 命令