From a69d63feef10e3d13e91e3647274a889a311db5a Mon Sep 17 00:00:00 2001 From: yyt <306727702@qq.com> Date: 星期一, 19 二月 2024 08:10:23 +0800 Subject: [PATCH] 更新OPCUA --- jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java | 27 +++++++++++++++------------ 1 files changed, 15 insertions(+), 12 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java index 7ccd646..fc78ab0 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java @@ -157,7 +157,7 @@ public void handle(NodeId id, Variant value){ if (b == null || 0 > b.size()) { DaOpcuaConfig opcuaConfParam=new DaOpcuaConfig(); - opcuaConfParam.setSubscribe(1L); + opcuaConfParam.setSubscribe("Y"); b=daOpcuaConfigService.selectDaOpcuaConfigList(opcuaConfParam); } //浣跨敤Stream API鍦↙ist<T>涓煡鎵惧厓绱� @@ -166,10 +166,15 @@ .findAny() .orElse(null); try { - Class<?> clazz = Class.forName(daOpcuaConfig.getrModule()); + Class<?> clazz = Class.forName("com.jcdm.main.da.opcuaconfig.cert.MethodName"); Method method = clazz.getMethod(daOpcuaConfig.getrFunction(), new Class[] { String.class, String.class }); + if (value.isNull()){ + method.invoke(clazz.newInstance(),new Object[] { + new String(id.getIdentifier().toString()), new String("") }); + }else{ method.invoke(clazz.newInstance(),new Object[] { new String(id.getIdentifier().toString()), new String(value.getValue().toString()) }); + } } catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InstantiationException | InvocationTargetException e) { e.printStackTrace(); @@ -223,16 +228,11 @@ /** * 鏂规硶鎻忚堪: 璇诲彇澶氫釜鐐逛綅鐨勫�� * - * @param keys 鐐逛綅闆嗗悎 + * @param nodeIdList 鐐逛綅闆嗗悎 * @return {@link List<DataValue>} * @throws */ - public static List<DataValue> readValues(Set<String> keys){ - List<NodeId> nodeIdList=new ArrayList<>(500); - keys.forEach(e->{ - NodeId nodeId = new NodeId(2, e); - nodeIdList.add(nodeId); - }); + public static List<DataValue> readValues(List<NodeId> nodeIdList){ try { List<DataValue> dataValues=client.readValues(0.0, TimestampsToReturn.Both,nodeIdList).get(); return dataValues; @@ -262,11 +262,14 @@ log.info("Value={}", value); Variant variant = value.getValue(); - log.info("Variant={}", variant.getValue()); - log.info("BackingClass={}", BuiltinDataType.getBackingClass(variant.getDataType().get())); + if(null == variant.getValue()) + { + return null; + }else{ + return variant.getValue().toString(); + } - return variant.getValue().toString(); } -- Gitblit v1.9.3