package com.szpg.task; import java.util.Map; import com.szpg.plc.message.AppMessageConstants; import com.szpg.plc.message.command.ReadMemoryCommand; import com.szpg.plc.protocol.fins.FINSConstants; import com.szpg.plc.server.ACUClient; import com.szpg.plc.server.ACUClientUtil; import com.szpg.plc.util.ByteUtil; import com.szpg.service.ReadControllerStatusService; import com.szpg.util.Configure; import org.apache.log4j.Logger; public class ReadFjStatTask implements Runnable { private ReadControllerStatusService service; public ReadFjStatTask() { service = new ReadControllerStatusService(); } @Override public void run() { // 查找所有的client Map<String, ACUClient> clients = ACUClientUtil.getInstance().getClients(); Logger.getLogger(getClass().getName()).info("启动查询风机状态定时任务[" + clients.size() + "]"); for (String key : clients.keySet()) { ACUClient client = clients.get(key); ReadMemoryCommand command = ReadMemoryCommand.getInstance(AppMessageConstants.CMD_TYPE_READFJSTAT); String sour = Configure.getProperty("sys", "LOCALHOST.NET") + Configure.getProperty("sys", "LOCALHOST.NODE") + Configure.getProperty("sys", "LOCALHOST.UNIT"); command.setMessageProducerId(sour); command.setMessageProducerHost(client.getHost()); String dest = client.getNet() + client.getNode() + client.getUnit(); command.setDestinationId(dest); command.setMemoryArea(FINSConstants.MEMORY_WORK_AREA_WORD); command.setStartAddress(ByteUtil.binToHexString(ByteUtil.intToBins(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".FJSTAT.START")), 2)) + "00"); command.setCountWord(Integer.parseInt(Configure.getProperty("acubl", client.getAcucode() + ".FJSTAT.WORDCOUNT"))); service.executeService(client, command); } Logger.getLogger(getClass().getName()).info("查询风机状态定时任务结束"); } }