update 电单车协议

This commit is contained in:
Guoqs
2024-09-04 09:17:08 +08:00
parent 057f431cd7
commit 06d8587c46
4 changed files with 25 additions and 5 deletions

View File

@@ -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.");

View File

@@ -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;

View File

@@ -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];