package org.yzh;
|
|
import io.github.yezhihao.protostar.util.Explain;
|
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBufUtil;
|
import io.netty.buffer.Unpooled;
|
import org.apache.poi.ss.usermodel.*;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.junit.platform.commons.util.StringUtils;
|
import org.yzh.protocol.JT808Beans;
|
import org.yzh.protocol.basics.JTMessage;
|
import org.yzh.protocol.codec.JTMessageAdapter;
|
import org.yzh.protocol.codec.JTMessageDecoder;
|
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.nio.ByteBuffer;
|
import java.nio.ByteOrder;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 解码分析
|
* @author yezhihao
|
* https://gitee.com/yezhihao/jt808-server
|
*/
|
public class Elucidator extends JT808Beans {
|
|
public static final JTMessageAdapter coder = new JTMessageAdapter("org.yzh.protocol");
|
|
public static void main(String[] args) {
|
String hex = "0200004c06724440021104ad00000000000c000301e4c49606fcbc04003c00000000250213220412010400001a4e02020000030200002504000000002a0200002b0400000000300115310112e306000012990000f2020000ac7e";
|
// String hex = "0201004e0672444002110097019100000000000c0001015b197c06c8362e00000000000025020616592601040000083f02020000030200002504000000002a0200002b0400000000300117310100e306000012990000f2020000187e";
|
// String hex = "020000d40123456789017fff000004000000080006eeb6ad02633df7013800030063200707192359642f000000400101020a0a02010a1e00640001b2070003640e200707192359000100000061646173200827111111010101652f000000410202020a0000000a1e00c8000516150006c81c20070719235900020000000064736d200827111111020202662900000042031e012c00087a23000a2c2a200707192359000300000074706d732008271111110303030067290000004304041e0190000bde31000d90382007071923590004000000006273642008271111110404049d";
|
// JTMessage msg = H2019(T0200JSATL12());
|
|
// msg = decode(hex);
|
// hex = encode(msg);
|
// System.out.println(decode(hex));
|
|
try (FileInputStream fis = new FileInputStream(new File("C:\\Users\\T14\\Desktop\\member.xlsx"));
|
Workbook workbook = new XSSFWorkbook(fis)) {
|
Sheet sheet = workbook.getSheetAt(0); // 获取第一个工作表
|
List<String> phoneNumbers = new ArrayList<>();
|
for (Row row : sheet) {
|
Cell cell = row.getCell(1); // 假设手机号在第一列
|
if (cell != null) {
|
if (cell.getCellType() == CellType.NUMERIC){
|
System.out.println(cell.getCellType());
|
phoneNumbers.add( cell.getNumericCellValue()+""); // 添加到列表中
|
}
|
cell.setCellType(CellType.STRING); // 确保单元格类型为字符串
|
String phoneNumber = cell.getStringCellValue(); // 获取单元格值作为字符串
|
phoneNumbers.add( phoneNumber); // 添加到列表中
|
}
|
}
|
// 输出手机号列表
|
phoneNumbers.forEach(System.out::println);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
}
|
|
private static String encode(JTMessage message) {
|
System.out.println("====================================================================================\n");
|
Explain explain = new Explain();
|
ByteBuf buf = null;
|
try {
|
buf = coder.encode(message, explain);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
String hex = ByteBufUtil.hexDump(buf);
|
System.out.println(message);
|
System.out.println(hex);
|
explain.println();
|
return hex;
|
}
|
|
private static JTMessage decode(String hex) {
|
System.out.println("====================================================================================\n");
|
Explain explain = new Explain();
|
JTMessage message = null;
|
try {
|
message = coder.decode(Unpooled.wrappedBuffer(ByteBufUtil.decodeHexDump(hex)), explain);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
System.out.println(message);
|
System.out.println(hex);
|
explain.println();
|
return message;
|
}
|
}
|