package com.ld.igds.protocol.zldz.command.builder;
|
|
import com.ld.igds.io.request.BaseRequest;
|
import com.ld.igds.io.request.CheckGrainRequest;
|
import com.ld.igds.protocol.zldz.command.message.Message;
|
import com.ld.igds.protocol.zldz.command.message.MessageBody;
|
import com.ld.igds.protocol.zldz.util.ServerUtils;
|
import com.ld.igds.util.BytesUtil;
|
|
|
/**
|
* 粮情信息命令
|
*
|
* @author Andy
|
*/
|
public class CommandBuilder1115 extends CommandBuilder {
|
|
|
private final static CommandBuilder1115 instance = new CommandBuilder1115();
|
|
private CommandBuilder1115() {
|
|
}
|
|
public static CommandBuilder1115 getInstance() {
|
return instance;
|
}
|
|
public Message buildMessage(CheckGrainRequest request) {
|
|
//request.setCompanyId("1");
|
|
Message message = new Message();
|
|
message.setBegin(ServerUtils.MSG_START);
|
|
// 调整Message头部信息
|
buildHeader(message, request);
|
|
//包头校验
|
buildCrc8(message);
|
|
// 创建消息体
|
buildBody(message, request);
|
|
// 添加校验
|
buildCrc16(message);
|
|
message.setEnd(ServerUtils.MSG_END);
|
|
// 生成整体命令信息和BYte信息
|
build(message);
|
|
return message;
|
}
|
|
public void buildHeader(Message message, BaseRequest order) {
|
String hexCompanyId = BytesUtil.getTargetId(order.getCompanyId(),true);
|
hexCompanyId = BytesUtil.tran_LH(hexCompanyId);
|
|
message.setSourceId(hexCompanyId);
|
message.setSendId(hexCompanyId);
|
message.setCompanyId(hexCompanyId);
|
|
message.setTargetId(BytesUtil.tran_LH(BytesUtil.getTargetId(order.getSerId(), true)));
|
message.setMessageType(BytesUtil.tran_LH(ServerUtils.MSG_TYPE_1115));
|
}
|
|
|
public void buildBody(Message message, CheckGrainRequest order) {
|
MessageBody body = new MessageBody();
|
body.setLength(2);
|
int start = order.getCableStart();
|
int end = order.getCableEnd();
|
body.setContent(BytesUtil.toHexString(start) + BytesUtil.toHexString(end));
|
message.setBody(body);
|
}
|
|
}
|