新增模拟数据方法
This commit is contained in:
parent
b9e3f6d48f
commit
d80ee39789
@ -207,6 +207,26 @@ public class HJ212DataUtil {
|
|||||||
return dataCpSB.toString();
|
return dataCpSB.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* realData to string
|
||||||
|
*/
|
||||||
|
public static String requestRealData(List<RealDataCp> realDataCps) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append("DataTime=").append(realDataCps.get(0).getDataTime());
|
||||||
|
for (RealDataCp realDataCp : realDataCps) {
|
||||||
|
sb.append(";");
|
||||||
|
sb.append(realDataCp.getPollId()).append("-SampleTime=").append(realDataCp.getSampleTime());
|
||||||
|
sb.append(",").append(realDataCp.getPollId()).append("-Rtd=").append(realDataCp.getRtd());
|
||||||
|
if (StringUtils.isNotBlank(realDataCp.getFlag())) {
|
||||||
|
sb.append(",").append(realDataCp.getPollId()).append("-Flag=").append(realDataCp.getFlag());
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(realDataCp.getEFlag())) {
|
||||||
|
sb.append(",").append(realDataCp.getPollId()).append("-EFlag").append(realDataCp.getEFlag());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 解析数据
|
* 解析数据
|
||||||
*
|
*
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
server:
|
server:
|
||||||
port: 7004
|
port: 7004
|
||||||
url: http://192.168.0.101:7004/pollutant
|
url: http://192.168.0.103:7004/pollutant
|
||||||
title: 污染物上报系统
|
title: 污染物上报系统
|
||||||
servlet:
|
servlet:
|
||||||
context-path: /pollutant
|
context-path: /pollutant
|
||||||
@ -22,7 +22,7 @@ spring:
|
|||||||
max-request-size: 1GB
|
max-request-size: 1GB
|
||||||
datasource:
|
datasource:
|
||||||
druid:
|
druid:
|
||||||
url: jdbc:mysql://localhost:3306/db_pollutant_data?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false&serverTimezone=UTC
|
url: jdbc:mysql://192.168.0.151:3306/db_pollutant_data?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&autoReconnect=true&failOverReadOnly=false&useSSL=false&serverTimezone=UTC
|
||||||
db-type: mysql
|
db-type: mysql
|
||||||
driver-class-name: com.mysql.jdbc.Driver
|
driver-class-name: com.mysql.jdbc.Driver
|
||||||
username: root
|
username: root
|
||||||
@ -57,11 +57,11 @@ spring:
|
|||||||
# 安全
|
# 安全
|
||||||
security:
|
security:
|
||||||
oauth2:
|
oauth2:
|
||||||
oauth-server: http://124.67.110.246:8081/usercenter
|
oauth-server: http://192.168.0.152:7001/usercenter
|
||||||
oauth-logout: ${security.oauth2.oauth-server}/logout?redirect_uri=${server.url}
|
oauth-logout: ${security.oauth2.oauth-server}/logout?redirect_uri=${server.url}
|
||||||
client:
|
client:
|
||||||
client-id: 9bbf141d41aa41c981dfb7468a52937e
|
client-id: 2a347bba1dc54def83a47493c7578ae2
|
||||||
client-secret: b3QySk1qc0F3TXFTeFNHMG5sS1hiM0tpaWdnQzl0amFhU0Rtc3ptbU45VW1ac2wwZTJHWk5NbXh3L3h3U2c4Rg==
|
client-secret: TEdsOHlnTnc4T2JwTXM3alZldzRSM1ROKzhaQkZaQ24vSWJxREd0TWVLMG1ac2wwZTJHWk5NbXh3L3h3U2c4Rg==
|
||||||
user-authorization-uri: ${security.oauth2.oauth-server}/oauth_client/authorize
|
user-authorization-uri: ${security.oauth2.oauth-server}/oauth_client/authorize
|
||||||
access-token-uri: ${security.oauth2.oauth-server}/oauth_client/token
|
access-token-uri: ${security.oauth2.oauth-server}/oauth_client/token
|
||||||
grant-type: authorization_code
|
grant-type: authorization_code
|
||||||
@ -75,7 +75,7 @@ security:
|
|||||||
|
|
||||||
api-path:
|
api-path:
|
||||||
user-center: ${security.oauth2.oauth-server}
|
user-center: ${security.oauth2.oauth-server}
|
||||||
inspection: http://124.67.110.246:8081/inspection
|
inspection: http://192.168.0.103:7006/inspection
|
||||||
system:
|
system:
|
||||||
# 预警通知上限
|
# 预警通知上限
|
||||||
alarm-notice-limit: 5
|
alarm-notice-limit: 5
|
||||||
@ -95,7 +95,7 @@ logging:
|
|||||||
swagger:
|
swagger:
|
||||||
title: 接口文档
|
title: 接口文档
|
||||||
description: 隐患排查系统接口文档
|
description: 隐患排查系统接口文档
|
||||||
service-url: http://106.12.218.237:8001/pollutant
|
service-url: http://192.168.0.103:7004/pollutant
|
||||||
version: 1.0
|
version: 1.0
|
||||||
swagger-base-package: com.cm
|
swagger-base-package: com.cm
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ public class ConnectRunner implements Runnable {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ChannelFuture channelFuture = bootstrap.connect("124.67.110.246", 1991).sync();
|
ChannelFuture channelFuture = bootstrap.connect("192.168.0.103", 1991).sync();
|
||||||
channelFuture.addListener((ChannelFutureListener) future -> {
|
channelFuture.addListener((ChannelFutureListener) future -> {
|
||||||
if (!future.isSuccess()) {
|
if (!future.isSuccess()) {
|
||||||
future.channel().pipeline().fireChannelInactive();
|
future.channel().pipeline().fireChannelInactive();
|
||||||
|
@ -6,9 +6,11 @@ import com.cm.tenlion.pollutantdata.enums.DataCpFlagEnum;
|
|||||||
import com.cm.tenlion.pollutantdata.enums.DataFlagEnum;
|
import com.cm.tenlion.pollutantdata.enums.DataFlagEnum;
|
||||||
import com.cm.tenlion.pollutantdata.enums.StEnum;
|
import com.cm.tenlion.pollutantdata.enums.StEnum;
|
||||||
import com.cm.tenlion.pollutantdata.utils.HJ212DataUtil;
|
import com.cm.tenlion.pollutantdata.utils.HJ212DataUtil;
|
||||||
|
import com.cm.tenlion.pollutantdata.utils.core.T212Parser;
|
||||||
import io.netty.channel.ChannelFuture;
|
import io.netty.channel.ChannelFuture;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
@ -55,23 +57,34 @@ public class DemoRunner implements Runnable {
|
|||||||
// 采集器编号
|
// 采集器编号
|
||||||
data.setMn(mn);
|
data.setMn(mn);
|
||||||
data.setFlag(DataFlagEnum.HAS_PNUM_ANSWER_V2017.getValue());
|
data.setFlag(DataFlagEnum.HAS_PNUM_ANSWER_V2017.getValue());
|
||||||
HJ212DataUtil.DataCp dataCp = new HJ212DataUtil.DataCp();
|
|
||||||
Random random = new Random();
|
|
||||||
// 实时值
|
|
||||||
dataCp.setRtd((double) random.nextInt(20));
|
|
||||||
// 折算实时值
|
|
||||||
dataCp.setZsRtd((double) random.nextInt(20));
|
|
||||||
// 污染因子
|
|
||||||
dataCp.setPollId(pollId);
|
|
||||||
dataCp.setSn(sn);
|
|
||||||
dataCp.setSampleTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyyMMddHHmmssSSS"));
|
|
||||||
dataCp.setFlag(DataCpFlagEnum.N.getValue());
|
|
||||||
data.setDataCp(dataCp);
|
|
||||||
List<String> datas = HJ212DataUtil.respData(data);
|
|
||||||
|
|
||||||
datas.forEach(dataStr -> {
|
Random random = new Random();
|
||||||
System.out.println(dataStr);
|
|
||||||
channelFuture.channel().writeAndFlush(dataStr.getBytes(StandardCharsets.UTF_8));
|
String[] pollIdArray = new String[]{"a00000", "w01001", "w01002", "w01006", "w01009"};
|
||||||
});
|
|
||||||
|
List<HJ212DataUtil.RealDataCp> realDataCps = new ArrayList<>();
|
||||||
|
for (int i = 0; i < 5; i++) {
|
||||||
|
HJ212DataUtil.RealDataCp realDataCp = new HJ212DataUtil.RealDataCp();
|
||||||
|
realDataCp.setDataTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyyMMddHHmmss"));
|
||||||
|
realDataCp.setRtd((double) random.nextInt(20));
|
||||||
|
realDataCp.setSampleTime(DateUtil.formatDate(System.currentTimeMillis(), "yyyyMMddHHmmssSSS"));
|
||||||
|
realDataCp.setFlag(DataCpFlagEnum.N.getValue());
|
||||||
|
realDataCp.setPollId(pollIdArray[i]);
|
||||||
|
realDataCps.add(realDataCp);
|
||||||
|
}
|
||||||
|
|
||||||
|
data.setRealDataCps(realDataCps);
|
||||||
|
|
||||||
|
String respData = String.format("QN=%s;ST=%d;CN=%d;PW=%s;MN=%s;Flag=%d;CP=&&%s&&",
|
||||||
|
data.getQn(), data.getSt(), data.getCn(), data.getPw(), data.getMn(), data.getFlag(), HJ212DataUtil.requestRealData(realDataCps));
|
||||||
|
|
||||||
|
char[] respDataChar = respData.toCharArray();
|
||||||
|
StringBuilder respSB = new StringBuilder("##");
|
||||||
|
respSB.append(String.format("%04d", respData.length()));
|
||||||
|
respSB.append(respData);
|
||||||
|
respSB.append(Integer.toHexString(T212Parser.crc16Checkout(respDataChar, respDataChar.length)));
|
||||||
|
|
||||||
|
System.out.println(">>>>" + respSB);
|
||||||
|
channelFuture.channel().writeAndFlush(respSB.toString().getBytes(StandardCharsets.UTF_8));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ public class HJ212Test {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ChannelFuture channelFuture = bootstrap.connect("106.12.218.237", 1991).sync();
|
ChannelFuture channelFuture = bootstrap.connect("192.168.0.120", 1991).sync();
|
||||||
channelFuture.addListener((ChannelFutureListener) future -> {
|
channelFuture.addListener((ChannelFutureListener) future -> {
|
||||||
if (!future.isSuccess()) {
|
if (!future.isSuccess()) {
|
||||||
future.channel().pipeline().fireChannelInactive();
|
future.channel().pipeline().fireChannelInactive();
|
||||||
@ -136,7 +136,7 @@ public class HJ212Test {
|
|||||||
new Thread(new ConnectRunner(StEnum.AIR, "CJY001003", "CJQ001003002", "a20057")).start();
|
new Thread(new ConnectRunner(StEnum.AIR, "CJY001003", "CJQ001003002", "a20057")).start();
|
||||||
**/
|
**/
|
||||||
// 2.乌兰察布市集宁区富磊热力有限责任公司
|
// 2.乌兰察布市集宁区富磊热力有限责任公司
|
||||||
new Thread(new ConnectRunner(StEnum.ST_22, "CJY002001", "CJQ002001001", "a00000")).start();
|
new Thread(new ConnectRunner(StEnum.ST_22, "CJY001002", "CJQ002001001", "a00000")).start();
|
||||||
/**
|
/**
|
||||||
new Thread(new ConnectRunner(StEnum.AIR, "CJY002001", "CJQ002001002", "a05001")).start();
|
new Thread(new ConnectRunner(StEnum.AIR, "CJY002001", "CJQ002001002", "a05001")).start();
|
||||||
new Thread(new ConnectRunner(StEnum.AIR, "CJY002002", "CJQ002002001", "a05002")).start();
|
new Thread(new ConnectRunner(StEnum.AIR, "CJY002002", "CJQ002002001", "a05002")).start();
|
||||||
|
Loading…
Reference in New Issue
Block a user