1、添加SJJ1418相关的一些结构体。2、添加SJJ1418指令相关的部分xml文件。3、添加SJJ1418接口的实现类。

This commit is contained in:
zhoubin
2022-03-10 16:43:29 +08:00
parent c320566d9c
commit 3636ce7b5d
22 changed files with 2150 additions and 0 deletions
@@ -0,0 +1,61 @@
package com.sunyard.util;
public class DataUtil {
/**
* 遍历数组,查找值为0的下标的位置
* @param data 数组
* @param start 开始的位置
* @param end 结束的位置
* @return
*/
public static int getIndex(byte[] data, int start, int end) {
int index = 0;
for (int i = start; i < end; i++) {
if (data[i] == 0) {
index = i;
break;
}
}
return index;
}
/**
* 将data转为int类型
* @param data byte数组
* @return
*/
public static int byteToInt4(byte[] data) {
return byteToInt4(data, 0);
}
/**
* 计算data从start位置开始后4位转为int类型。
* @param data byte数组
* @param start 起始位置
* @return
*/
public static int byteToInt4(byte[] data, int start) {
// &0xff将byte值无差异转成int,避免Java自动类型提升后,会保留高位的符号位
int v0 = (data[start] & 0xff) << 24;
int v1 = (data[start + 1] & 0xff) << 16;
int v2 = (data[start + 2] & 0xff) << 8;
int v3 = (data[start + 3] & 0xff) ;
return v0 + v1 + v2 + v3;
}
/**
* 从data中以start为起始位置拷贝len长度的值
* @param data byte数组
* @param start 起始位置
* @param len 截取长度
* @return
*/
public static byte[] catFromArr(byte[] data, int start, int len) {
byte[] rData = new byte[len];
System.arraycopy(data, start, rData, 0, len);
return rData;
}
}