Newer
Older
pgdsc / src / com / szpg / task / ReadFjStatTask.java
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("查询风机状态定时任务结束");
	}

}