Files
UniversalTestSoftware/client/script/parse/DigitalParser.java

51 lines
1.5 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.cbsd.client.parse;
import com.cbsd.client.parse.IParseDataInterface;
public class DigitalParser implements IParseDataInterface {
@Override
public String parsePhysicalFromData(int sn, byte[] sourceData, byte[] fieldData, String endian, String binStr) {
StringBuilder result = new StringBuilder();
if (fieldData.length == 1) {
byte b = fieldData[0];
String binary = byteToBinary(b);
for (int i = 0; i < binary.length(); i++) {
result.append("通道-");
result.append(i);
if (binary.charAt(i) == '1') {
result.append(" 高电平");
} else {
result.append(" 低电平");
}
result.append(",");
}
result.deleteCharAt(result.lastIndexOf(","));
}
return result.toString();
}
@Override
public String comment() {
return "数字信号解析";
}
/**
* 将byte转换为8位二进制字符串
*
* @param b 要转换的byte值
* @return 8位二进制字符串
*/
public static String byteToBinary(byte b) {
// 将byte转换为无符号整数避免符号位扩展
int unsignedByte = b & 0xFF;
// 转换为二进制字符串
String binary = Integer.toBinaryString(unsignedByte);
// 确保结果是8位不足的在前面补0
while (binary.length() < 8) {
binary = "0" + binary;
}
return binary;
}
}