1、添加SJJ1418相关的一些结构体。2、添加SJJ1418指令相关的部分xml文件。3、添加SJJ1418接口的实现类。
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user