⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crbthead.java

📁 中国联通炫铃业务接口开发
💻 JAVA
字号:
package com.wireless.crbt.gwif.ZTEforUN;

import com.wireless.crbt.gwif.global.Util;

public class CrbtHead {

	private String command_length_4="111";	//此域表示消息包的长度,CRBT PDU的最大包体长度为9999字节
	private String category_2="1";			//01:业务处理接口	06:管理接口	08:网管接口
	private String sub_command_2="1";		//01:业务请求	02:业务请求应答
	private String opcode_4="1";			//操作命令后四个字节
	private String command_status_4="1";	//此域表示一个命令的成功与失败,如失败,指示引起失败的错误类型等信息,它在请求中必须设为0
	private String sou_addr_6="1";			//此域为消息源地址,表示消息发起的原始发起方地址描述字串。	同步方式下该域保留
	private String des_addr_6="1";			//此域为消息目的地址,表示消息希望到达的终端地址描述字串。	同步方式下该域保留
	private String seq_no_10="1";			//此域表示一个序列号,使用在异步通信模式下,由消息发起者设定,应答者对应给回此序列号。
											//序列号范围:0000000000-9999999999,循环使用。同步方式下该域保留。
	public CrbtHead()
	{
		
	}
	 public CrbtHead(byte[] ba) {
		 command_length_4=byte2str(ba, 0, 4);
		 category_2=byte2str(ba, 4, 2);
		 sub_command_2=byte2str(ba, 6, 2);
		 opcode_4=byte2str(ba, 8, 4);
		 command_status_4=byte2str(ba, 12, 4);
		 sou_addr_6=byte2str(ba, 16, 6);
		 des_addr_6=byte2str(ba, 22, 6);
		 seq_no_10=byte2str(ba, 28, 10);
	    }
	 public String getCommand_length_4()
	 {
		 return command_length_4;
	 }
	 public void setCommand_length_4(String s)
	 {
		 command_length_4=s;
	 }
	 public String getCategory_2()
	 {
		 return category_2;
	 }
	 public void setCategory_2(String s)
	 {
		 category_2=s;
	 }
	 public String getSub_command_2()
	 {
		 return sub_command_2;
	 }
	 public void setSub_command_2(String s)
	 {
		 sub_command_2=s;
	 }
	 public String getOpcode_4()
	 {
		 return opcode_4;
	 }
	 public void setOpcode_4(String s)
	 {
		 opcode_4=s;
	 }
	 public String getCommand_status_4()
	 {
		 return command_status_4;
	 }
	 public void setCommand_status_4(String s)
	 {
		 command_status_4=s;
	 }
	 public String getSou_addr_6()
	 {
		 return sou_addr_6;
	 }
	 public void setSou_addr_6(String s)
	 {
		 sou_addr_6=s;
	 }
	 public String getDes_addr_6()
	 {
		 return des_addr_6;
	 }
	 public void setDes_addr_6(String s)
	 {
		 des_addr_6=s;
	 }
	 public String getSeq_no_10()
	 {
		 return seq_no_10;
	 }
	 public void setSeq_no_10(String s)
	 {
		 seq_no_10=s;
	 }
	 public byte[] getBytes() {
	        byte[] ba = new byte[38];
	        headFill(ba);
	        return ba;
	    }
	 protected int headFill(byte[] ba) {
		 str2bytes(ba, command_length_4==null?"":command_length_4,0, 4);
		 str2bytes(ba, category_2==null?"":category_2,4, 2);
		 str2bytes(ba, sub_command_2==null?"":sub_command_2,6, 2);
		 str2bytes(ba, opcode_4==null?"":opcode_4,8, 4);
		 str2bytes(ba, command_status_4==null?"0":command_status_4,12, 4);
		 str2bytes(ba, sou_addr_6==null?"":sou_addr_6,16, 6);
		 str2bytes(ba, des_addr_6==null?"":des_addr_6,22, 6);
		 str2bytes(ba, seq_no_10==null||seq_no_10==""?Util.getSeq_no():seq_no_10,28, 10);
	        return 0;
	    }
	 public static void str2bytes(byte[] ba, String s, int start, int len) {
	        if (ba.length <= start + len - 1) {
	            return;
	        }

	        if (s.length() < len) {
	        	for(int i=0;i<len-s.length();i++)
	        	{
	        		ba[start + i] = (byte)"0".charAt(0);
	        	}
	        	for (int i = 0; i < s.length(); i++) {
	        		 ba[start + len-s.length()+i] = (byte)s.charAt(i);
	            }
	        } else {
	            for (int i = 0; i < len; i++) {
	                ba[start + i] = (byte)s.charAt(i);
	            }
	        }
	    }

	 public static String byte2str(byte[] ba, int start, int len) {
	        if (ba.length <= start + len - 1) {
	            return null;
	        }
	        String r = new String();
	        for (int i = 0; i < len; i++) {
	            r += (char)ba[start + i];
	        }
	        return r;
	    }
	 
	 public static void main(String args[])
	 {
		 CrbtHead CH=new CrbtHead();
		 byte[] b=CH.getBytes();
		 CrbtHead CH2=new CrbtHead(b);
		 String s=CH2.getOpcode_4();
		 System.out.println(s);
		 
	 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -