package com.fzzy.protocol.zldz.cmd; import com.fzzy.api.data.ApiCommonDevice; import com.fzzy.api.utils.BytesUtil; import com.fzzy.gateway.data.BaseReqData; import com.fzzy.gateway.entity.GatewayDevice; import com.fzzy.protocol.zldz.data.Message; import com.fzzy.protocol.zldz.data.MessageBody; import com.fzzy.protocol.zldz.server.ZldzServerUtil; /** * 粮情信息命令 * * @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(BaseReqData reqData, ApiCommonDevice commonDevice) { //request.setCompanyId("1"); Message message = new Message(); message.setBegin(ZldzServerUtil.MSG_START); // 调整Message头部信息 buildHeader(message, reqData, commonDevice); //包头校验 buildCrc8(message); // 创建消息体 buildBody(message, reqData, commonDevice); // 添加校验 buildCrc16(message); message.setEnd(ZldzServerUtil.MSG_END); // 生成整体命令信息和BYte信息 build(message); return message; } public void buildHeader(Message message, BaseReqData reqData, ApiCommonDevice commonDevice) { GatewayDevice device = reqData.getDevice(); String hexCompanyId = BytesUtil.getTargetId(commonDevice.getOrgId(), true); hexCompanyId = BytesUtil.tran_LH(hexCompanyId); message.setSourceId(hexCompanyId); message.setSendId(hexCompanyId); message.setCompanyId(hexCompanyId); message.setTargetId(BytesUtil.tran_LH(BytesUtil.getTargetId(device.getDeviceSn(), true))); message.setMessageType(BytesUtil.tran_LH(ZldzServerUtil.MSG_TYPE_1115)); } public void buildBody(Message message, BaseReqData reqData, ApiCommonDevice commonDevice) { GatewayDevice device = reqData.getDevice(); MessageBody body = new MessageBody(); body.setLength(2); int start = Integer.valueOf(device.getCableStart()); int end = Integer.valueOf(device.getCableEnd()); body.setContent(BytesUtil.toHexString(start) + BytesUtil.toHexString(end)); message.setBody(body); } }