更改
This commit is contained in:
@@ -1,15 +1,19 @@
|
||||
package com.njcn.roma.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.huawei.it.eip.ump.client.producer.Producer;
|
||||
import com.huawei.it.eip.ump.client.producer.SendResult;
|
||||
import com.huawei.it.eip.ump.common.exception.UmpException;
|
||||
import com.huawei.it.eip.ump.common.message.Message;
|
||||
import com.njcn.roma.client.ClientHandler;
|
||||
import com.njcn.roma.server.WebSocketServer;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* roma
|
||||
@@ -23,6 +27,8 @@ public class TestController {
|
||||
|
||||
private final ClientHandler clientHandler;
|
||||
|
||||
private final WebSocketServer webSocketServer;
|
||||
|
||||
|
||||
|
||||
@GetMapping("send")
|
||||
@@ -94,4 +100,72 @@ public class TestController {
|
||||
return clientHandler.topicMsg +" >>>>>>> "+ clientHandler.devId;
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("simulationWebSocket")
|
||||
public String simulationWebSocket() {
|
||||
clientHandler.devId = "NJCN230497";
|
||||
// 浮动范围(比如,我们希望数值在原始值的基础上最多变化10%)
|
||||
double fluctuationRange = 0.10;
|
||||
|
||||
// 创建Random实例
|
||||
Random random = new Random();
|
||||
|
||||
|
||||
|
||||
for(int i=0;i<300;i++){
|
||||
JSONObject map = JSONObject.parseObject(clientHandler.topicMsg);
|
||||
map.put("customDevId",clientHandler.devId);
|
||||
double vA = Double.valueOf(map.get("PhV_phsA").toString());
|
||||
double vB = Double.valueOf(map.get("PhV_phsB").toString());
|
||||
double vC = Double.valueOf(map.get("PhV_phsC").toString());
|
||||
// 生成浮动值
|
||||
// 注意:因为我们要的是百分比,所以我们将fluctuationRange乘以originalValue得到最大浮动的绝对值
|
||||
double fluctuationA = (random.nextDouble() * 2 - 1) * (fluctuationRange * vA);
|
||||
// 计算新的数值
|
||||
double newValueA = vA + fluctuationA;
|
||||
|
||||
double fluctuationB = (random.nextDouble() * 2 - 1) * (fluctuationRange * vB);
|
||||
// 计算新的数值
|
||||
double newValueB = vA + fluctuationB;
|
||||
double fluctuationC = (random.nextDouble() * 2 - 1) * (fluctuationRange * vC);
|
||||
// 计算新的数值
|
||||
double newValueC = vC + fluctuationC;
|
||||
map.put("PhV_phsA",String.valueOf(newValueA));
|
||||
map.put("PhV_phsB",String.valueOf(newValueB));
|
||||
map.put("PhV_phsC",String.valueOf(newValueC));
|
||||
|
||||
|
||||
|
||||
double iA = Double.valueOf(map.get("A_phsA").toString());
|
||||
double iB = Double.valueOf(map.get("A_phsB").toString());
|
||||
double iC = Double.valueOf(map.get("A_phsC").toString());
|
||||
// 生成浮动值
|
||||
// 注意:因为我们要的是百分比,所以我们将fluctuationRange乘以originalValue得到最大浮动的绝对值
|
||||
double fluctuationIA = (random.nextDouble() * 2 - 1) * (fluctuationRange * vA);
|
||||
// 计算新的数值
|
||||
double newValueIA = iA + fluctuationIA;
|
||||
|
||||
double fluctuationIB = (random.nextDouble() * 2 - 1) * (fluctuationRange * iB);
|
||||
// 计算新的数值
|
||||
double newValueIB = iA + fluctuationIB;
|
||||
double fluctuationIC = (random.nextDouble() * 2 - 1) * (fluctuationRange * iC);
|
||||
// 计算新的数值
|
||||
double newValueIC = iC + fluctuationIC;
|
||||
map.put("A_phsA",String.valueOf(newValueIA));
|
||||
map.put("A_phsB",String.valueOf(newValueIB));
|
||||
map.put("A_phsC",String.valueOf(newValueIC));
|
||||
|
||||
|
||||
webSocketServer.sendSocketMessageToAll(map.toJSONString());
|
||||
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
return "推送成功";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user