Newer
Older
pgdsc / src / com / szpg / DSCTest.java
on 12 Jan 2018 1 KB 首次提交版本
package com.szpg;

import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

import com.szpg.plc.message.command.read.ReadCH4ParamCommand;
import com.szpg.plc.protocol.DTProtocolInterface;
import com.szpg.plc.protocol.ProtocolFactory;
import com.szpg.plc.server.ACUClient;
import com.szpg.plc.server.ACUClientUtil;
import com.szpg.task.ACUSocketCheckTask;
import com.szpg.task.ReadCH4ParamTask;

public class DSCTest {
	
	private final DTProtocolInterface finspi = ProtocolFactory.getDefaultDTProtocol();
	
	public static void main(String[] args) {
		ACUClient client = new ACUClient("192.168.8.107", 6800);
		
		client.setNet("00");
		client.setNode("6B");
		client.setUnit("00");
		
		// 3将ACU的信息加入到map中
		ACUClientUtil.getInstance().addClient(client);
		
		// 4新建线程启动client
		new ScheduledThreadPoolExecutor(1).scheduleAtFixedRate(new ACUSocketCheckTask(client), 0, 30, TimeUnit.SECONDS);
		
		// 测试发送查询甲烷参数命令
		new DSCTest().testSendCH4Command(client);
	}

	private void testSendCH4Command(ACUClient client) {
		ReadCH4ParamCommand ch4 = new ReadCH4ParamCommand();
		ch4.setMessageProducerId("00F400");
		ch4.setDestinationId("006B00");
		ch4.setMemoryArea((byte) 0x82);
		ch4.setStartAddress("012C00");
		ch4.setCount(2);
		
		byte[] content = finspi.messageToBytes(ch4);
		
		ScheduledExecutorService sche = new ScheduledThreadPoolExecutor(1);
		sche.schedule(new ReadCH4ParamTask(client, content), 15, TimeUnit.SECONDS);
		sche.shutdown(); //执行完任务之后关闭线程
	}
}