package com.fzzy.protocol.fzzy.builder; import com.fzzy.api.data.ApiCommonDevice; import com.fzzy.gateway.entity.GatewayDevice; import com.fzzy.protocol.fzzy.data.MessageInfo; import com.fzzy.protocol.fzzy.data.SendMessage; import com.fzzy.protocol.fzzy.req.Request2101; import com.fzzy.protocol.fzzy.server.ServerUtils; public class GrainCommandBuilder extends CommandBuilder { private final static GrainCommandBuilder instance = new GrainCommandBuilder(); private GrainCommandBuilder() { } public static GrainCommandBuilder getInstance() { return instance; } public SendMessage buildMessage(GatewayDevice device, ApiCommonDevice apiCommonDevice) { SendMessage message = new SendMessage(); message.setIp(apiCommonDevice.getIp()); message.setPort(apiCommonDevice.getPort()); message.setBegin(ServerUtils.MSG_BEGIN); // 调整信息 buildInfo(message, device,apiCommonDevice); message.setEnd(ServerUtils.MSG_END); // 生成整体命令信息和BYte信息 build(message); return message; } public void buildInfo(SendMessage message, GatewayDevice device,ApiCommonDevice apiCommonDevice) { MessageInfo info = new MessageInfo(); info.setSign("0000"); info.setIedId(apiCommonDevice.getId()); info.setFunctionId(ServerUtils.FUNCTION_2101); info.setRespCode("0000"); info.setOrderId(ServerUtils.getOrderByDepotId(device.getDepotId())); info.setUserData("0"); info.setSign("0000"); Request2101 request2101 = new Request2101(); request2101.setHouseId(device.getDepotIdSys()); info.setContent(request2101); message.setInfo(info); } }