diff --git a/src/main/java/component/Payload.java b/src/main/java/component/Payload.java index 8f758a3..f31bf8e 100644 --- a/src/main/java/component/Payload.java +++ b/src/main/java/component/Payload.java @@ -16,6 +16,9 @@ public class Payload implements TlvComponentBase,InitialAble, IEncodingAble { // 成员变量 private byte[] value; + public Payload(){ + } + /** * 构造函数 * @param block diff --git a/src/main/java/encoding/Encoder.java b/src/main/java/encoding/Encoder.java index 5b005d7..9c8efb8 100644 --- a/src/main/java/encoding/Encoder.java +++ b/src/main/java/encoding/Encoder.java @@ -16,6 +16,8 @@ public class Encoder { public boolean isEstimator;// 是否仅测量编码后的长度,而不实际进行编码 public SizeT totalReserve; // 编码缓存数组的大小 + public static final int MaxPacketSize=8800; + /** * 编码测量初始化 * @Description: diff --git a/src/test/java/component/PayloadTest.java b/src/test/java/component/PayloadTest.java new file mode 100644 index 0000000..97f932c --- /dev/null +++ b/src/test/java/component/PayloadTest.java @@ -0,0 +1,56 @@ +package component; + +import encoding.*; +import org.junit.Test; + +import java.util.Arrays; + +/* + * @Author: Wang Feng + * @Description: + * @Version: 1.0.0 + * @Date: 14:31 2021/3/25 + * @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室 + */ +public class PayloadTest { + + @Test + public void TestCreatePayloadByBlock() throws BlockException { + byte[] buf={(byte)204, (byte)2, (byte)3, (byte)4, (byte)255}; + Block block= Block.createBlockByBuffer(buf,false); + Payload payload=new Payload(block); + System.out.println(Arrays.toString(payload.getValue())); + } + + @Test + public void TestPayload_SetValue() throws BlockException { + byte[] buf={(byte)204, (byte)2, (byte)3, (byte)4, (byte)255}; + Block block= Block.createBlockByBuffer(buf,false); + Payload payload=new Payload(block); + System.out.println(Arrays.toString(payload.getValue())); + byte[] value={(byte)2, (byte)221, (byte)21, (byte)223}; + payload.setValue(value); + System.out.println(Arrays.toString(payload.getValue())); + } + + @Test + public void TestPayload_WireDecode() throws BlockException, EncoderException, ComponentException { + byte[] buf={(byte)204, (byte)2, (byte)3, (byte)4, (byte)255}; + Block block= Block.createBlockByBuffer(buf,false); + Payload payload=new Payload(block); + System.out.println(Arrays.toString(payload.getValue())); + byte[] value={(byte)2, (byte)221, (byte)21, (byte)223}; + payload.setValue(value); + System.out.println(Arrays.toString(payload.getValue())); + Encoder encoder=new Encoder(); + encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); + payload.wireEncode(encoder); + byte[] payBuffer=encoder.getBuffer(); + System.out.println(Arrays.toString(payBuffer)); + Block payBlock =Block.createBlockByBuffer(payBuffer,false); + payload.wireDecode(payBlock); + System.out.println(Arrays.toString(payload.getValue())); + } + + +}