diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfz2Forwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfz2Forwarder.java index 1eb8fba7..882b2edb 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfz2Forwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfz2Forwarder.java @@ -1,124 +1,30 @@ package com.imdroid.beidou_fwd.task; -import com.imdroid.beidou_fwd.entity.XFZData; import com.imdroid.beidou_fwd.service.TCPClient; -import com.imdroid.beidou_fwd.service.TCPListener; -import com.imdroid.common.util.GsonUtil; -import com.imdroid.common.util.NumberUtils; -import com.imdroid.secapi.dto.GnssCalcData; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; @Component @Configuration @EnableScheduling -public class GXXfz2Forwarder extends Forwarder{ - static final String FORWARDER_NAME = "广西路建"; +public class GXXfz2Forwarder extends GXXfzForwarder{ + private String FORWARDER_NAME = "广西路建"; @Value("${gxlj.server.host}") private String host; @Value("${gxlj.server.port}") private int port; - private TCPClient xfzTcpClient; - - static class XFZTCPListener implements TCPListener{ - public static final int STATE_NO_ACK = 0; - public static final int STATE_OK = 1; - public static final int STATE_FAILED = 2; - public int state = STATE_NO_ACK; - - public void clear(){ - state = STATE_NO_ACK; - } - @Override - public void onConnected() { - - } - - @Override - public void onDisconnect() { - - } - - @Override - public void onMessage(String msg) { - if(msg.contains("succeed")) state = STATE_OK; - else state = STATE_FAILED; - } - } - XFZTCPListener listener = new XFZTCPListener(); @PostConstruct + @Override void registerMe(){ init(FORWARDER_NAME, "TCP "+host+":"+port,6,FWD_DEVICE_ID,30); xfzTcpClient = new TCPClient(); xfzTcpClient.init(host, port,listener); xfzTcpClient.start(); } - - /** - * 每半小时转发GNSS解算结果 - */ - @Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次 - private void forwardGnss() { - logger.info("xfz forwardGnss"); - forwardCurrentGnss(); - } - @Override - int send(String projectId, List records, LocalDateTime sentTime){ - int sendNum = 0; - if(records.size() == 0) return 0; - - XFZData xfzTcpMessage = new XFZData(); - xfzTcpMessage.setProjectID(projectId); - xfzTcpMessage.setWorkPointID(projectId); - - List dataList = new ArrayList<>(records.size()); - xfzTcpMessage.setData(dataList); - - for(GnssCalcData locationRecord: records) { - XFZData.Data data = new XFZData.Data(); - dataList.add(data); - data.setDataTime(locationRecord.getCreatetime().format(formatter)); - data.setDevNum(locationRecord.getDeviceid()); - data.setDevtype("GNSS"); - // 单位由mm转化为m - data.setX(NumberUtils.scale(locationRecord.getRpose() * 0.001, 5)); - data.setY(NumberUtils.scale(locationRecord.getRposn() * 0.001, 5)); - data.setZ(NumberUtils.scale(locationRecord.getRposd() * 0.001, 5)); - sendNum++; - } - String json = "#" + GsonUtil.toJson(xfzTcpMessage) + "!"; - logger.info("project " + projectId + ": push calculation result to XFZ"); - logger.info(json); - try { - listener.clear(); - xfzTcpClient.writeAndFlush(json); - //等待应答 - if(!checkResult()) sendNum = 0; - } catch (Exception e1) { - sendNum = 0; - e1.printStackTrace(); - } - return sendNum; - } - - boolean checkResult() throws InterruptedException { - // 等待应答,最多等1s - for(int i=0; i<10; i++){ - Thread.sleep(100); - if(listener.state == XFZTCPListener.STATE_OK) return true; - else if(listener.state == XFZTCPListener.STATE_FAILED) return false; - } - return false; - } - } diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java index 19d7f137..aab49633 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java @@ -21,14 +21,14 @@ import java.util.List; @Configuration @EnableScheduling public class GXXfzForwarder extends Forwarder{ - static final String FORWARDER_NAME = "广西新发展"; + private String FORWARDER_NAME = "广西新发展"; @Value("${xfz.server.host}") private String host; @Value("${xfz.server.port}") private int port; - private TCPClient xfzTcpClient; + TCPClient xfzTcpClient; static class XFZTCPListener implements TCPListener{ public static final int STATE_NO_ACK = 0; diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZBForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZBForwarder.java new file mode 100644 index 00000000..dcdf33bb --- /dev/null +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZBForwarder.java @@ -0,0 +1,31 @@ +package com.imdroid.beidou_fwd.task; + +import com.imdroid.beidou_fwd.service.TCPClient; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; + +@Component +@Configuration +@EnableScheduling +public class GZBForwarder extends GXXfzForwarder{ + private String FORWARDER_NAME = "葛洲坝"; + @Value("${gzb.server.host}") + private String host; + + @Value("${gzb.server.port}") + private int port; + + @PostConstruct + @Override + void registerMe(){ + init(FORWARDER_NAME, "TCP "+host+":"+port,1,FWD_DEVICE_ID,30); + xfzTcpClient = new TCPClient(); + xfzTcpClient.init(host, port,listener); + xfzTcpClient.start(); + } + +}