Kaynağa Gözat

衢州 外置紧急泄放检测台程序完成

guoqiang 1 yıl önce
ebeveyn
işleme
9c2c38d4af

+ 12 - 191
app/log.txt

@@ -1,191 +1,12 @@
-DateTime:2023-01-05 16:16:52 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 16:16:52 周四 Message:qrc:/main.qml:6:1: module "QtTest" is not installed
-DateTime:2023-01-05 16:16:52 周四 Message:qrc:/main.qml:2:1: module "QtQuick.Controls" is not installed
-DateTime:2023-01-05 16:16:52 周四 Message:qrc:/main.qml:6:1: module "QtTest" is not installed
-DateTime:2023-01-05 16:16:52 周四 Message:qrc:/main.qml:2:1: module "QtQuick.Controls" is not installed
-DateTime:2023-01-05 16:18:34 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 16:18:34 周四 Message:qrc:/main.qml:2:1: module "QtQuick.Controls" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/main.qml:102:5: Type SafeValve unavailable
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:6:1: module "Qt.labs.platform" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:4:1: module "QtQuick.VirtualKeyboard.Settings" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:3:1: module "QtQuick.VirtualKeyboard" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:6:1: module "Qt.labs.platform" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:4:1: module "QtQuick.VirtualKeyboard.Settings" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:3:1: module "QtQuick.VirtualKeyboard" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:6:1: module "Qt.labs.platform" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:4:1: module "QtQuick.VirtualKeyboard.Settings" is not installed
-DateTime:2023-01-05 16:20:06 周四 Message:qrc:/SafeValve.qml:3:1: module "QtQuick.VirtualKeyboard" is not installed
-DateTime:2023-01-05 16:25:16 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 16:25:16 周四 Message:qrc:/main.qml:102:5: Type SafeValve unavailable
-DateTime:2023-01-05 16:25:16 周四 Message:qrc:/SafeValve.qml:580:21: Type CurveDisplay unavailable
-DateTime:2023-01-05 16:25:16 周四 Message:qrc:/CurveDisplay.qml:2:1: module "QtCharts" is not installed
-DateTime:2023-01-05 16:25:46 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 16:25:46 周四 Message:qrc:/main.qml:102:5: Type SafeValve unavailable
-DateTime:2023-01-05 16:25:46 周四 Message:qrc:/SafeValve.qml:599:25: Type Gauge unavailable
-DateTime:2023-01-05 16:25:46 周四 Message:qrc:/Gauge.qml:6:1: module "QtGraphicalEffects" is not installed
-DateTime:2023-01-05 16:26:11 周四 Message:"OpenCOM3 Error"
-DateTime:2023-01-05 16:26:12 周四 Message:打开传感器串口COM3失败
-DateTime:2023-01-05 16:26:12 周四 Message:"OpenCOM4 Error"
-DateTime:2023-01-05 16:26:12 周四 Message:打开控制串口COM4失败
-DateTime:2023-01-05 16:26:12 周四 Message:32
-DateTime:2023-01-05 16:26:12 周四 Message:10
-DateTime:2023-01-05 16:26:12 周四 Message:openPressureTimeMax: 30
-DateTime:2023-01-05 16:26:12 周四 Message:qrc:/BreatheValve.qml:845:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-01-05 16:26:12 周四 Message:qrc:/BreatheValve.qml:824:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-01-05 16:26:12 周四 Message:BreathValve Carplattext:京
-DateTime:2023-01-05 16:26:12 周四 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-01-05 16:26:12 周四 Message:BreathValve Carplattext:浙
-DateTime:2023-01-05 16:26:35 周四 Message:BreathValve Carplattext:浙A
-DateTime:2023-01-05 16:26:37 周四 Message:BreathValve Carplattext:浙A4
-DateTime:2023-01-05 16:26:37 周四 Message:BreathValve Carplattext:浙A45
-DateTime:2023-01-05 16:26:37 周四 Message:BreathValve Carplattext:浙A455
-DateTime:2023-01-05 16:26:37 周四 Message:BreathValve Carplattext:浙A4555
-DateTime:2023-01-05 16:26:38 周四 Message:BreathValve Carplattext:浙A45555
-DateTime:2023-01-05 16:26:43 周四 Message:正在自检....
-DateTime:2023-01-05 16:26:43 周四 Message:调节阀通讯错误
-DateTime:2023-01-05 16:26:43 周四 Message:调节阀通讯错误
-DateTime:2023-01-05 16:26:43 周四 Message:调节阀通讯错误
-DateTime:2023-01-05 16:26:43 周四 Message:自检错误
-DateTime:2023-01-05 16:26:46 周四 Message:reportPositiveGeneratePicture
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message:reportNegativeGeneratePicture
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message:reportCapsizeGeneratePicture
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message: modata is null
-DateTime:2023-01-05 16:26:46 周四 Message:file:///20230105162646_1212_12123333_22222_浙A45555
-DateTime:2023-01-05 16:26:48 周四 Message:receiveGenerateBreatheValveWord
-DateTime:2023-01-05 16:26:48 周四 Message:正在生成报告,请耐心等待
-DateTime:2023-01-05 16:26:52 周四 Message:QAxBase: Error calling IDispatch member BackgroundPatternColor: Exception thrown by server
-DateTime:2023-01-05 16:26:52 周四 Message:             Code       : -2146822445
-DateTime:2023-01-05 16:26:52 周四 Message:             Source     : Microsoft Word
-DateTime:2023-01-05 16:26:52 周四 Message:             Description: ???????
-DateTime:2023-01-05 16:26:52 周四 Message:             Help       : wdmain11.chm [25323]
-DateTime:2023-01-05 16:26:52 周四 Message:         Connect to the exception(int,QString,QString,QString) signal to catch this exception
-DateTime:2023-01-05 16:26:52 周四 Message:QAxBase: Error calling IDispatch member BackgroundPatternColor: Exception thrown by server
-DateTime:2023-01-05 16:26:52 周四 Message:             Code       : -2146822445
-DateTime:2023-01-05 16:26:52 周四 Message:             Source     : Microsoft Word
-DateTime:2023-01-05 16:26:52 周四 Message:             Description: ???????
-DateTime:2023-01-05 16:26:52 周四 Message:             Help       : wdmain11.chm [25323]
-DateTime:2023-01-05 16:26:52 周四 Message:         Connect to the exception(int,QString,QString,QString) signal to catch this exception
-DateTime:2023-01-05 16:26:52 周四 Message:QAxBase: Error calling IDispatch member BackgroundPatternColor: Exception thrown by server
-DateTime:2023-01-05 16:26:52 周四 Message:             Code       : -2146822445
-DateTime:2023-01-05 16:26:52 周四 Message:             Source     : Microsoft Word
-DateTime:2023-01-05 16:26:52 周四 Message:             Description: ???????
-DateTime:2023-01-05 16:26:52 周四 Message:             Help       : wdmain11.chm [25323]
-DateTime:2023-01-05 16:26:52 周四 Message:         Connect to the exception(int,QString,QString,QString) signal to catch this exception
-DateTime:2023-01-05 16:26:53 周四 Message:QAxBase: Error calling IDispatch member BackgroundPatternColor: Exception thrown by server
-DateTime:2023-01-05 16:26:53 周四 Message:             Code       : -2146822445
-DateTime:2023-01-05 16:26:53 周四 Message:             Source     : Microsoft Word
-DateTime:2023-01-05 16:26:53 周四 Message:             Description: ???????
-DateTime:2023-01-05 16:26:53 周四 Message:             Help       : wdmain11.chm [25323]
-DateTime:2023-01-05 16:26:53 周四 Message:         Connect to the exception(int,QString,QString,QString) signal to catch this exception
-DateTime:2023-01-05 16:26:53 周四 Message:报告已完成
-DateTime:2023-01-05 18:49:03 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 18:49:03 周四 Message:qrc:/main.qml:1:1: plugin cannot be loaded for module "QtQuick": Cannot load library D:\Code\QTapps\valve_experiment\QtQuick.2\qtquick2plugin.dll: 找不到指定的模块。
-DateTime:2023-01-05 18:49:27 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 18:49:27 周四 Message:qrc:/main.qml:1:1: plugin cannot be loaded for module "QtQuick": Cannot load library D:\Code\QTapps\valve_experiment\QtQuick.2\qtquick2plugin.dll: 找不到指定的模块。
-DateTime:2023-01-05 19:17:31 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 19:17:31 周四 Message:qrc:/main.qml:1:1: plugin cannot be loaded for module "QtQuick": Cannot load library D:\Code\QTapps\valve_experiment\QtQuick.2\qtquick2plugin.dll: 找不到指定的模块。
-DateTime:2023-01-05 19:19:56 周四 Message:QQmlApplicationEngine failed to load component
-DateTime:2023-01-05 19:19:56 周四 Message:qrc:/main.qml:102:5: Type SafeValve unavailable
-DateTime:2023-01-05 19:19:56 周四 Message:qrc:/SafeValve.qml:3:1: plugin cannot be loaded for module "QtQuick.VirtualKeyboard": Cannot load library D:\Code\QTapps\valve_experiment\QtQuick\VirtualKeyboard\qtquickvirtualkeyboardplugin.dll: 找不到指定的模块。
-DateTime:2023-01-05 19:20:08 周四 Message:"OpenCOM3 Error"
-DateTime:2023-01-05 19:20:08 周四 Message:打开传感器串口COM3失败
-DateTime:2023-01-05 19:20:08 周四 Message:"OpenCOM4 Error"
-DateTime:2023-01-05 19:20:08 周四 Message:打开控制串口COM4失败
-DateTime:2023-01-05 19:20:08 周四 Message:32
-DateTime:2023-01-05 19:20:08 周四 Message:10
-DateTime:2023-01-05 19:20:08 周四 Message:openPressureTimeMax: 30
-DateTime:2023-01-05 19:20:08 周四 Message:qrc:/BreatheValve.qml:845:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-01-05 19:20:08 周四 Message:qrc:/BreatheValve.qml:824:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-01-05 19:20:08 周四 Message:BreathValve Carplattext:京
-DateTime:2023-01-05 19:20:08 周四 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-01-05 19:20:08 周四 Message:BreathValve Carplattext:浙
-DateTime:2023-10-30 16:21:02 周一 Message:"OpenCOM3 Error"
-DateTime:2023-10-30 16:21:02 周一 Message:打开传感器串口COM3失败
-DateTime:2023-10-30 16:21:02 周一 Message:"OpenCOM4 Error"
-DateTime:2023-10-30 16:21:02 周一 Message:打开控制串口COM4失败
-DateTime:2023-10-30 16:21:02 周一 Message:32
-DateTime:2023-10-30 16:21:02 周一 Message:10
-DateTime:2023-10-30 16:21:02 周一 Message:openPressureTimeMax: 30
-DateTime:2023-10-30 16:21:03 周一 Message:qrc:/BreatheValve.qml:845:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-10-30 16:21:03 周一 Message:qrc:/BreatheValve.qml:824:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-10-30 16:21:03 周一 Message:BreathValve Carplattext:京
-DateTime:2023-10-30 16:21:03 周一 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-10-30 16:21:03 周一 Message:BreathValve Carplattext:浙
-DateTime:2023-10-30 16:21:07 周一 Message:sealPressureTimemax: 60
-DateTime:2023-10-30 16:21:07 周一 Message:openPressureTimeMax: 30
-DateTime:2023-10-30 16:21:07 周一 Message:SafeValve Carplattext:京
-DateTime:2023-10-30 16:21:07 周一 Message:qrc:/SafeValve.qml:224:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-10-30 16:21:07 周一 Message:SafeValve Carplattext:浙
-DateTime:2023-10-30 16:21:07 周一 Message:closeAllValve start
-DateTime:2023-10-30 16:21:07 周一 Message:lampState: false
-DateTime:2023-10-30 16:21:07 周一 Message:02 0F 00 00 00 10 02 00 00
-DateTime:2023-10-30 16:21:07 周一 Message:closeAllValve end
-DateTime:2023-11-20 10:03:26 周一 Message:"OpenCOM3 Error"
-DateTime:2023-11-20 10:03:26 周一 Message:打开传感器串口COM3失败
-DateTime:2023-11-20 10:03:26 周一 Message:"OpenCOM4 Error"
-DateTime:2023-11-20 10:03:26 周一 Message:打开控制串口COM4失败
-DateTime:2023-11-20 10:03:26 周一 Message:32
-DateTime:2023-11-20 10:03:26 周一 Message:10
-DateTime:2023-11-20 10:03:26 周一 Message:openPressureTimeMax: 30
-DateTime:2023-11-20 10:03:27 周一 Message:qrc:/BreatheValve.qml:845:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-20 10:03:27 周一 Message:qrc:/BreatheValve.qml:824:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-20 10:03:27 周一 Message:BreathValve Carplattext:京
-DateTime:2023-11-20 10:03:27 周一 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-20 10:03:27 周一 Message:BreathValve Carplattext:浙
-DateTime:2023-11-20 10:03:30 周一 Message:sealPressureTimemax: 60
-DateTime:2023-11-20 10:03:30 周一 Message:openPressureTimeMax: 30
-DateTime:2023-11-20 10:03:30 周一 Message:SafeValve Carplattext:京
-DateTime:2023-11-20 10:03:30 周一 Message:qrc:/SafeValve.qml:224:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-20 10:03:30 周一 Message:SafeValve Carplattext:浙
-DateTime:2023-11-20 10:03:30 周一 Message:closeAllValve start
-DateTime:2023-11-20 10:03:30 周一 Message:lampState: false
-DateTime:2023-11-20 10:03:30 周一 Message:02 0F 00 00 00 10 02 00 00
-DateTime:2023-11-20 10:03:30 周一 Message:closeAllValve end
-DateTime:2023-11-20 10:28:11 周一 Message:"OpenCOM3 Error"
-DateTime:2023-11-20 10:28:11 周一 Message:打开传感器串口COM3失败
-DateTime:2023-11-20 10:28:11 周一 Message:"OpenCOM4 Error"
-DateTime:2023-11-20 10:28:11 周一 Message:打开控制串口COM4失败
-DateTime:2023-11-20 10:28:11 周一 Message:32
-DateTime:2023-11-20 10:28:11 周一 Message:10
-DateTime:2023-11-20 10:28:11 周一 Message:openPressureTimeMax: 30
-DateTime:2023-11-20 10:28:12 周一 Message:qrc:/BreatheValve.qml:845:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-20 10:28:12 周一 Message:qrc:/BreatheValve.qml:824:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-20 10:28:12 周一 Message:BreathValve Carplattext:京
-DateTime:2023-11-20 10:28:12 周一 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-20 10:28:12 周一 Message:BreathValve Carplattext:浙
-DateTime:2023-11-20 10:28:15 周一 Message:sealPressureTimemax: 60
-DateTime:2023-11-20 10:28:15 周一 Message:openPressureTimeMax: 30
-DateTime:2023-11-20 10:28:15 周一 Message:SafeValve Carplattext:京
-DateTime:2023-11-20 10:28:15 周一 Message:qrc:/SafeValve.qml:224:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-20 10:28:15 周一 Message:SafeValve Carplattext:浙
-DateTime:2023-11-20 10:28:15 周一 Message:closeAllValve start
-DateTime:2023-11-20 10:28:15 周一 Message:lampState: false
-DateTime:2023-11-20 10:28:15 周一 Message:02 0F 00 00 00 10 02 00 00
-DateTime:2023-11-20 10:28:15 周一 Message:closeAllValve end
-DateTime:2023-11-22 14:01:08 周三 Message:"OpenCOM3 Error"
-DateTime:2023-11-22 14:01:08 周三 Message:打开传感器串口COM3失败
-DateTime:2023-11-22 14:01:08 周三 Message:"OpenCOM4 Error"
-DateTime:2023-11-22 14:01:08 周三 Message:打开控制串口COM4失败
-DateTime:2023-11-22 14:01:08 周三 Message:32
-DateTime:2023-11-22 14:01:08 周三 Message:10
-DateTime:2023-11-22 14:01:08 周三 Message:openPressureTimeMax: 30
-DateTime:2023-11-22 14:01:08 周三 Message:qrc:/BreatheValve.qml:845:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-22 14:01:08 周三 Message:qrc:/BreatheValve.qml:824:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-22 14:01:09 周三 Message:BreathValve Carplattext:京
-DateTime:2023-11-22 14:01:09 周三 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
-DateTime:2023-11-22 14:01:09 周三 Message:BreathValve Carplattext:浙
+DateTime:2024-07-29 17:42:49 周一 Message:"OpenCOM3 Error"
+DateTime:2024-07-29 17:42:49 周一 Message:打开传感器串口COM3失败
+DateTime:2024-07-29 17:42:49 周一 Message:"OpenCOM4 Error"
+DateTime:2024-07-29 17:42:49 周一 Message:打开控制串口COM4失败
+DateTime:2024-07-29 17:42:49 周一 Message:32
+DateTime:2024-07-29 17:42:49 周一 Message:10
+DateTime:2024-07-29 17:42:49 周一 Message:openPressureTimeMax: 30
+DateTime:2024-07-29 17:42:50 周一 Message:qrc:/BreatheValve.qml:845:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-07-29 17:42:50 周一 Message:qrc:/BreatheValve.qml:824:29: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-07-29 17:42:50 周一 Message:BreathValve Carplattext:京
+DateTime:2024-07-29 17:42:50 周一 Message:qrc:/BreatheValve.qml:348:13: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
+DateTime:2024-07-29 17:42:50 周一 Message:BreathValve Carplattext:浙

BIN
app/valve_experiment.exe


+ 218 - 129
src/PeopleCoverHoleValve.qml

@@ -63,19 +63,48 @@ Item {
             property var pointList3:[]
             property var pointList4:[]
             property var pointList5:[]
+            property int  delayCnt: 0
+            property int  delayType: 0
+            property int currentIndex :0
+
+            onResultSigFun: {
+                //需要区分第一次 第二次 第三次
+                switch(groupbox.currentIndex){
+                case 0:
+                    resultSetPressure1.paraResult  = result.openPressureNumber
+                    resultSealPressure1.paraResult = result.sealPressureNumber
+                    break;
+                case 1:
+                    resultSetPressure2.paraResult  = result.openPressureNumber
+                    resultSealPressure2.paraResult = result.sealPressureNumber
+                    break;
+                case 2:
+                    resultSetPressure3.paraResult  = result.openPressureNumber
+                    resultSealPressure3.paraResult = result.sealPressureNumber
+                    break;
+                }
+
+            }
+
 
 
             function pressureDisplayInput(number){
                 pressureCnt++
+                console.log("pressureDisplayInput number:%f", number)
+                if(number+2 > curveDisplay.axisyMax ){
+                    curveDisplay.axisyMax = number +2
+                }
+
                 if(pressureCnt <= 61){
                     dataArray.push(number)
                     curveDisplay.spline.append(pressureCnt-1,number)
                 }
                 else{
                     dataArray.push(number)
-                    dataArray.shift()
+                    //dataArray.shift()
                     curveDisplay.spline.clear()
-                    for(var i=0; i<61; i++){
+                    curveDisplay.axisxMax = pressureCnt+1
+                    for(var i=0; i<pressureCnt; i++){
                         curveDisplay.spline.append(i,dataArray[i])
                     }
                 }
@@ -97,11 +126,26 @@ Item {
                 repeat: false
                 interval: 500
                 onTriggered: {
-                    //ModbusJs.closeAllValve(controlSerial)
+                    ModbusJs.closeAllValve(controlSerial)
                     testStop()
                 }
             }
 
+            Timer{
+                id:delayTimer
+                repeat: false
+                interval: 5000
+                onTriggered: {
+                    if(delayType === 0){
+                        PeopleCoverHoleValveTestJs.airCylinderHoldUp()
+                    }else{
+                        PeopleCoverHoleValveTestJs.airCylinderHoldDown()
+                    }
+
+                    delayCnt = 0
+                }
+            }
+
             Timer{
                 id:startTimer
                 repeat: false
@@ -110,60 +154,60 @@ Item {
                     choosevalve.menuEnable = false
                     PeopleCoverHoleValveTestJs.exit = false
                     console.log("正在自检....")
+
                     var ret = ModbusJs.checkModebusDevice(controlSerial,sensorSerial,log)
                     if(ret === false){
                         log.show("自检错误")
                         testStop()
                         choosevalve.menuEnable = true
                         return
+                    }else{
+
                     }
+
                     curveDisplay.spline.clear()
                     groupbox.pressureCnt =0
                     groupbox.dataArray = []
-                    var currentIndex = 0
-                    if(testTypeComboBox.currentText === "密封压力试验"){
-
-                        do{
-                            let tab =  tabview1.getTab(currentIndex+3)
-                            let sealPressureModel = tab.item.modelData
-                            sealPressureModel.clear()
-
-                            ret =  PeopleCoverHoleValveTestJs.testSealPressureStart(currentIndex+3,tabview1,processWindow,controlSerial,sensorSerial,
-                                                                                    sealPressureModel,pressureDisplaySigFun,resultSigFun,spy,log)
-                            if(ret === false){
-                                processWindow.show("测试退出,泄气中...")
-                                PeopleCoverHoleValveTestJs.runningBackup = groupbox.running
-                                PeopleCoverHoleValveTestJs.releasePressure(controlSerial,pressureDisplaySigFun,spy,log)
-                            }
-                            spy.wait(1500) //延时 确认全关继电器
-                            currentIndex++
-                        }while(currentIndex <root.count && ret === true)
+                    groupbox.currentIndex = 0
+
+                    do{
+                        //let tab =  tabview1.getTab(groupbox.currentIndex)
+                        //let sealPressureModel = tab.item.modelData
+                        //sealPressureModel.clear()
+
+                        var tab = tabview1.getTab(groupbox.currentIndex)
+                        var tabView = tabview1
+                        var openPressureModel = tab.item.modelData
+                        tab =  tabview1.getTab(groupbox.currentIndex+3)
+                        var sealPressureModel = tab.item.modelData
+                        openPressureModel.clear()
+                        sealPressureModel.clear()
+                        reuslt.visible = false
+
+
+                        ret =  PeopleCoverHoleValveTestJs.testStart(groupbox.currentIndex,tabview1,processWindow,controlSerial,sensorSerial,
+                                                                                openPressureModel,sealPressureModel,
+                                                                                pressureDisplaySigFun,resultSigFun,spy,log)
+                        if(ret === false){
+                            processWindow.show("测试退出,泄气中...")
+                            PeopleCoverHoleValveTestJs.runningBackup = groupbox.running
+                            PeopleCoverHoleValveTestJs.releasePressure(controlSerial,pressureDisplaySigFun,spy,log)
+                        }
+                        spy.wait(500) //延时 确认全关继电器
+                        groupbox.currentIndex++
+                    }while(groupbox.currentIndex <root.count && ret === true)
 
-                    }
-                    else{ //密封泄放压力
-                        do{
-                            let tab =  tabview1.getTab(currentIndex)
-                            let releasePressureModel = tab.item.modelData
-                            releasePressureModel.clear()
-                            ret =  PeopleCoverHoleValveTestJs.testReleasePressureStart(currentIndex,tabview1,processWindow,controlSerial,sensorSerial,
-                                                                                       releasePressureModel,pressureDisplaySigFun,resultSigFun,spy,log)
-                            if(ret === false){
-                                processWindow.show("测试退出,泄气中...")
-                                PeopleCoverHoleValveTestJs.runningBackup = groupbox.running
-                                PeopleCoverHoleValveTestJs.releasePressure(controlSerial,pressureDisplaySigFun,spy,log)
-                            }
-                            spy.wait(1500) //延时 确认全关继电器
-                            currentIndex++
-                        }while(currentIndex <root.count && ret === true)
-                    }
-                    testStop()
+
+                    groupbox.testStop()
                     choosevalve.menuEnable = true
                 }
             }
 
             function testStop(){
                 processWindow.exit()
+                reuslt.visible = true
                 startStopButton.running = false
+                PeopleCoverHoleValveTestJs.resetio()
             }
 
             Connections{
@@ -224,12 +268,13 @@ Item {
                     obj.state = root.state
                     obj.setPressure = ""
                     obj.valve="人孔盖"
-                    obj.resultSetPressure1 = ""
-                    obj.resultSetPressure2 = ""
-                    obj.resultSetPressure3 = ""
-                    obj.resultSealPressure1 = ""
-                    obj.resultSealPressure2 = ""
-                    obj.resultSealPressure3 = ""
+                    obj.resultSetPressure1 = resultSetPressure1.paraResult
+                    obj.resultSetPressure2 = resultSetPressure2.paraResult
+                    obj.resultSetPressure3 = resultSetPressure3.paraResult
+
+                    obj.resultSealPressure1 = resultSealPressure1.paraResult
+                    obj.resultSealPressure2 = resultSealPressure2.paraResult
+                    obj.resultSealPressure3 = resultSealPressure3.paraResult
                     reportWord.generateWord(savePath,obj)
                 }
             }
@@ -247,6 +292,10 @@ Item {
                 animationExit.running = true
                 startStopButton.running = false
                 stopTimer.start()
+                PeopleCoverHoleValveTestJs.resetio()
+                PeopleCoverHoleValveTestJs.reset_airCylinder()
+
+                PeopleCoverHoleValveTestJs.exit = true
             }
 
             //加载任务动画效果
@@ -348,85 +397,7 @@ Item {
                                         }
 
                                     }
-                                    InputLine{
-                                        id:releasePressureTimeMaxInputLine
-                                        paraName: "泄压计时:"
-                                        paraLength: 40
-                                        text: PeopleCoverHoleValveTestJs.releasePressureTimeMax
-                                        validator:RegExpValidator {
-                                            regExp: /[0-9]*/
-                                        }
-                                        inputMethodHints: Qt.ImhDigitsOnly
-                                        onTextChanged: {
-                                            PeopleCoverHoleValveTestJs.releasePressureTimeMax = Number(text)
-                                            console.log("releasePressureTimeMax:",PeopleCoverHoleValveTestJs.releasePressureTimeMax)
-                                            if(Number(text) >180){
-                                               text = 180
-                                            }
-                                        }
-//                                        onTextFocusChanged: {
-//                                            if(Number(text) >180){
-//                                               text = 180
-//                                            }
-//                                        }
-                                    }
 
-                                    InputLine{
-                                        id:sealPressureTimemaxInputLine
-                                        paraName: "密封计时:"
-                                        paraLength: 40
-                                        text: PeopleCoverHoleValveTestJs.sealPressureTimemax
-                                        validator:RegExpValidator {
-                                            regExp: /[0-9]*/
-                                        }
-                                        inputMethodHints: Qt.ImhDigitsOnly
-                                        onTextChanged: {
-                                            PeopleCoverHoleValveTestJs.sealPressureTimemax = Number(text)
-                                            console.log("sealPressureTimemax:",PeopleCoverHoleValveTestJs.sealPressureTimemax)
-                                            if(Number(text) >180){
-                                               text = 180
-                                            }
-                                        }
-//                                        onTextFocusChanged: {
-//                                            if(Number(text) >180){
-//                                               text = 180
-//                                            }
-//                                        }
-                                    }
-                                }
-
-                                Row{
-                                    spacing: 15
-                                    UserComboBox{
-                                        id:testTypeComboBox
-                                        enabled: !groupbox.running
-                                        width: 120
-                                        height:25
-                                        bgColor:"#D2D5D9"
-                                        model: ["泄放压力试验","密封压力试验"]
-                                        onCurrentTextChanged: {
-                                            switch(currentText){
-                                            case "泄放压力试验":
-                                                PeopleCoverHoleValveTestJs.releasePressureTimeMax = 30
-                                                PeopleCoverHoleValveTestJs.sealPressureTimemax = 60
-                                                sealPressureTimemaxInputLine.text = PeopleCoverHoleValveTestJs.sealPressureTimemax
-                                                releasePressureTimeMaxInputLine.text = PeopleCoverHoleValveTestJs.releasePressureTimeMax
-                                                break
-                                            case "密封压力试验":
-                                                PeopleCoverHoleValveTestJs.releasePressureTimeMax = 30
-                                                PeopleCoverHoleValveTestJs.sealPressureTimemax = 60
-                                                sealPressureTimemaxInputLine.text = PeopleCoverHoleValveTestJs.sealPressureTimemax
-                                                releasePressureTimeMaxInputLine.text = PeopleCoverHoleValveTestJs.releasePressureTimeMax
-                                                break
-                                            }
-                                        }
-
-                                        Binding{
-                                            target: root
-                                            property: "testType"
-                                            value: testTypeComboBox.currentIndex
-                                        }
-                                    }
 
                                     UserComboBox{
                                         id:valveStateComboBox
@@ -456,6 +427,115 @@ Item {
                                     }
 
 
+                                }
+
+                                Row{
+                                    spacing: 15
+
+                                    Button{
+                                        id:upButton
+                                        text: "压抓上升"
+                                        width: 115
+                                        height: 25
+                                        onClicked: {
+                                            if(delayCnt === 0){
+                                                PeopleCoverHoleValveTestJs.airCylinderUp()
+                                                delayType = 0
+                                                delayCnt = 5
+                                                delayTimer.start()
+                                            }else{
+
+                                            }
+
+
+
+                                        }
+                                    }
+                                    Button{
+                                        id:downButton
+                                        text: "压抓下降"
+                                        width: 115
+                                        height: 25
+                                        onClicked: {
+                                            //PeopleCoverHoleValveTestJs.airCylinderDown()
+                                            if(delayCnt === 0){
+                                                PeopleCoverHoleValveTestJs.airCylinderDown()
+                                                delayType = 1
+                                                delayCnt = 5
+                                                delayTimer.start()
+                                            }else{
+
+                                            }
+                                        }
+                                    }
+
+                                    InputLine{
+                                        id:openPressure_min
+                                        paraName: "最小开启压力(kPa):"
+                                        paraLength: 40
+                                        text: PeopleCoverHoleValveTestJs.openPressureMin
+                                        validator:RegExpValidator {
+                                            regExp: /[0-9]*/
+                                        }
+                                        inputMethodHints: Qt.ImhDigitsOnly
+                                        onTextChanged: {
+                                            PeopleCoverHoleValveTestJs.openPressureMin = Number(text)
+                                            console.log("openPressureMin:",PeopleCoverHoleValveTestJs.openPressureMin)
+
+                                        }
+
+                                    }
+
+                                    InputLine{
+                                        id:openPressure_max
+                                        paraName: "最大开启压力(kPa):"
+                                        paraLength: 40
+                                        text: PeopleCoverHoleValveTestJs.openPressureMax
+                                        validator:RegExpValidator {
+                                            regExp: /[0-9]*/
+                                        }
+                                        inputMethodHints: Qt.ImhDigitsOnly
+                                        onTextChanged: {
+                                            PeopleCoverHoleValveTestJs.openPressureMax = Number(text)
+                                            console.log("openPressureMax:",PeopleCoverHoleValveTestJs.openPressureMax)
+
+                                        }
+                                    }
+
+
+                                    InputLine{
+                                        id:max_testtime
+                                        paraName: "压力平稳时间(秒):"
+                                        paraLength: 40
+                                        text: PeopleCoverHoleValveTestJs.maxPressureStableTime
+                                        validator:RegExpValidator {
+                                            regExp: /[0-9]*/
+                                        }
+                                        inputMethodHints: Qt.ImhDigitsOnly
+                                        onTextChanged: {
+                                            PeopleCoverHoleValveTestJs.maxPressureStableTime = Number(text)
+                                            console.log("maxPressureStableTime:",PeopleCoverHoleValveTestJs.maxPressureStableTime)
+
+                                        }
+                                     }
+
+
+                                    // Button{
+                                    //     id:setzero
+                                    //     text: "压力传感器标零"
+                                    //     width: 120
+                                    //     height: 25
+                                    //     onClicked: {
+                                    //         if(true === ModbusJs.mh_PressureSetZeroReq(sensorSerial)){
+                                    //             log.show("压力传感器标零成功")
+                                    //         }else{
+                                    //             log.show("压力传感器标零失败")
+                                    //         }
+
+                                    //     }
+                                    // }
+
+
 
 
                                 }
@@ -505,7 +585,7 @@ Item {
                         height: 300
                         axisxMax:60
                         axisxMin:0
-                        axisyMax:50
+                        axisyMax:35
                         axisyMin:0
                         name:"横轴时间(秒) 纵轴压力(kPa)"
                     }
@@ -551,7 +631,7 @@ Item {
 
                             Item {
                                 id:reuslt
-                                visible: false
+                                //visible: false
                                 anchors.fill: parent
                                 anchors.margins: 10
                                 property int resultHeight: 25
@@ -561,11 +641,12 @@ Item {
                                         width: reuslt.width
                                         height: reuslt.resultHeight
                                         color: "white"
-                                        paraName: "泄放压力"
+                                        paraName: "开启压力"
                                         paraResult:""
                                         paraUnit:""
                                     }
                                     ResultDisplayText{
+                                        id:resultSetPressure1
                                         width: reuslt.width
                                         height: reuslt.resultHeight
                                         color: "#D2D5D9"
@@ -574,6 +655,7 @@ Item {
                                         paraUnit:"kPa"
                                     }
                                     ResultDisplayText{
+                                        id:resultSetPressure2
                                         width: reuslt.width
                                         height: reuslt.resultHeight
                                         color: "#DFE2E6"
@@ -582,6 +664,7 @@ Item {
                                         paraUnit:"kPa"
                                     }
                                     ResultDisplayText{
+                                        id:resultSetPressure3
                                         width: reuslt.width
                                         height: reuslt.resultHeight
                                         color: "#D2D5D9"
@@ -607,6 +690,7 @@ Item {
                                     }
 
                                     ResultDisplayText{
+                                        id:resultSealPressure1
                                         width: reuslt.width
                                         height: reuslt.resultHeight
                                         color: "#DFE2E6"
@@ -615,6 +699,7 @@ Item {
                                         paraUnit:"kPa"
                                     }
                                     ResultDisplayText{
+                                        id:resultSealPressure2
                                         width: reuslt.width
                                         height: reuslt.resultHeight
                                         color: "#D2D5D9"
@@ -623,6 +708,7 @@ Item {
                                         paraUnit:"kPa"
                                     }
                                     ResultDisplayText{
+                                        id:resultSealPressure3
                                         width: reuslt.width
                                         height: reuslt.resultHeight
                                         color: "#DFE2E6"
@@ -676,7 +762,7 @@ Item {
                         }
 
                         Tab {
-                            title: "第一次泄放记录"
+                            title: "第一次开启记录"
                             active: true
                             RecordTable{
 //                                Component.onCompleted: {
@@ -685,7 +771,7 @@ Item {
                             }
                         }
                         Tab {
-                            title: "第二次泄放记录"
+                            title: "第二次开启记录"
                             active: true
                             RecordTable{
 //                                Component.onCompleted: {
@@ -694,7 +780,7 @@ Item {
                             }
                         }
                         Tab {
-                            title: "第三次泄放记录"
+                            title: "第三次开启记录"
                             active: true
                             RecordTable{
 //                                Component.onCompleted: {
@@ -702,6 +788,7 @@ Item {
 //                                }
                             }
                         }
+
                         Tab {
                             title: "第一次密封记录"
                             active: true
@@ -729,6 +816,8 @@ Item {
 //                                }
                             }
                         }
+
+
                     }
                 }
 

+ 1 - 1
src/SafeValve.qml

@@ -56,7 +56,7 @@ Item {
             property var pointList3:[]
             property var pointList4:[]
             property var pointList5:[]
-            property var currentIndex :0
+            property int currentIndex :0
 
             signal pressureDisplaySigFun(var pressureNumber)
             signal resultSigFun(var result)

+ 3 - 1
src/generateword.cpp

@@ -479,7 +479,9 @@ void GenerateWord::receiveGenerateWord(QString savePath, QVariant obj)
     QString resultSealPressure3 = map["resultSealPressure3"].toString();
 
     QString text;
-    QTextCodec *codec = QTextCodec::codecForName("GBK");
+    //QTextCodec *codec = QTextCodec::codecForName("GBK");
+    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
+
     QString text1 = codec->toUnicode("正在生成报告,请耐心等待");
     QString text2 = codec->toUnicode("正在保存中...");
     QString text3 = codec->toUnicode("报告已完成");

+ 141 - 0
src/modbus.js

@@ -3,6 +3,9 @@ var relayAddres = "01"
 //继电器控制板modbus 地址
 var relayAddresAdd = "02"
 
+//外置人孔盖 继电器控制板modbus 地址
+var relayAddresMH = "03"
+
 //比例调节阀modbus 地址
 var proportionalControlAddress = "03"
 //高压传感器modbus地址
@@ -11,6 +14,8 @@ var highPressureSensorAddress = "01"
 var lowPressureSensorAddress = "02"
 //负压传感器modbus地址
 var negativelowPressureSensorAddress = "03"
+//外置人孔盖工装的压力传感器
+var mh_PressureSensorAddress = "04"
 
 //正压呼吸阀测试口
 var pbreathValveIO= "05"
@@ -58,6 +63,19 @@ var lowPressureSensorIO="02"
 //负压传感器控制口
 var negativePressureSensorIO="01"
 
+//外置人孔盖工装的相关电磁阀控制
+//气缸升电磁阀
+var mh_airCylinderLiftIO="0A"
+//气缸降电磁阀
+var mh_airCylinderDropIO="0B"
+
+
+//进气加压电磁阀
+var mh_inletValveIO="0C"
+//排气泄压电磁阀
+var mh_reversingValveIO="0D"
+//人孔盖压力测试口
+var mh_PressureSensorIO="0E"
 
 
 
@@ -917,5 +935,128 @@ function testFixedPressure(controlSerial,targetPressure){
 }
 
 
+//人孔盖测试工装接口
+//气缸升电磁阀
+//var mh_airCylinderLiftIO="11"
+//气缸降电磁阀
+//var mh_airCylinderDropIO="12"
+//进气加压电磁阀
+//var mh_inletValveIO="13"
+//排气泄压电磁阀
+//var mh_reversingValveIO="14"
+//人孔盖压力测试口
+//var mh_PressureSensorIO="15"
+
+//气缸升IO
+function mh_airCylinderLift(serial, enable){
+    var data  =  relayCtrlAdd(serial ,enable,mh_airCylinderLiftIO)
+    if(data.length === 0){
+        console.log("人孔盖测试工装气缸升起IO"+"通讯错误")
+    }
+
+    return data
+}
+
+//气缸降IO
+function mh_airCylinderDrop(serial, enable){
+    var data  =  relayCtrlAdd(serial ,enable,mh_airCylinderDropIO)
+    if(data.length === 0){
+        console.log("人孔盖测试工装气缸下降IO"+"通讯错误")
+    }
+    return data
+}
+
+//压力传感IO
+function mh_pressureSensor(serial, enable){
+    var data  =  relayCtrlAdd(serial ,enable,mh_PressureSensorIO)
+    if(data.length === 0){
+        console.log("人孔盖测试工装压力传感IO"+"通讯错误")
+    }
+    return data
+}
+
+function mh_pressureSensorCtrl(controlSerial,text){
+    if(text === "打开"){
+        mh_pressureSensor(controlSerial, true)
+
+    }else{
+        mh_pressureSensor(controlSerial, false)
+    }
+}
+
+//进气加压IO
+function mh_inletValve(serial, enable){
+    var data  =  relayCtrlAdd(serial ,enable,mh_inletValveIO)
+    if(data.length === 0){
+        console.log("人孔盖测试工装进气IO"+"通讯错误")
+    }
+    return data
+}
+
+//排气泄压IO
+function mh_reversingValve(serial, enable){
+    var data  =  relayCtrlAdd(serial ,enable,mh_reversingValveIO)
+    if(data.length === 0){
+        console.log("人孔盖测试工装泄压IO"+"通讯错误")
+    }
+    return data
+}
+
+//压力传感器读取压力请求
+//应答 01 04 04 b7 aa 43 32 4c f5    // 1 0 3 2
+//view.setUint8(3, 0xaa);
+//view.setUint8(2, 0xb7);
+//view.setUint8(1, 0x32);
+//view.setUint8(0, 0x43);
+function mh_PressureSensorReadReq(serial){
+    var command = mh_PressureSensorAddress+" "+"04 00 00 00 02"
+    var data = serial.serialWriteReponse(command)
+
+    var pressureNumber = 0
+    var ret = false
+    if(data.length === 0)
+        data = serial.serialWriteReponse(command)
+    if(data.length === 0)
+        data = serial.serialWriteReponse(command)
+
+    if(data.length > 0){
+
+        if( data[1]===0x04 && data[2]=== 0x04){
+            const buffer = new ArrayBuffer(4);
+            const view = new DataView(buffer);
+            view.setUint8(3, data[4])
+            view.setUint8(2, data[3])
+            view.setUint8(1, data[6])
+            view.setUint8(0, data[5])
+            var number = view.getFloat32(0)
+            pressureNumber = number.toFixed(1)
+            ret =  true;
+        }
+    }
+
+
+    return{ ret:ret,pressureNumber:pressureNumber}
+}
+
+//压力传感器 标零
+function mh_PressureSetZeroReq(serial){
+    var command = mh_PressureSensorAddress+" "+"06 00 1E 00 01"
+    var data = serial.serialWriteReponse(command)
+
+    var ret = false
+
+    if(data.length === 0)
+        data = serial.serialWriteReponse(command)
+    if(data.length === 0)
+        data = serial.serialWriteReponse(command)
+
+    if(data.length > 0){
+        if( data[1]===0x06){
+            ret =  true;
+        }
+    }
+
+    return ret
+}
 
 

+ 262 - 121
src/peopleCoverHoleValveTest.js

@@ -5,43 +5,115 @@ var runningBackup = false
 var releasePressureTimeMax = 30
 var sealPressureTimemax = 60
 
+var openPressureMin = 21
+var openPressureMax = 35
+
+var readPressureInterval = 500 // ms
+var maxPressureStableTime = 20
+var releasePressureTimeOut = 180
+
 var exit = false
 
+function airCylinderUp(){
+    ModbusJs.mh_airCylinderDrop(controlSerial, false)
+    ModbusJs.mh_airCylinderLift(controlSerial, true)
+    console.log("压抓上升")
+}
+
+function airCylinderHoldUp(){
+    //ModbusJs.mh_airCylinderDrop(controlSerial, false)
+    ModbusJs.mh_airCylinderLift(controlSerial, false)
+    console.log("压抓上升关闭")
+}
+
+function airCylinderDown(){
+    ModbusJs.mh_airCylinderLift(controlSerial, false)
+    ModbusJs.mh_airCylinderDrop(controlSerial, true)
+    console.log("压抓下降")
+}
+
+function airCylinderHoldDown(){
+    //ModbusJs.mh_airCylinderLift(controlSerial, false)
+    ModbusJs.mh_airCylinderDrop(controlSerial, false)
+    console.log("压抓下降关闭")
+
+}
+
+function airIn_open(){
+    ModbusJs.mh_reversingValve(controlSerial, false)
+    ModbusJs.mh_inletValve(controlSerial, true)
+    //ModbusJs.mh_reversingValve(controlSerial, )
+}
+
+function airIn_close(){
+    ModbusJs.mh_inletValve(controlSerial, false)
+    //ModbusJs.mh_reversingValve(controlSerial, )
+}
+
+function airOut_open(){
+    ModbusJs.mh_inletValve(controlSerial, false)
+    ModbusJs.mh_reversingValve(controlSerial, true)
+}
+
+function airOut_close(){
+    //ModbusJs.mh_inletValve(controlSerial, false)
+    ModbusJs.mh_reversingValve(controlSerial, false)
+}
+
+function resetio(){
+    ModbusJs.mh_inletValve(controlSerial, false)
+    ModbusJs.mh_reversingValve(controlSerial, false)
+    ModbusJs.mh_pressureSensorCtrl(controlSerial,"关闭")
+}
+
+function reset_airCylinder(){
+    ModbusJs.mh_airCylinderDrop(controlSerial, false)
+    ModbusJs.mh_airCylinderLift(controlSerial, false)
+}
+
+
+
 function releasePressure(controlSerial,pressureDisplaySigFun,spy,log){
 
     //关闭正压罐进气阀门
-    ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
+    airIn_close()
     console.log("关闭正压罐进气阀门")
     //打开正压罐头泄气阀门
-    ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
+    airOut_open()
     console.log("打开正压罐头泄气阀门")
-    ModbusJs.pressureSensorCtrl(controlSerial,"高压")
-    console.log("打开高压传感器阀门")
-    //查看低压传感器值 等待正压罐头压力降到最低值
+
+    ModbusJs.mh_pressureSensorCtrl(controlSerial,"打开")
+    console.log("打开压力力传感器阀门")
 
     var timeout=0
     do{
         //重新开始时 停止测试
         if(runningBackup === false && running === true){
             console.log("停止测试")
-            ModbusJs.closeAllValve(controlSerial)
-            return
+            //ModbusJs.closeAllValve(controlSerial)
+            break
         }
         if(exit === true)
-            return
-        var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+            break
+
+        //延时
+        spy.wait(900)
+
+        var obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
-            log.show("高压传感器通讯错误")
-            return false
+            log.show("压传感器通讯错误")
+            break
         }
         // signal 压力显示函数
         pressureDisplaySigFun(obj.pressureNumber)
-        //延时
-        spy.wait(900)
+
         timeout++
 
-    }while(obj.pressureNumber > 0.1  && timeout < 180)
+    }while(obj.pressureNumber > 0.2  && timeout < releasePressureTimeOut)
+
+    airOut_close()
     ModbusJs.closeAllValve(controlSerial)
+    resetio()
     console.log("关闭 关闭所有阀门")
 }
 
@@ -55,172 +127,234 @@ function releasePressure(controlSerial,pressureDisplaySigFun,spy,log){
  *  resultSigFun            结果显示信号函数
  */
 //密封压力测试
-function testSealPressureStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial,sealPressureModel,pressureDisplaySigFun,resultSigFun,spy,log){
+function testStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial,
+                               openPressureModel,sealPressureModel,
+                               pressureDisplaySigFun,resultSigFun,spy,log){
 
     runningBackup = running
+    var ret = true
+    var StablePressureCount = maxPressureStableTime*1000/readPressureInterval
+
+    console.log("人孔盖测试工装自动检测开始")
 
     //setp 1
     // 关闭所有测试口
     ModbusJs.turnOffAllTestIO(controlSerial)
     console.log("关闭所有测试口")
-    ModbusJs.pressureSensorCtrl(controlSerial,"高压")
-    console.log("打开高压传感器阀门")
-    //关闭正压罐进气阀门
-    ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
-    console.log("关闭正压罐进气阀门")
+    ModbusJs.mh_pressureSensorCtrl(controlSerial,"打开")
+    console.log("打开压力力传感器阀门")
+
+    //关闭进气阀门
+    airIn_close()
+    console.log("关闭进气阀门")
+
     //setp 2
-    //查看高压传感器值 等待正压罐头压力降到最低值
-    processWindow.show("等待压力降到0")
-    //打开正压罐头泄气阀门
-    ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
-    console.log("打开正压罐头泄气阀门")
+    //查看压传感器值 等待压力降到最低值
+    processWindow.show("等待压力降到小于0.5")
+    //打开泄气阀门
+    airOut_open()
+    console.log("打开泄气阀门")
     tabView.currentIndex = currentIndex
     do{
         if(running === false){
             console.log("停止测试")
-            return false
+            ret =  false
+            break
         }
-        var obj = ModbusJs.highPressureSensorReadReq(sensorSerial)
+
+        //延时
+        spy.wait(900)
+
+        var obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
-            log.show("高压传感器通讯错误")
-            return false
+            log.show("压力传感器通讯错误")
+            ret = false
+            break
         }
         // signal 压力显示函数
         pressureDisplaySigFun(obj.pressureNumber)
         //延时
-        spy.wait(900)
-    }while(obj.pressureNumber > 0.1 )
-    console.log("压力降压到 0 kPa")
-    //关闭正压罐头泄气阀门
-    ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
-    console.log("关闭正压罐头泄气阀门")
+        //spy.wait(900)
+    }while(obj.pressureNumber > 0.5 )
+    console.log("压力降压到 %d kPa 以下", 0.5)
+    //关闭泄气阀门
+    airOut_close()
+    console.log("关闭泄气阀门")
+    if(ret === false){
+        return false
+    }
 
 
     //setp 3
-    /*********密封测试*************/
-    var setPressure = 21
-    ModbusJs.pressureSensorCtrl(controlSerial,"低压")
-    console.log("打开低压传感器阀门")
-    obj = ModbusJs.testFixedPressure(controlSerial,setPressure)
-    ModbusJs.proportionalControlWrite(controlSerial,obj.voltage)
-    console.log("比例调压阀压力值:",obj.voltage)
-    processWindow.show("21kPa压力进气")
-    //打开人孔盖测阀门
-    ModbusJs.peopleCoverHoleValveTestIO(controlSerial,true)
-    console.log("打开人孔盖测阀门")
     //打开进气阀门
-    ModbusJs.positivePressureTankInputCtrl(controlSerial,true)
-    console.log("打开进气阀门")
-    var sealCnt = 0
-    var bigCnt = 0
-    var bigAcive = true
+
+    tabView.currentIndex = currentIndex
+
+    var pre_pressure = obj.pressureNumber
+    var delta = 0
+    var releaseCnt = 0
+    var overMaxCont = 0
+    var underMinCont = 0
     var prevTime  = Date.now()
-    ModbusJs.bigTuningValveControl(controlSerial,true)
-    console.log("打开 粗调开关")
+    spy.wait(920)
+
+    var result={}
+    airIn_open()
+    console.log("打开进气阀门")
+    processWindow.show("泄放实验,等待压力平衡")
+
     do{
         if(running === false){
             console.log("停止测试")
-            return false
+            //airIn_close()
+            ret = false
         }
-        obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+
+        obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
-            log.show("低压传感器通讯错误")
-            return false
+            log.show("压力传感器通讯错误")
+            //airIn_close()
+            ret = false
         }
 
-        //粗调压力值
-        var bigLevel = setPressure
-        if(obj.pressureNumber > bigLevel && bigAcive === true){
-            bigAcive = false
-            bigCnt = 0
-            ModbusJs.bigTuningValveControl(controlSerial,false)
-            ModbusJs.bigTuningValveControl(controlSerial,false)
-            console.log("关闭 粗调开关")
+        if((obj.pressureNumber > openPressureMax+2) ){
+            log.show("当前压力超出紧急泄放装置开启上限, 貌似泄放功能丧失")
+            //airIn_close()
+            ret = false
+        }
+
+        delta = obj.pressureNumber - pre_pressure
+        pre_pressure = obj.pressureNumber
+
+        if(delta <= 0.02){
+            releaseCnt++
+        }else{
+            if(releaseCnt > 0)
+                releaseCnt--
+        }
+
+        if(releaseCnt > StablePressureCount){
+            break;
         }
 
-        spy.wait(10)
         var curTime  = Date.now()
         var deltaTime = curTime - prevTime
         if(deltaTime > 900){
             prevTime = curTime
             pressureDisplaySigFun(obj.pressureNumber)
-            sealCnt++
+            //sealCnt++
             // add  pressure table
             var table={}
             table.pressure=obj.pressureNumber
             //密封模型赋值
-            sealPressureModel.append(table)
-            processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
-
-//            if(obj.pressureNumber < bigLevel){
-//                bigCnt++
-//                if(bigCnt > 3){
-//                    bigAcive = true
-//                    ModbusJs.bigTuningValveControl(controlSerial,true)
-//                    console.log("打开 粗调开关")
-//                }
-//            }
+            openPressureModel.append(table)
+            //processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
 
         }
 
-    }while(sealCnt < sealPressureTimemax)
-    ModbusJs.bigTuningValveControl(controlSerial,false)
-    console.log("关闭 粗调开关")
+        //延时
+        spy.wait(readPressureInterval)
 
 
-    obj = ModbusJs.testFixedPressure(controlSerial,16.8)
-    ModbusJs.proportionalControlWrite(controlSerial,obj.voltage)
-    console.log("比例调压阀压力值:",obj.voltage)
-    processWindow.show("密封试验,16.8kPa压力进气")
 
-    sealCnt = 0
-    var releaseflag = true
-    ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
-    console.log("打开正压罐泄气阀门")
+    }while(1)
+
+    airIn_close()
+    console.log("进气阀关闭")
+
+    if(ret === false){
+        return false
+    }
+
+    result.openPressureNumber = obj.pressureNumber
+    result.sealPressureNumber = ""
+    resultSigFun(result)
+    console.log("泄放压力:",obj.pressureNumber)
+
+    if(obj.pressureNumber < openPressureMin){
+        processWindow.show("压力低于开启下限")
+        return false
+    }
+
+
+
+    //setp 4 开始密封实验
+    // 压力开始下降
+    var keepCnt = 0
+    tabView.currentIndex = currentIndex+3
+    processWindow.show("密封实验,等待压力稳定")
     do{
         if(running === false){
             console.log("停止测试")
-            return false
+            ret = false
+            break
         }
-        obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+
+        obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
-            log.show("低压传感器通讯错误")
-            return false
+            log.show("压力传感器通讯错误")
+            ret = false
+            break
         }
 
+        delta = pre_pressure - obj.pressureNumber
+        pre_pressure = obj.pressureNumber
 
-        if(obj.pressureNumber <18 && releaseflag === true){
-            ModbusJs.positivePressureTankOutputCtrl(controlSerial,false)
-            releaseflag = false
-            console.log("关闭正压罐泄气阀门")
+        if(obj.pressureNumber < openPressureMin){
+            log.show("当前压力小于泄放压力下限, 疑似漏气")
+            //ret = false
+            break
         }
 
-        pressureDisplaySigFun(obj.pressureNumber)
-        // add  pressure table
-        table={}
-        table.pressure=obj.pressureNumber
-        //密封模型赋值
-        sealPressureModel.append(table)
-        spy.wait(900)
-        sealCnt++
-        processWindow.text("16.8kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
-    }while(sealCnt < sealPressureTimemax)
+        if(delta <= 0.02){
+            keepCnt++
+        }else{
+            if(keepCnt > 0)
+                keepCnt--
+        }
+
+        if(keepCnt > StablePressureCount){
+            break;
+        }
+
+        curTime  = Date.now()
+        deltaTime = curTime - prevTime
+        if(deltaTime > 900){
+            prevTime = curTime
+            pressureDisplaySigFun(obj.pressureNumber)
+            //sealCnt++
+            // add  pressure table
+            var table2={}
+            table2.pressure=obj.pressureNumber
+            //密封模型赋值
+            sealPressureModel.append(table2)
+            //processWindow.text("21kPa压力进气时间"+(sealPressureTimemax-sealCnt)+"s")
+
+        }
+
+        //延时
+        spy.wait(readPressureInterval)
+
+
+    }while(1)
+
     console.log("密封压力结束")
 
+    if(ret === false){
+        return false
+    }
 
+    result.sealPressureNumber = obj.pressureNumber
+    resultSigFun(result)
+    console.log("密封压力:",obj.pressureNumber)
 
 
     //setp 5
-    ModbusJs.pressureSensorCtrl(controlSerial,"低压")
-    console.log("打开低压传感器阀门")
-    //打开进气阀门
-    ModbusJs.positivePressureTankInputCtrl(controlSerial,false)
-    console.log("关闭进气阀门")
-    //打开正压罐头泄气阀门
-    ModbusJs.positivePressureTankOutputCtrl(controlSerial,true)
-    console.log("打开正压罐头泄气阀门")
+    //泄压
+    airOut_open()
+    console.log("打开泄气阀门")
     console.log("等待压力 0kPa")
-    //查看低压传感器值 等待正压罐头压力降到最低值
+
     processWindow.show("试验结束,泄气中")
     var timeout = 0
     do{
@@ -228,9 +362,11 @@ function testSealPressureStart(currentIndex,tabView,processWindow,controlSerial,
             console.log("停止测试")
             return false
         }
-        obj = ModbusJs.lowPressureSensorReadReq(sensorSerial)
+
+        obj = ModbusJs.mh_PressureSensorReadReq(sensorSerial)
         if(obj.ret === false){
-            log.show("低压传感器通讯错误")
+            log.show("压力传感器通讯错误")
+            //airIn_close()
             return false
         }
         // signal 压力显示函数
@@ -238,20 +374,24 @@ function testSealPressureStart(currentIndex,tabView,processWindow,controlSerial,
         //延时
         spy.wait(900)
         timeout++
-    }while(obj.pressureNumber > 0.5 && timeout < 180 )
+    }while(obj.pressureNumber > 0.2 && timeout < releasePressureTimeOut )
     if(timeout === 180)
-        log.show("泄压时间超时")
+        log.show("泄压时间3分钟超时")
 
     //setp 6
     console.log("压力 0kPa")
     ModbusJs.closeAllValve(controlSerial)
     console.log("关闭所有阀门")
+    airOut_close()
+    ModbusJs.mh_pressureSensorCtrl(controlSerial,"关闭")
+    console.log("关闭压力传感器阀门")
+
 
     return true
 
 }
 
-function testReleasePressureStart(currentIndex,tabView,processWindow,controlSerial,sensorSerial,releasePressureModel,pressureDisplaySigFun,resultSigFun,spy,log){
+function testReleasePressureStart333(currentIndex,tabView,processWindow,controlSerial,sensorSerial,releasePressureModel,pressureDisplaySigFun,resultSigFun,spy,log){
     runningBackup = running
 
 
@@ -420,6 +560,7 @@ function testReleasePressureStart(currentIndex,tabView,processWindow,controlSeri
 
 }
 
+
 ////泄压压力测试
 //function testReleasePressureStart(controlSerial,sensorSerial,releasePressureModel,pressureDisplaySigFun,resultSigFun,spy,log){
 

+ 1 - 1
src/valve_experiment.pro.user

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE QtCreatorProject>
-<!-- Written by QtCreator 12.0.0, 2024-03-13T13:10:54. -->
+<!-- Written by QtCreator 12.0.0, 2024-07-29T17:41:25. -->
 <qtcreator>
  <data>
   <variable>EnvironmentId</variable>