package com.ld.igds.protocol.es.dlt645.builder;
|
|
import com.ld.igds.protocol.es.dlt645.util.Dlt645Utils;
|
|
/**
|
* 电表命令生成
|
*
|
* @author czt
|
*/
|
public class CommandBuild {
|
|
private final static CommandBuild instance = new CommandBuild();
|
|
private CommandBuild() {
|
}
|
|
public static CommandBuild getInstance() {
|
return instance;
|
}
|
|
/**
|
* 能耗采集命令
|
*
|
* @param esAddr 电表地址
|
* @return
|
*/
|
public static String getMsgCheck(String esAddr) {
|
|
//获取命令
|
StringBuffer sb = new StringBuffer();
|
|
//帧起始符
|
sb.append("68");
|
//地域域,反向拼接
|
sb.append(Dlt645Utils.addrToString(esAddr));
|
//帧起始符
|
sb.append("68");
|
//控制码及
|
sb.append("11");
|
//数据域长度
|
sb.append("04");
|
//数据域
|
sb.append("33333433");
|
//校验码
|
String checkNum = Dlt645Utils.makeCheck(sb.toString());
|
sb.append(checkNum);
|
|
StringBuffer sb0 = new StringBuffer();
|
//起始符
|
sb0.append(Dlt645Utils.MSG_START);
|
sb0.append(sb);
|
//结尾符
|
sb0.append(Dlt645Utils.MSG_END);
|
|
return sb0.toString();
|
}
|
}
|