diff --git a/app.db b/app.db index 468516c..2f5ff1e 100644 Binary files a/app.db and b/app.db differ diff --git a/src/main/java/com/iflytop/digester/model/MdbRuntimeLog.java b/src/main/java/com/iflytop/digester/model/MdbRuntimeLog.java index 4aef0b5..75e5257 100644 --- a/src/main/java/com/iflytop/digester/model/MdbRuntimeLog.java +++ b/src/main/java/com/iflytop/digester/model/MdbRuntimeLog.java @@ -1,7 +1,12 @@ package com.iflytop.digester.model; import com.iflytop.digester.underframework.dao.record.UfActiveRecord; import com.iflytop.digester.underframework.dao.record.UfActiveRecordField; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class MdbRuntimeLog extends UfActiveRecord { + // logger + public static final Logger LOG = LoggerFactory.getLogger(MdbRuntimeLog.class); + @UfActiveRecordField public String type; @@ -27,5 +32,6 @@ public class MdbRuntimeLog extends UfActiveRecord { log.timestamp = (int)(System.currentTimeMillis() / 1000); log.time = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new java.util.Date()); log.save(); + LOG.info("[{}] {}", type, log.content); } } diff --git a/src/main/java/com/iflytop/digester/underframework/UfCmdSnippetExecutor.java b/src/main/java/com/iflytop/digester/underframework/UfCmdSnippetExecutor.java index 2496bea..d2e8fea 100644 --- a/src/main/java/com/iflytop/digester/underframework/UfCmdSnippetExecutor.java +++ b/src/main/java/com/iflytop/digester/underframework/UfCmdSnippetExecutor.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.iflytop.digester.underframework.command.UfCommand; +import com.iflytop.digester.underframework.dao.model.UfMdbOption; import com.iflytop.digester.underframework.util.UfClassHelper; import freemarker.template.Configuration; import freemarker.template.Template; @@ -40,7 +41,7 @@ public class UfCmdSnippetExecutor { * @param params - params */ static public void execute(String snippetKey, Map params) { - Boolean logEnabled = UfApplication.getApp().getEnv().getProperty("device.snippet-execute-log-enable", Boolean.class); + Boolean logEnabled = UfMdbOption.getBoolean("DeviceCommandSnippetLogEnable", true); if ( Boolean.TRUE.equals(logEnabled) ) { LOG.info("[Snippet Execute] : {} ({})", snippetKey, UfJsonHelper.objectToJson(params)); } 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 673a65d..1befd05 100644 --- a/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionBase.java +++ b/src/main/java/com/iflytop/digester/underframework/connection/UfConnectionBase.java @@ -1,4 +1,5 @@ package com.iflytop.digester.underframework.connection; +import com.iflytop.digester.underframework.dao.model.UfMdbOption; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; @@ -38,6 +39,11 @@ abstract public class UfConnectionBase implements UfConnection { // log message protected void log( String message, Object... args) { + var enable = UfMdbOption.getBoolean("DeviceActuatorCommandLogEnable", true); + if ( !enable ) { + return ; + } + String content = String.format(message, args); LOG.info("[Connection : {}] {}" ,this.name, content); } diff --git a/src/main/java/com/iflytop/digester/underframework/connection/UfZcancmderWebsocket.java b/src/main/java/com/iflytop/digester/underframework/connection/UfZcancmderWebsocket.java index 3411b5e..490d8e7 100644 --- a/src/main/java/com/iflytop/digester/underframework/connection/UfZcancmderWebsocket.java +++ b/src/main/java/com/iflytop/digester/underframework/connection/UfZcancmderWebsocket.java @@ -4,6 +4,7 @@ import com.iflytop.digester.underframework.dao.model.UfMdbActuatorCmd; import com.iflytop.digester.underframework.dao.record.UfActiveRecord; import com.iflytop.digester.underframework.util.TsByteBuffer; import com.iflytop.digester.underframework.util.UfClassHelper; +import com.iflytop.digester.underframework.util.UfCommon; import org.java_websocket.client.WebSocketClient; import org.java_websocket.handshake.ServerHandshake; import java.net.URI; @@ -67,6 +68,8 @@ public class UfZcancmderWebsocket extends UfConnectionBase { @Override synchronized public String execute(UfMdbActuatorCmd command) { + UfCommon.delay(20); // 先延时个20ms,测试一下会不会死掉 + var parts = command.cmdKey.split("_"); for (int i = 0; i < parts.length; i++) { parts[i] = parts[i].substring(0, 1).toUpperCase() + parts[i].substring(1); @@ -157,7 +160,8 @@ public class UfZcancmderWebsocket extends UfConnectionBase { String cmd = this.buildCommand(actuatorCmd); UfMdbActuator actuator = UfMdbActuator.findOne(UfMdbActuator.class, actuatorCmd.actuatorId); - LOG.info(" [Command-Executor:{}] {}({}) => {}", actuator.name, actuatorCmd.cmdKey, actuatorCmd.parameters, cmd); + this.log("%s.%s(%s) => %s", actuator.name, actuatorCmd.cmdKey, actuatorCmd.parameters, cmd); + this.reconnectIfClosed(); TimerTask task = new TimerTask() { diff --git a/src/main/java/com/iflytop/digester/underframework/dao/model/UfMdbOption.java b/src/main/java/com/iflytop/digester/underframework/dao/model/UfMdbOption.java index 44a247f..18274f4 100644 --- a/src/main/java/com/iflytop/digester/underframework/dao/model/UfMdbOption.java +++ b/src/main/java/com/iflytop/digester/underframework/dao/model/UfMdbOption.java @@ -15,6 +15,9 @@ public class UfMdbOption extends UfActiveRecord { @UfActiveRecordField public String editable; + @UfActiveRecordField + public String dataType; + // get table name public static String getTableName() { return "app_options"; diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index f723b3e..8691ad6 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -9,7 +9,6 @@ spring: driver-class-name: org.sqlite.JDBC device: - snippet-execute-log-enable : true connections: - name : zcancmder key : zcancmder @@ -34,8 +33,6 @@ mqtt-broker: app : errorSlotIndex : 4 - liquidPeristalticPumpPipeSetupEnable : false - liquidPipeVolumn : 1 liquidWaterBucketIndex : 2 bucketVolumeCheckEnable : false opencv-library-path: D:/ProgramFiles/OpenCV/opencv/build/java/x64/opencv_java490.dll diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index 80fcfcc..1423367 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -9,7 +9,6 @@ spring: driver-class-name: org.sqlite.JDBC device: - snippet-execute-log-enable : false connections: - name : zcancmder key : zcancmder @@ -33,7 +32,6 @@ mqtt-broker: app : errorSlotIndex : 4 - liquidPeristalticPumpPipeSetupEnable : true opencv-library-path: /userdata/rootfs_overlay/usr/lib/jni/libopencv_java420.so pylon-library-path: /opt/pylon/lib/libpylonc.so.7.2 pylon-wrapper-path: /app/basler-camera-java-wrapper/libpylonc-wrapper.so \ No newline at end of file diff --git a/web b/web index 1891bd4..9380bd9 160000 --- a/web +++ b/web @@ -1 +1 @@ -Subproject commit 1891bd42f65e2e58ded882f3f5f0179e1fc1cfd8 +Subproject commit 9380bd9e280da60f53a323d70b8cb3135b2d5130