更新 推送新增status + time
This commit is contained in:
parent
303664eda3
commit
e36ca8ae57
@ -6,6 +6,7 @@ import com.qgs.dc.mq.entity.MQMessage;
|
||||
import com.qgs.dc.opcua.constant.PLCTypeConstant;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.ByteString;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.*;
|
||||
import org.springframework.messaging.Message;
|
||||
|
||||
@ -94,6 +95,18 @@ public class CommonFunction {
|
||||
}
|
||||
}
|
||||
|
||||
public static String quality(StatusCode statusCode) {
|
||||
if (statusCode.isGood()) {
|
||||
return "good";
|
||||
} else if (statusCode.isBad()) {
|
||||
return "bad";
|
||||
} else if (statusCode.isUncertain()) {
|
||||
return "uncertain";
|
||||
} else {
|
||||
return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 用处:在从OPC Server 中 读到变量,要把变量包装一下 传给前端
|
||||
* 含义: 包装变量
|
||||
|
@ -72,6 +72,8 @@ public class PID00BReceived {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//2.模拟异常 ,然后 拒签消息 ,然后丢到死信队列
|
||||
|
||||
//throw new Exception("11111");
|
||||
|
@ -41,27 +41,31 @@ public class TestController {
|
||||
public R eapRequest(){
|
||||
try {
|
||||
//properties 这里的参数是写在MQ消息 header里面的,如果EAP端 需要某些参数 可以写在这里,eap去取更方便一些
|
||||
Map<String,Object> properties = new HashMap<>();
|
||||
CallbackMessageEntity callbackMessageEntity = new CallbackMessageEntity();
|
||||
properties.put("equipmentName","PID001");
|
||||
callbackMessageEntity.setExchangeName("00B_Exchange");
|
||||
callbackMessageEntity.setRoutingKey("00B_EAP_Request_Queue_RoutingKey");
|
||||
for(int i =0;i<20;i++){
|
||||
Map<String,Object> properties = new HashMap<>();
|
||||
CallbackMessageEntity callbackMessageEntity = new CallbackMessageEntity();
|
||||
properties.put("equipmentName","PID001");
|
||||
callbackMessageEntity.setExchangeName("00B_Exchange");
|
||||
callbackMessageEntity.setRoutingKey("00B_EAP_Request_Queue_RoutingKey");
|
||||
|
||||
MQMessage mesResponse = new MQMessage();
|
||||
MQMessage mesResponse = new MQMessage();
|
||||
|
||||
Header header = new Header("Request","Execute","QUERYEQPStatus","12");
|
||||
QueryEQStatusBody queryEQStatusBody = new QueryEQStatusBody();
|
||||
queryEQStatusBody.setVidType("u4");
|
||||
List<String> vids = new ArrayList<>();
|
||||
vids.add("10000");
|
||||
vids.add("10001");
|
||||
vids.add("10002");
|
||||
queryEQStatusBody.setVidList(vids);
|
||||
mesResponse.setBody(JSONObject.toJSONString(queryEQStatusBody));
|
||||
mesResponse.setHeader(header);
|
||||
callbackMessageEntity.setMqMessage(mesResponse);
|
||||
properties.put("transitionId", "12312");
|
||||
rabbitSender.reply(callbackMessageEntity.getMqMessage(),properties, callbackMessageEntity.getExchangeName(), callbackMessageEntity.getRoutingKey());
|
||||
|
||||
}
|
||||
|
||||
Header header = new Header("Request","Execute","QUERYEQPStatus","12");
|
||||
QueryEQStatusBody queryEQStatusBody = new QueryEQStatusBody();
|
||||
queryEQStatusBody.setVidType("u4");
|
||||
List<String> vids = new ArrayList<>();
|
||||
vids.add("10000");
|
||||
vids.add("10001");
|
||||
vids.add("10002");
|
||||
queryEQStatusBody.setVidList(vids);
|
||||
mesResponse.setBody(JSONObject.toJSONString(queryEQStatusBody));
|
||||
mesResponse.setHeader(header);
|
||||
callbackMessageEntity.setMqMessage(mesResponse);
|
||||
properties.put("transitionId", "12312");
|
||||
rabbitSender.reply(callbackMessageEntity.getMqMessage(),properties, callbackMessageEntity.getExchangeName(), callbackMessageEntity.getRoutingKey());
|
||||
return R.ok("回复成功");
|
||||
}catch (Exception e){
|
||||
return R.error().put("result",e.getMessage());
|
||||
|
@ -13,8 +13,11 @@ import com.qgs.dc.opcua.selfunion.entity.SubscribeEventArgEntity;
|
||||
import com.qgs.dc.opcua.selfunion.entity.SubscribeVarArgEntity;
|
||||
import com.qgs.dc.common.websocket.WebSocketServer;
|
||||
import org.eclipse.milo.opcua.sdk.client.api.subscriptions.UaMonitoredItem;
|
||||
import org.eclipse.milo.opcua.stack.core.StatusCodes;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.DateTime;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UInteger;
|
||||
import org.eclipse.milo.opcua.stack.core.types.builtin.unsigned.UShort;
|
||||
import org.slf4j.Logger;
|
||||
@ -24,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@ -38,6 +42,22 @@ public class OperateController {
|
||||
@Autowired
|
||||
WebSocketServer webSocketServer;
|
||||
|
||||
@PostMapping("/testForWeight")
|
||||
public R testForWeight(){
|
||||
//压力测试
|
||||
try {
|
||||
DataValue dv = uaService.getValue(5,"Boolean", "plc1");
|
||||
Object value = dv.getValue().getValue();
|
||||
|
||||
logger.info(CommonFunction.judgeVarType(value));
|
||||
return R.ok().put("result", CommonFunction.var(value));
|
||||
}catch (Exception e){
|
||||
String s = uaService.extractError(e.getMessage());
|
||||
s = s+";详细:"+e.getMessage();
|
||||
return R.error().put("result",s);
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/addThisPlc")
|
||||
/**
|
||||
* @Description
|
||||
@ -188,8 +208,9 @@ public class OperateController {
|
||||
|
||||
Object value = dataValue.getValue().getValue();
|
||||
String varType = CommonFunction.judgeVarType(value);
|
||||
|
||||
String res = namespaceIndex + "," + identifier + "|" + CommonFunction.var2String(value) + "|" + varType+ "|" +subscribeVarArgEntity.getPlcName();
|
||||
String status = CommonFunction.quality(dataValue.getStatusCode());
|
||||
String time = dataValue.getSourceTime().getJavaDate().toString();
|
||||
String res = namespaceIndex + "," + identifier + "|" + CommonFunction.var2String(value) + "|" + varType+ "|" +subscribeVarArgEntity.getPlcName()+"|"+status+"|"+time;
|
||||
|
||||
try {
|
||||
webSocketServer.sendtoAll(res);
|
||||
@ -241,7 +262,9 @@ public class OperateController {
|
||||
Object value = dataValue.getValue().getValue();
|
||||
String varType = CommonFunction.judgeVarType(value);
|
||||
|
||||
String res = namespaceIndex + "," + identifier + "|" + CommonFunction.var2String(value) + "|" + varType+ "|" +subscribeVarArgEntity.getPlcName();
|
||||
String status = CommonFunction.quality(dataValue.getStatusCode());
|
||||
String time = dataValue.getSourceTime().getJavaDate().toString();
|
||||
String res = namespaceIndex + "," + identifier + "|" + CommonFunction.var2String(value) + "|" + varType+ "|" +subscribeVarArgEntity.getPlcName()+"|"+status+"|"+time;
|
||||
|
||||
try {
|
||||
webSocketServer.sendtoAll(res);
|
||||
@ -367,10 +390,13 @@ public class OperateController {
|
||||
return R.error().put("result",subscribeVarArgEntity.getPlcName()+" 这台plc不存在 / 或参数异常");
|
||||
}
|
||||
if(integer == 1){
|
||||
logger.info("取消订阅变量:"+subscribeVarArgEntity.toString() +"成功");
|
||||
return R.ok().put("result","成功");
|
||||
}else if(integer == 2) {
|
||||
logger.error("取消订阅变量:"+subscribeVarArgEntity.toString() +"失败,取消订阅的这个Node 不存在");
|
||||
return R.error().put("result","取消订阅的这个Node 不存在");
|
||||
}else {
|
||||
logger.error("取消订阅变量:"+subscribeVarArgEntity.toString() +"失败");
|
||||
return R.error().put("result","取消订阅的这个Node 失败");
|
||||
}
|
||||
}catch (Exception e){
|
||||
|
@ -319,6 +319,7 @@ public class UAService {
|
||||
DataValue value2 = null;
|
||||
try {
|
||||
value2 = node2.readValue();
|
||||
StatusCode statusCode = value2.getStatusCode();
|
||||
}catch (Exception e){
|
||||
throw new Exception("OPCUA 读变量出现异常,,具体异常是: "+e.getMessage());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user