Head.java
上传用户:leafage163
上传日期:2022-08-08
资源大小:15k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. package com.zzxy.shortmessage.SGIP;
  2. import java.nio.ByteBuffer;
  3. import java.util.Calendar;
  4. public class Head extends SGIPAbstractStruct{
  5. public int Msglen;      //4B Integer 消息的总长度(字节)
  6. public int Cmd_id;      //4B Integer 命令ID
  7. //消息头里的节点编号,固定值比如3037142185(十进制)=B5071CA9(十六进制)
  8. public final int JieDian=0xB5071CA9;
  9. public int CreateTime;  ////4B  Integer 创建时间格式为十进制的mmddhhmmss
  10. public int Seq_Number;  //4B  Integer 序列号,由0开始,循环进位,直到进位满了之后再清零,重新开始计数
  11. public static int SeqNo=0;                        //消息序号
  12. public static final int STRUCT_SIZE=20;
  13. public Head() {
  14. SetTime();
  15. Seq_Number=GetSeqNo();
  16. }
  17. public Head(int SeqNo) {
  18. SetTime();
  19. Seq_Number=SeqNo;
  20. }
  21. private static int GetSeqNo() {
  22.   
  23. switch ( SeqNo ) {
  24. case 0x7FFFFFFF :
  25. SeqNo=0x80000000;
  26.     break;
  27. case 0xFFFFFFFF :
  28. SeqNo=0;
  29. break;
  30. default :
  31. SeqNo++;
  32.     break;
  33. }
  34. return SeqNo;
  35. }
  36. private void SetTime() {
  37. Calendar rightNow = Calendar.getInstance();
  38. CreateTime=rightNow.get(Calendar.MONTH);
  39. CreateTime=CreateTime*100+rightNow.get(Calendar.DAY_OF_MONTH);
  40. CreateTime=CreateTime*100+rightNow.get(Calendar.HOUR_OF_DAY);
  41. CreateTime=CreateTime*100+rightNow.get(Calendar.MINUTE);
  42. CreateTime=CreateTime*100+rightNow.get(Calendar.SECOND);
  43. }
  44. //@Override
  45. public ByteBuffer getBuffer() {
  46.   ByteBuffer buffer = ByteBuffer.allocate(STRUCT_SIZE);
  47.   buffer.order(byteOrder);
  48.   buffer.putInt(Msglen);
  49.   buffer.putInt(Cmd_id);
  50.   buffer.putInt(JieDian);
  51.   buffer.putInt(CreateTime);
  52.   buffer.putInt(Seq_Number);
  53.   buffer.flip();
  54.   return buffer;
  55.     }
  56. //@Override
  57. public void setBuffer(ByteBuffer buffer) {
  58.   buffer.order(byteOrder);
  59.       Msglen = buffer.getInt();
  60.       Cmd_id = buffer.getInt();
  61.       CreateTime = buffer.getInt();//JieDian是最终变量
  62.       CreateTime = buffer.getInt();
  63.       Seq_Number = buffer.getInt();
  64. }
  65.   }