package jiexi;
|
|
import java.util.List;
|
|
public class HexData {
|
static PacketParser bufferManager = new PacketParser();
|
public static void DHEX(byte[] rawData,String ip,int port) {
|
bufferManager.appendData(rawData, rawData.length);
|
List<PacketParser.DataPacket> parsedPackets = bufferManager.parsePackets();
|
|
// 处理解析后的数据包
|
for (PacketParser.DataPacket p : parsedPackets) {
|
// 根据包头类型路由到不同解析器
|
switch (p.getPacketType()) {
|
case 0x01:
|
processType01(p,ip,port);break;
|
case 0x02:
|
processType02(p,ip,port);break;
|
case 0x12:
|
processType12(p,ip,port);break;
|
case 0x03:
|
processType03(p,ip,port);break;
|
default:
|
System.err.println("未知包类型: " + p.getPacketType());
|
}
|
}
|
}
|
// 示例解析方法(需根据实际协议实现)
|
private static void processType01(PacketParser.DataPacket packet,String ip,int port) {
|
String hexData = PacketParser.bytesToHexString(packet.getPacket());
|
Dell55AA01Parser.parse(hexData,ip,port);
|
}
|
|
private static void processType02(PacketParser.DataPacket packet,String ip,int port) {
|
String hexData = PacketParser.bytesToHexString(packet.getPacket());
|
Dell55AA02Parser.parse(hexData,ip,port);
|
// 实际业务逻辑
|
}
|
|
private static void processType12(PacketParser.DataPacket packet,String ip,int port) {
|
String hexData = PacketParser.bytesToHexString(packet.getPacket());
|
Dell55AA12HighPerf.parse(hexData,ip,port);
|
}
|
|
private static void processType03(PacketParser.DataPacket packet,String ip,int port) {
|
String hexData = PacketParser.bytesToHexString(packet.getPacket());
|
DellTag55AA03.parse(hexData,ip,port);
|
}
|
// 其他类型处理方法...
|
|
}
|