From 9ca409cbc645c1b8f3f3aee4ee4af99b3719ba4d Mon Sep 17 00:00:00 2001 From: sige Date: Tue, 9 Apr 2024 21:02:19 +0800 Subject: [PATCH] 1 --- app.db | Bin 294912 -> 294912 bytes .../underframework/UfCmdSnippetExecutor.java | 42 +++++++++++---------- .../underframework/connection/UfConnection.java | 7 +++- .../connection/UfConnectionBase.java | 7 ++++ .../connection/UfConnectionManager.java | 4 +- .../underframework/web/api/TsApiSnippet.java | 12 +++--- src/main/resources/application.yml | 2 + 7 files changed, 48 insertions(+), 26 deletions(-) diff --git a/app.db b/app.db index 53073ce67b044121d87ecb28e3af943fb6cecd82..559ab6faebd688f3caa164d1723c3f906616b76c 100644 GIT binary patch delta 971 zcma))O-$2Z7{}Z0W!>8CEt?LRny}4{sG+#G-$lWL!AJ-f;yef#y0ry^xMh48MRbb_ zF)_vupfSP31Uzs7%t9JDdNC%%n+YdEFrpWOM?ENZ;N2zfb9m7AHhY^9XTizD6+2SVJtQ<+Z^frvZt{ zWNf^rG<_?Z@X)XYW7c6yiF(CBD;Fj}qLL};Qs3gsXpn??jQPMkV>+0Fa04#Dd@0b| z4P}u8sZgEHDW=JZh*d??(N#IqF;yj2GLWVVyqT6YV^4E(b>FnKu+fD(&@GHvVtN>w zS!X5~0d6_awSU7^!X)p}JCpPd?i69uJFZ{Vu13$?GzlX3+)6zd^Xz;6cX7_%8tpX? zXgYLe9>Y0oo*9MT;T8WUf4lD;{@$n3OLRRoOVxU(yw#pZ9uIk+#N4;5epU^GAK;qn zn@cA)iSFmoNSZFv1f5ESPle=w_4^Or?jFqQ>5(Dp!Y+RDfP_#(`4xk>^Qle_oeo&V zUA*1$M?q5+$08Qlb_A$!W|IJ}fP2{@lORgCmz{h~xGxnCH#QOsP1Zyii4$}KDSF0Aso<=q9F}s~9WtHsAgNq5iV+P zl_x6U#gDsExP?>@w;x{yqah!Ftr+u=iNHnJ>RecaSNr1bRO(nFPzkP*AarDhv-xtu X+OF>h?CaFZ_U!7|xV?A>bmD&jOD7P8 delta 310 zcmZo@5Nc=;njp;>KT*b+F@9shl6(m+uBi()); + static public void execute(String snippetKey) { + UfCmdSnippetExecutor.execute(snippetKey, new HashMap<>()); } /** * execute snippet with params - * @param snippetName - snippet name + * @param snippetKey - snippet name * @param params - params */ - static public void execute(String snippetName, Map params) { + static public void execute(String snippetKey, Map params) { Boolean logEnabled = UfApplication.getApp().getEnv().getProperty("device.snippet-execute-log-enable", Boolean.class); if ( Boolean.TRUE.equals(logEnabled) ) { - LOG.info("[Snippet Execute] : {} ({})", snippetName, UfJsonHelper.objectToJson(params)); + LOG.info("[Snippet Execute] : {} ({})", snippetKey, UfJsonHelper.objectToJson(params)); } + var snippet = UfActiveRecord.findOne(UfMdbSnippet.class, Map.of("key", snippetKey)); + if (null == snippet) { + throw new RuntimeException("无效的片段KEY : " + snippetKey); + } -// var snippet = UfActiveRecord.findOne(UfMdbSnippet.class, Map.of("key", snippetName)); -// if (null == snippet) { -// throw new RuntimeException("无效的片段名称 : " + snippetName); -// } -// -// var executor = new UfCmdSnippetExecutor(snippet, params); -// executor.run(); + var executor = new UfCmdSnippetExecutor(snippet, params); + executor.run(); } // constructor @@ -66,13 +65,18 @@ public class UfCmdSnippetExecutor { for ( JsonNode cmdNode : cmdsJsonTree ) { var cmdId = cmdNode.get("cmdId").asText(); - var cmd = UfActiveRecord.findOne(UfMdbActuatorCmd.class, cmdId); - if (null == cmd) { - throw new RuntimeException("无效的指令ID : " + cmdId); - } + var cmdParams = cmdNode.get("params").asText(); + this.executeStep(cmdId, cmdParams); + } + } - cmd.parameters = cmdNode.get("params").asText(); - UfActuatorCmdExecutor.execute(cmd); + // execute step + public void executeStep(String cmdId, String cmdParams) { + var cmd = UfActiveRecord.findOne(UfMdbActuatorCmd.class, cmdId); + if (null == cmd) { + throw new RuntimeException("无效的指令ID : " + cmdId); } + cmd.parameters = cmdParams; + UfActuatorCmdExecutor.execute(cmd); } } diff --git a/src/main/java/com/iflytop/digester/underframework/connection/UfConnection.java b/src/main/java/com/iflytop/digester/underframework/connection/UfConnection.java index 4042600..decd671 100644 --- a/src/main/java/com/iflytop/digester/underframework/connection/UfConnection.java +++ b/src/main/java/com/iflytop/digester/underframework/connection/UfConnection.java @@ -1,6 +1,5 @@ package com.iflytop.digester.underframework.connection; import com.iflytop.digester.underframework.dao.model.UfMdbActuatorCmd; - import java.util.Map; public interface UfConnection { /** @@ -20,4 +19,10 @@ public interface UfConnection { * @param properties - properties */ void setProperties( Map properties ); + + /** + * get if connection is enable + * @return true if enable + */ + Boolean getIsEnabled(); } diff --git a/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionBase.java b/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionBase.java index ba9b606..673a65d 100644 --- a/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionBase.java +++ b/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionBase.java @@ -10,6 +10,13 @@ abstract public class UfConnectionBase implements UfConnection { public String name; // key public String key; + // enable + public Boolean enable; + + @Override + public Boolean getIsEnabled() { + return this.enable; + } @Override public void setProperties(Map properties) { diff --git a/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionManager.java b/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionManager.java index 3361dc0..bff3f63 100644 --- a/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionManager.java +++ b/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionManager.java @@ -22,7 +22,9 @@ public class UfConnectionManager { String className = this.getClass().getPackageName() + ".Uf" + type; UfConnection con = (UfConnection)UfClassHelper.newInstance(className); con.setProperties(option); - con.connect(); + if ( con.getIsEnabled() ) { + con.connect(); + } this.connections.put(key, con); } } diff --git a/src/main/java/com/iflytop/digester/underframework/web/api/TsApiSnippet.java b/src/main/java/com/iflytop/digester/underframework/web/api/TsApiSnippet.java index b5b4dbf..910a4f2 100644 --- a/src/main/java/com/iflytop/digester/underframework/web/api/TsApiSnippet.java +++ b/src/main/java/com/iflytop/digester/underframework/web/api/TsApiSnippet.java @@ -1,4 +1,5 @@ package com.iflytop.digester.underframework.web.api; +import com.iflytop.digester.underframework.UfCmdSnippetExecutor; import com.iflytop.digester.underframework.dao.record.UfActiveRecord; import com.iflytop.digester.underframework.dao.model.UfMdbSnippet; import org.springframework.stereotype.Controller; @@ -37,7 +38,7 @@ public class TsApiSnippet extends UfApiControllerBase { public UfApiResponse execute(@RequestBody UfMdbSnippet snippet ) { try { snippet = UfActiveRecord.findOne(UfMdbSnippet.class, snippet.id); -// TsSnippetExecutor.executeSnippet(snippet); + UfCmdSnippetExecutor.execute(snippet.key); } catch ( Exception e ) { return error(e.getMessage()); } @@ -48,10 +49,11 @@ public class TsApiSnippet extends UfApiControllerBase { @ResponseBody public UfApiResponse executeStep(@RequestBody Map params ) { try { - String cmd = (String)params.get("cmd"); - String cmdParams = (String)params.get("params"); -// TsSnippetExecutor executor = new TsSnippetExecutor(null); -// executor.executeStep(cmd, cmdParams); + String cmdId = (String)params.get("cmdId"); + String cmdParams = (String)params.get("cmdParams"); + + var executor = new UfCmdSnippetExecutor(null, null); + executor.executeStep(cmdId, cmdParams); } catch ( Exception e ) { return error(e.getMessage()); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 01c44af..ac7c199 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -13,10 +13,12 @@ device: connections: - name : zcancmder key : zcancmder + enable : true type : ZcancmderWebsocket uri: ws://192.168.8.10:19005 - name : modbus key : modbus + enable : false type : ModbusRTUOverTCP host: 127.0.0.1 port: 502