diff --git a/src/main/java/component/NackHeader.java b/src/main/java/component/NackHeader.java index ae233ae..fa65ed9 100644 --- a/src/main/java/component/NackHeader.java +++ b/src/main/java/component/NackHeader.java @@ -12,6 +12,10 @@ import encoding.*; public class NackHeader implements TlvComponentBase,InitialAble, IEncodingAble { // 变量 private long nackReason; + // NackReason 定义 + public static final long NackReasonUnknown = 0; + public static final long NackReasonDuplicate= 1; + public static final long NackReasonNoRoute = 2; // 函数 public long getNackReason() { diff --git a/src/test/java/component/NackHeaderTest.java b/src/test/java/component/NackHeaderTest.java new file mode 100644 index 0000000..2362428 --- /dev/null +++ b/src/test/java/component/NackHeaderTest.java @@ -0,0 +1,50 @@ +package component; + +import encoding.*; +import org.junit.Test; + +import java.util.Arrays; + +/* + * @Author: Wang Feng + * @Description: + * @Version: 1.0.0 + * @Date: 15:20 2021/3/25 + * @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室 + */ +public class NackHeaderTest { + @Test + public void TestNackHeader_GetNackReason(){ + NackHeader nackHeader=new NackHeader(); + System.out.println(nackHeader.getNackReason()); + } + + @Test + public void TestNackHeader_SetNackReason(){ + NackHeader nackHeader=new NackHeader(); + nackHeader.setNackReason(12313145641635L); + System.out.println(nackHeader.getNackReason()); + } + + @Test + public void TestNackHeader_WireEncode() throws EncoderException, ComponentException { + NackHeader nackHeader=new NackHeader(); + nackHeader.setNackReason(12313145641635L); + System.out.println(nackHeader.getNackReason()); + Encoder encoder=new Encoder(); + encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0)); + nackHeader.wireEncode(encoder); + byte[] buffer=encoder.getBuffer(); + System.out.println("nack buf: "+ Arrays.toString(buffer)); + } + + @Test + public void TestNackHeader_WireDecode() throws BlockException, ComponentException { + byte[] buf={(byte)213, (byte)8, (byte)0, (byte)0, + (byte)11, (byte)50, (byte)224, (byte)172, (byte)10, (byte)163}; + Block block=Block.createBlockByBuffer(buf,false); + NackHeader nackHeader=new NackHeader(); + nackHeader.wireDecode(block); + System.out.println("nack: "+nackHeader.getNackReason()); + } +}