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(); //执行完任务之后关闭线程 } }