📄 crbthead.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 + -