sige 1 year ago
parent
commit
9ca409cbc6
  1. BIN
      app.db
  2. 42
      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. 4
      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

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

@ -21,31 +21,30 @@ public class UfCmdSnippetExecutor {
/**
* 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
* @param snippetName - snippet name
* @param snippetKey - snippet name
* @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);
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);
}
}

7
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<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;
// key
public String key;
// enable
public Boolean enable;
@Override
public Boolean getIsEnabled() {
return this.enable;
}
@Override
public void setProperties(Map<String, Object> properties) {

4
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);
}
}

12
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<String,Object> 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());
}

2
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

Loading…
Cancel
Save