sige 1 year ago
parent
commit
9ca409cbc6
  1. BIN
      app.db
  2. 36
      src/main/java/com/iflytop/digester/underframework/UfCmdSnippetExecutor.java
  3. 7
      src/main/java/com/iflytop/digester/underframework/connection/UfConnection.java
  4. 7
      src/main/java/com/iflytop/digester/underframework/connection/UfConnectionBase.java
  5. 2
      src/main/java/com/iflytop/digester/underframework/connection/UfConnectionManager.java
  6. 12
      src/main/java/com/iflytop/digester/underframework/web/api/TsApiSnippet.java
  7. 2
      src/main/resources/application.yml

BIN
app.db

36
src/main/java/com/iflytop/digester/underframework/UfCmdSnippetExecutor.java

@ -21,31 +21,30 @@ public class UfCmdSnippetExecutor {
/** /**
* execute snippet * execute snippet
* @param snippetName - snippet name
* @param snippetKey - snippet key
*/ */
static public void execute(String snippetName) {
UfCmdSnippetExecutor.execute(snippetName, new HashMap<>());
static public void execute(String snippetKey) {
UfCmdSnippetExecutor.execute(snippetKey, new HashMap<>());
} }
/** /**
* execute snippet with params * execute snippet with params
* @param snippetName - snippet name
* @param snippetKey - snippet name
* @param params - params * @param params - params
*/ */
static public void execute(String snippetName, Map<String, Object> params) {
static public void execute(String snippetKey, Map<String, Object> params) {
Boolean logEnabled = UfApplication.getApp().getEnv().getProperty("device.snippet-execute-log-enable", Boolean.class); Boolean logEnabled = UfApplication.getApp().getEnv().getProperty("device.snippet-execute-log-enable", Boolean.class);
if ( Boolean.TRUE.equals(logEnabled) ) { 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 // constructor
@ -66,13 +65,18 @@ public class UfCmdSnippetExecutor {
for ( JsonNode cmdNode : cmdsJsonTree ) { for ( JsonNode cmdNode : cmdsJsonTree ) {
var cmdId = cmdNode.get("cmdId").asText(); var cmdId = cmdNode.get("cmdId").asText();
var cmdParams = cmdNode.get("params").asText();
this.executeStep(cmdId, cmdParams);
}
}
// execute step
public void executeStep(String cmdId, String cmdParams) {
var cmd = UfActiveRecord.findOne(UfMdbActuatorCmd.class, cmdId); var cmd = UfActiveRecord.findOne(UfMdbActuatorCmd.class, cmdId);
if (null == cmd) { if (null == cmd) {
throw new RuntimeException("无效的指令ID : " + cmdId); throw new RuntimeException("无效的指令ID : " + cmdId);
} }
cmd.parameters = cmdNode.get("params").asText();
cmd.parameters = cmdParams;
UfActuatorCmdExecutor.execute(cmd); UfActuatorCmdExecutor.execute(cmd);
} }
}
} }

7
src/main/java/com/iflytop/digester/underframework/connection/UfConnection.java

@ -1,6 +1,5 @@
package com.iflytop.digester.underframework.connection; package com.iflytop.digester.underframework.connection;
import com.iflytop.digester.underframework.dao.model.UfMdbActuatorCmd; import com.iflytop.digester.underframework.dao.model.UfMdbActuatorCmd;
import java.util.Map; import java.util.Map;
public interface UfConnection { public interface UfConnection {
/** /**
@ -20,4 +19,10 @@ public interface UfConnection {
* @param properties - properties * @param properties - properties
*/ */
void setProperties( Map<String, Object> properties ); void setProperties( Map<String, Object> properties );
/**
* get if connection is enable
* @return true if enable
*/
Boolean getIsEnabled();
} }

7
src/main/java/com/iflytop/digester/underframework/connection/UfConnectionBase.java

@ -10,6 +10,13 @@ abstract public class UfConnectionBase implements UfConnection {
public String name; public String name;
// key // key
public String key; public String key;
// enable
public Boolean enable;
@Override
public Boolean getIsEnabled() {
return this.enable;
}
@Override @Override
public void setProperties(Map<String, Object> properties) { public void setProperties(Map<String, Object> properties) {

2
src/main/java/com/iflytop/digester/underframework/connection/UfConnectionManager.java

@ -22,7 +22,9 @@ public class UfConnectionManager {
String className = this.getClass().getPackageName() + ".Uf" + type; String className = this.getClass().getPackageName() + ".Uf" + type;
UfConnection con = (UfConnection)UfClassHelper.newInstance(className); UfConnection con = (UfConnection)UfClassHelper.newInstance(className);
con.setProperties(option); con.setProperties(option);
if ( con.getIsEnabled() ) {
con.connect(); con.connect();
}
this.connections.put(key, con); this.connections.put(key, con);
} }
} }

12
src/main/java/com/iflytop/digester/underframework/web/api/TsApiSnippet.java

@ -1,4 +1,5 @@
package com.iflytop.digester.underframework.web.api; 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.record.UfActiveRecord;
import com.iflytop.digester.underframework.dao.model.UfMdbSnippet; import com.iflytop.digester.underframework.dao.model.UfMdbSnippet;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -37,7 +38,7 @@ public class TsApiSnippet extends UfApiControllerBase {
public UfApiResponse execute(@RequestBody UfMdbSnippet snippet ) { public UfApiResponse execute(@RequestBody UfMdbSnippet snippet ) {
try { try {
snippet = UfActiveRecord.findOne(UfMdbSnippet.class, snippet.id); snippet = UfActiveRecord.findOne(UfMdbSnippet.class, snippet.id);
// TsSnippetExecutor.executeSnippet(snippet);
UfCmdSnippetExecutor.execute(snippet.key);
} catch ( Exception e ) { } catch ( Exception e ) {
return error(e.getMessage()); return error(e.getMessage());
} }
@ -48,10 +49,11 @@ public class TsApiSnippet extends UfApiControllerBase {
@ResponseBody @ResponseBody
public UfApiResponse executeStep(@RequestBody Map<String,Object> params ) { public UfApiResponse executeStep(@RequestBody Map<String,Object> params ) {
try { 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 ) { } catch ( Exception e ) {
return error(e.getMessage()); return error(e.getMessage());
} }

2
src/main/resources/application.yml

@ -13,10 +13,12 @@ device:
connections: connections:
- name : zcancmder - name : zcancmder
key : zcancmder key : zcancmder
enable : true
type : ZcancmderWebsocket type : ZcancmderWebsocket
uri: ws://192.168.8.10:19005 uri: ws://192.168.8.10:19005
- name : modbus - name : modbus
key : modbus key : modbus
enable : false
type : ModbusRTUOverTCP type : ModbusRTUOverTCP
host: 127.0.0.1 host: 127.0.0.1
port: 502 port: 502

Loading…
Cancel
Save