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.yzh.protocol.JT808Beans;
|
import org.yzh.protocol.basics.JTMessage;
|
import org.yzh.protocol.codec.JTMessageAdapter;
|
|
/**
|
* 解码分析
|
* @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 = "020000d40123456789017fff000004000000080006eeb6ad02633df7013800030063200707192359642f000000400101020a0a02010a1e00640001b2070003640e200707192359000100000061646173200827111111010101652f000000410202020a0000000a1e00c8000516150006c81c20070719235900020000000064736d200827111111020202662900000042031e012c00087a23000a2c2a200707192359000300000074706d732008271111110303030067290000004304041e0190000bde31000d90382007071923590004000000006273642008271111110404049d";
|
JTMessage msg = H2019(T0200JSATL12());
|
|
msg = decode(hex);
|
hex = encode(msg);
|
}
|
|
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;
|
}
|
}
|