From fd704d4f47faf216959f7c7ed68ad4ab9ca88015 Mon Sep 17 00:00:00 2001 From: sige Date: Wed, 17 Apr 2024 19:35:25 +0800 Subject: [PATCH] ~ --- app.db | Bin 331776 -> 335872 bytes .../com/iflytop/digester/StartResetTaskThread.java | 7 ++- .../com/iflytop/digester/StopResetTaskThread.java | 2 + .../deviceinstance/LiquidAdditionInstance.java | 49 ++++++++++++--------- .../connection/UfZcancmderWebsocket.java | 2 +- src/main/resources/application-dev.yml | 3 +- 6 files changed, 39 insertions(+), 24 deletions(-) diff --git a/app.db b/app.db index 56a68f0d9421073823b480197348d034cf783c30..7376d49114e72363c0619858a814bbc755ad773b 100644 GIT binary patch delta 5030 zcmeHKYj9Q76~5=(b04|SV2Cjh48$OhWW(9#?7h!EM4(6uShQ+1KzUToGa`gQ04Z9H z0iCFoDfVi&52_KcXor_FdZV`W(azNA_-LIeSZ9$eO-?~Ur zB#GyDESA10=Z9Y*{YuJr%?*A&dX@CDlz(Er^pf<{5=q)SqoO`^UT9}1>tputL>?(cB#Rs$2DX+u7;q(8nRrABG+0y{Tb?NnZjibgJr}LnwC*ZIE%(@~%i* zZFe<(b5l^?lf?-57 zN3|WtV3y$&<3M&J2dcWV$k8xW#w|;S&4|GQih(%8!M4P{r8<`D@Itg=RhyP~7C8Fc zB9^L|2vY+%+8pc+ha#O>Dz{b7^9rz+h)8W_=2D`>I zHG&w1tZavCl!>05@^sO+TTV4CD;fplE!DutH3;;adJeKRN|5Ih75H1&(ET&^{Mw>D z^uaf=iIJ{Dvc!QSY}rsF>OwbcpKB`92e~${U0O7woEW~(9c1b@aK*4`Y!5n046aiH zdvFWTGlsopz}_`X$8%t-5#54aZbONP=LRLRG>xl{s;Z@7+lyvQcL)aea5y~ZisPur z#JY#5hh3%xO)-YO zd3jdssC*#Y4!qvY^i(I3ZEf{4s`0RzY();QXcT{&pez}NFjPnFNuM2jimP#zSTa`m zPX64{%H(MNy|KzcIX|yS*>zQABwQDYZHxXcl2yir>*8<0&3d+!pU|UxAf+~>n>Qqy zqivJW#$;~JV~yg2Q_8S0NA7s)@Xb9(diG2@`rPKD58t`)hK6O{`i99+bX_N=Zm1e# z;^`C0l-zWuwklZSnod}AgVW(&>^4kp5Lu!$j%a9ZSZQ@x9jjplvt|tcyWVOC{%g2V z)SOoSkk8(#e3VEgr-zc$V>3fDV>2OTR) zn@%c|#je-o+BmGi*@6O$emUGCzOr8)QGjW>jy0j)BM-uKof%kc%*j)8mv+QnY^TY6RFZDmgMAAA!NZnC(Ic8UCy2rt;TVR~H}03Gd_sXxh$rrPQ*IHJ@5{9X6eG|;aq_+a--R_()hHJWdzD$a zKewlXB^UruV{zdEshDD64Qm=zg>_B|Ov6|wLe!KlaSl_bueH>Y!Bm4GcC}QXR&WND zCS3gGg79Q9@r`0#si~_(6P;I=m@-|%3_~qo143Z~Q%10Enz>O+FBS(6$OXD^kU@Mv zJq8+AfH6(wrnus0cxtZKJ11B&Fw>bT`lmtApufd6(=bS`bNyt2j>;o~&Ka6&5YgKb zKEL8IQrKI+x$?_y&;OatMd0#lO(=g1wShm}CDXLtMtmRCHc5&eQ5^61Hel0D?;4%i)H33lE_K4hg<>kSj z<;?$%0`Q9`zPnt!l9SMwa`eawQGYk&R*r&P8-y=MORX&A_S&OzWB$eM%0=9>er8H$cx-3-So+2Eed(3yS<$D`=cPVOy`0*X zx;}M9YFzSka({AH@|IXUwjjAMsU<6-n-af|{Z`E0tBg`&8{_L?MrEVjLDVv|H!i#> z%2C?a1s=;0$ZG;%cR5mcb-`sB>bENZmLqys1;9Y7c7Ksr?F^9RXuo9vupE(hZ25zOn(EzRctDK*CLODN{Z@6E1J5rT~TOg_&m(njL zZ>g9Wi%0&Y>>F13mf~zkzym9g9_2h7uUuoTS-biYt7GMC&swu|Mf;#iIdn(gk&U~C zs(})fGA;LnQ}dZBrTg<#%Hj=ic*r#Y#d2Q4gA~8k)z#TmLhvUW4)yn+kzliU=7ci! za~Y2O4~A-~j#`|L$0C1^2Q?1Cm?Hll<>im^mcfA!nuT#OtN}zoF!2i_K*NMlG2ei- z2M-Sj0}V7V5g(5lz!jB&rfMSJ37YOx{h(<&SH+?#fE}+2D}mM+fWqUsci9lA4o?g5 z;8`V#L<1em#r$@#9`s0crilgh1A&VKDFZ3jfAtU?!x)P#=asr+RK=oy(oh)ZSWFl> z=+0C*gL5cuTL^0d`I@Q;nokwWM||ooSTcag{CPuQpuVX1M_s8q6El#b{g=VoKo(#N z8l8)GYKP!75O1P)&Jdi=p#m?RGXzJlO2ph*LvRG%B4SU?P#g!L+<$sd%tBmB;VF6i m?9wzSGocs%90FrH)x?d}1MZ+@U<%a}Z6`o3Ll$Xi@xKA%VXhDW delta 1216 zcma)*du$X%9LINdXLs-Rc}K7IA+Zk*+6oJ|dwX|Xu{GGHSR2J6+m^o4$K6qEY#V|x z7LxX~O^w=ca5ZD2#+EixO}Mt4bgKwTD+xi-KQtg1h)r847DHl$Ab)^UjVAu*AD_wZ zHNTnp&P?~0uI?dMG@apZ5d=|wFtd>4Z%sB#wo@O<6A4$x+p zz|)D_UGs9TS5-A#Yiw46p|GLo0Zmm5%}^CBKNQxQ`~i;<*25WxW{*XI14@O28KZ}a z1X-7&{6#)a_QS)ms-Y%G2FYM7%W)-vhK~qP`jp6vwd`{PKDH~q9m;js9o+AxZMl>Q zVmVFj1ULT9dqA^B%0N9#Ca)4Sa1mUmZ32!ldw`4j1-Njx`__+D;2cnFkArh&L2IuO z3V40_0Z*e6ZqkB^-stlvhTo?v`5`0U2si0oukJzLRf80?dM7w*k8Cy=v*?+Kfj+)O z)uUCHsS2yL7MusxXf-$s)?+dD7PLA;VZT?$4V3(#w^7l(T9cBm>OsX540@WifNB^4 z_1~_l<*Nr@1N)nl#+ap*0|qL86}DKj&x0udd{(CkAOL==s{-sKry2m5D8j1<_6$M} zO5aLeaX`2)H1l8ax!h^4+I|Kn2x0?9#b_8W#)I);{FnenN5u}ZWi_^F%sLEXcsX6 z+{_v930aKqs>-sm;Auv}n>t{c8EUfXOiHq&xn#2@jmooN1L^Tt73*Pqhl8SJf*oNl(K5}$W40^!Xb%DF(Fpt%Bs`9H0b99|HuFlI zXj>F&?)mQM^%Jpc?|-m3+P`qJf4=+R-^Nn>)Z%DgP2G+Sv}wt`@D4|F*#wuJaAu}* zR`xx3mCokKIM#cakY49}T%Wib&VsPym;Yb^QzujOF0vM7M!{pNK!N=;x{x~0j7yin zH0gyIs4WV9)2_ z!{Y$~vL%F^D$Pi{*%DmgXRQan!8PoEl+F1+%5Exf#>zf&qphz&XWGhyH>R$2N3KW4 t@jWbk5nUR7Yhn6m4O-U&Z#YE!G$3mO;tbzoFJWzX;k%4wW9hrLKLN#qW~cxF diff --git a/src/main/java/com/iflytop/digester/StartResetTaskThread.java b/src/main/java/com/iflytop/digester/StartResetTaskThread.java index 6b98627..46ebfc7 100644 --- a/src/main/java/com/iflytop/digester/StartResetTaskThread.java +++ b/src/main/java/com/iflytop/digester/StartResetTaskThread.java @@ -56,7 +56,8 @@ public class StartResetTaskThread extends Thread { UfCmdSnippetExecutor.execute(String.format("PeristalticPumpEnable.%d",i)); } - Boolean enableSetup = UfApplication.getApp().getEnv().getProperty("app.liquidPeristalticPumpPipeSetupEnable",Boolean.class); + var env = UfApplication.getApp().getEnv(); + Boolean enableSetup = env.getProperty("app.liquidPeristalticPumpPipeSetupEnable",Boolean.class); assert enableSetup != null; if ( !enableSetup ) { return ; @@ -69,13 +70,15 @@ public class StartResetTaskThread extends Thread { UfCmdSnippetExecutor.execute("DoorClose"); // 加液管充满 + Integer liquidPipeVolume = env.getProperty("app.liquidPipeVolumn", Integer.class); + assert liquidPipeVolume != null; Device device = Device.getInstance(); var tubes = List.of(0,4, 3,2, 15,11, 12,13, 1,5, 6,7, 14,10, 9,8); for ( int i=0; i<8; i++ ) { this.setProgressMessage("设备初始化 : 初始化加液管路 " + (i+1) + "/8"); var tubeList = tubes.subList(i*2, i*2+2); var pumpList = List.of(2*i, 2*i+1); - device.liquidAddition.addLiquidToTubes(tubeList, pumpList, 10000); + device.liquidAddition.addLiquidToTubes(tubeList, pumpList, liquidPipeVolume); } // 加液管充满, 需要取出试管架 diff --git a/src/main/java/com/iflytop/digester/StopResetTaskThread.java b/src/main/java/com/iflytop/digester/StopResetTaskThread.java index b8bf947..b937d03 100644 --- a/src/main/java/com/iflytop/digester/StopResetTaskThread.java +++ b/src/main/java/com/iflytop/digester/StopResetTaskThread.java @@ -5,7 +5,9 @@ import java.util.HashMap; public class StopResetTaskThread extends Thread { @Override public void run() { + UfCmdSnippetExecutor.execute("StatusLampError"); UfCmdSnippetExecutor.execute("StopResetSetup"); + UfCmdSnippetExecutor.execute("StatusLampRunning"); UfMdbNotification.action("StopResetFinished", new HashMap<>()); } } diff --git a/src/main/java/com/iflytop/digester/deviceinstance/LiquidAdditionInstance.java b/src/main/java/com/iflytop/digester/deviceinstance/LiquidAdditionInstance.java index ddd3ac4..89da8ae 100644 --- a/src/main/java/com/iflytop/digester/deviceinstance/LiquidAdditionInstance.java +++ b/src/main/java/com/iflytop/digester/deviceinstance/LiquidAdditionInstance.java @@ -45,28 +45,37 @@ public class LiquidAdditionInstance { for ( int batchIndex=0; batchIndex<4; batchIndex++ ) { // 外圈 - UfCmdSnippetExecutor.execute("LiquidAdditionPrepare.Out." + batchIndex); - if ( this.checkTubeExists("GOUT", batchIndex, "TOUT", tubes) ) { - var snippetKey = "LiquidAdditionPump." + pumpGroupOutIndex; - Map snippetParams = Map.of("volume", rotateDistance); - UfCmdSnippetExecutor.execute(snippetKey, snippetParams); - } - if ( this.checkTubeExists("GOUT", batchIndex, "TIN", tubes) ) { - var snippetKey = "LiquidAdditionPump." + pumpGroupInIndex; - Map snippetParams = Map.of("volume", rotateDistance); - UfCmdSnippetExecutor.execute(snippetKey, snippetParams); + Boolean hasGoutTout = this.checkTubeExists("GOUT", batchIndex, "TOUT", tubes); + Boolean hasGoutTin = this.checkTubeExists("GOUT", batchIndex, "TIN", tubes); + if ( hasGoutTout || hasGoutTin ) { + UfCmdSnippetExecutor.execute("LiquidAdditionPrepare.Out." + batchIndex); + if ( hasGoutTout ) { + var snippetKey = "LiquidAdditionPump." + pumpGroupOutIndex; + Map snippetParams = Map.of("volume", rotateDistance); + UfCmdSnippetExecutor.execute(snippetKey, snippetParams); + } + if ( hasGoutTin ) { + var snippetKey = "LiquidAdditionPump." + pumpGroupInIndex; + Map snippetParams = Map.of("volume", rotateDistance); + UfCmdSnippetExecutor.execute(snippetKey, snippetParams); + } } + // 内圈 - UfCmdSnippetExecutor.execute("LiquidAdditionPrepare.In." + batchIndex); - if ( this.checkTubeExists("GIN", batchIndex, "TOUT", tubes) ) { - var snippetKey = "LiquidAdditionPump." + pumpGroupOutIndex; - Map snippetParams = Map.of("volume", rotateDistance); - UfCmdSnippetExecutor.execute(snippetKey, snippetParams); - } - if ( this.checkTubeExists("GIN", batchIndex, "TIN", tubes) ) { - var snippetKey = "LiquidAdditionPump." + pumpGroupInIndex; - Map snippetParams = Map.of("volume", rotateDistance); - UfCmdSnippetExecutor.execute(snippetKey, snippetParams); + Boolean hasGinTout = this.checkTubeExists("GIN", batchIndex, "TOUT", tubes); + Boolean hasGinTin = this.checkTubeExists("GIN", batchIndex, "TIN", tubes); + if ( hasGinTout || hasGinTin ) { + UfCmdSnippetExecutor.execute("LiquidAdditionPrepare.In." + batchIndex); + if ( hasGinTout ) { + var snippetKey = "LiquidAdditionPump." + pumpGroupOutIndex; + Map snippetParams = Map.of("volume", rotateDistance); + UfCmdSnippetExecutor.execute(snippetKey, snippetParams); + } + if ( hasGinTin ) { + var snippetKey = "LiquidAdditionPump." + pumpGroupInIndex; + Map snippetParams = Map.of("volume", rotateDistance); + UfCmdSnippetExecutor.execute(snippetKey, snippetParams); + } } } 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 3b2a4b5..2ae9146 100644 --- a/src/main/java/com/iflytop/digester/underframework/connection/UfZcancmderWebsocket.java +++ b/src/main/java/com/iflytop/digester/underframework/connection/UfZcancmderWebsocket.java @@ -157,7 +157,7 @@ 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); + LOG.info(" [Command-Executor:{}] {}({}) => {}", actuator.name, actuatorCmd.cmdKey, actuatorCmd.parameters, cmd); if ( !this.client.isOpen() ) { try { this.client.connectBlocking(); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 57607cc..327d12d 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -9,7 +9,7 @@ spring: driver-class-name: org.sqlite.JDBC device: - snippet-execute-log-enable : false + snippet-execute-log-enable : true connections: - name : zcancmder key : zcancmder @@ -35,6 +35,7 @@ mqtt-broker: app : errorSlotIndex : 4 liquidPeristalticPumpPipeSetupEnable : true + liquidPipeVolumn : 1 opencv-library-path: D:/ProgramFiles/OpenCV/opencv/build/java/x64/opencv_java490.dll pylon-library-path: D:/ProgramFiles/Pylon5/Runtime/x64/PylonC_v5_2.dll pylon-wrapper-path: D:/Sige5193/digester/src/main/java/com/iflytop/digester/camera/x64/Debug/baslerCamera.dll