From e4db2fa1ac7663245d9a105925534a2bebb82351 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Fri, 18 Oct 2024 10:15:59 +0800 Subject: [PATCH] update --- app.db | Bin 225280 -> 225280 bytes .../calibration/Hbot2DCodeScanPosCalibration.java | 24 +--- ...ReactionPlatesTransmitControlerCalibration.java | 48 ++++--- .../ctrl/ReactionPlatesTransmitCtrl.java | 12 +- .../app/devicedriver/pos/Hbot2DCodeScanPos.java | 139 +++++++++++++-------- .../app/devicedriver/pos/HbotConsumablePosMgr.java | 1 - .../app/devicedriver/pos/HbotFixPosMgr.java | 1 - .../app/devicedriver/pos/HbotSamplePosMgr.java | 1 - .../app/devicedriver/pos/OptModulePosMgr.java | 11 +- .../app/devicedriver/pos/PlatesBoxPosMgr.java | 64 +++++----- .../devicedriver/pos/TubeFeedingModulePosMgr.java | 62 +++++---- .../app/devicedriver/pos/TubeHolderParamMgr.java | 1 - .../app/devicedriver/pos/TubePreProcesPosMgr.java | 44 +++---- .../app/devicedriver/pos/TurntablePosMgr.java | 30 +++-- .../service/db/LowerDeviceParameterDBService.java | 31 ++--- .../a8k/service/db/utils/PosParameterReader.java | 7 +- 16 files changed, 257 insertions(+), 219 deletions(-) diff --git a/app.db b/app.db index efb5a734e4039564d1b7b84f3ea239408ff50446..e38caca659d495605be81ba92e0b581a1678db8b 100644 GIT binary patch delta 5518 zcmeI0dr(tX8o=*8C+`PA(LhKj7^E>GkPsrG#o!weOi&a-#TNm@2i6z5U02X@)T)K{ zs;5$2wacnoS5cup0h#HHJG(RWUE8S-bV~x%$Lw^R+1XvYv)|1H2^HA=XaDGo$=sWq z^Zm|u&;9QAedjy3?2)?ck-92$U~((NFo|%Cgu}=%s$CzAh)2n-XBHk=FaWx+<~f|1 z2+cn=&owW&z*S*&aSJbNHbY-He~@fA+etB;WyGeIPGq9+AV%IO`B8FMGF|*q{JA(= zEE1g&<%yK|0xrOVdR6|um(KD>*{xV?=%+J1PFnbj(Vpp-V$~E-b6E>1wbK)SJR-Q;Veb1&T zl$%6NOmw8)Y~|iAip%hRc-(uCc($KzZQSiSSmiyu4S+RFw4Pz&T+0`&b*~v;vcXld zCZllmgd%$m{Oc&I?kMN%Iqi-0Fs7~X6bu*-1N5di?&G52dO>dSm*bz9F*dy^nQJcA zbDNh&zSUm4x9!vs?~W7R%F5P;OWp&!Js*79cIXevO?drQH*J1^hT&NiYhTS@LCc(Y zm`LRm?V;D7utxr#;5+s36Xb`pb>iPHt!9Nekpagm;yV{Hwbhn)4EI}4X- zJ6tZz)#@brF7DbgE%$P{u20tDBB8+Qd7V`&f;syNU{6=}s@Lu!I)8R$KWu`Fgmkl( zK6Tn$B)FRk<{tH2(`U2yfB(NKd5AAh+R)vNcL9gFO z!xXtBQp$|6>dlGZk7L6-eet*FI^EId)0xC5Fj2q^;f5^>(|WdD^6uL&xKSn<0%CA! zL0rO%D}Mh<>?9E|A)hl|Th_NTg3ZFaIW1@C#~HzFZ*{R_`*CovT38pyJNT}Cbb{eD zz`lC8UzCLOZaj;+j;ZAa1fFnBAj746teg8t4pUdIbr-rh)mtZPWNQ|H)3Zx<2o5F`k%#>^rm0C&L6ce3e;^ePz~p#NC*AbOG@%> z`R^Gw7)M(+8qwe9q|nB8HVv1SFQ8{0qFDO!K1xI7c|v2|1HLhzU$aV4`8=U>eHxy| z&gK6v7%*)M+C8SSiI*Qo%M)gJ?Qm_fz>V%3|h+|wmG?#m?+24T2& zPZJagg2T)pqr0IbgQs#IIEtW10H%^80L*%b@!0&4T0w&#a*|OXiqo5;L8RkIeuNIj z`wz|~i9jUriM=*|Y`FIWSfO_QjG0A70%PZ+vo=4R8|)4<2wVp}>8aW-Tq=v$0kU;L zxo$%zMbUJ7lxgEp|_KyYrXM zC)wZ$d>P~O1X^_iO+aKeU;M<-ncuTe3XxfSYqp$Z^&k)5%p0Z{{X7CLF zGkbuiZ=vxD7jf|}1dd4m_6+L6=4Y%)LY&Z-L~q_fLHnMwQxTa?o9?1;YI)4c>F&EI z7Q0CXy>eUV8cM5gBO{(o(s^n&$fohK0z}g2yAUIYOyy%GM@~{ZeV(%}8bn*ZMi!h) zrqHkMpj_-ClWB7Yn~BII-n9*M^EXIIt6PwQ&TT!x{m(y|g&@dW!4_Odd z#y7I-5ql$9_JYwfHH@rQ_8XZ^+A6Jgi4w$;TxrRJz30`)UmX98lEaAi{N55U9@l6 z*3-ZYte}slVXK@hd|i-|j;)9+pwH9s2zn?TXCRWtH#W-2e4x8Z?oKs(GvMyXJb~6s z=jpjLZ#qxszD|psJe||?#T1lXb6)i%$Rz)GQ_b~P&8eW6<3B^-h@~nQ-pWeOSGn-2 G@c#hSdTwR_ delta 2348 zcmbtV4NR3)7(VYg-~E2>z2E&Vf1>iIl8PpBFL*&Q0s;igtEiwT@gHcjl(0-IlauR5 z7fbt=XKQOkrE|IbyG@HgP}8=4HZbQ{uEHM_K|o#0S^=Gpi{3%B)w*ZjdCz&@_w1bW zoacFOO}kptuI`%XA3ul?O5k5S{~{5xqTRD%as1$slDc9)?N@}gTRebV+8^32?Uu*C zq)pqlJbTIF?DgCmL2bM@ZQ`9AuW}nh3Xt}ewo(hVU9#=7t+U0dzpKsaYwBV($oivo zuk|Ub%hGQ-W63ZNn2(z`nH@@(@_|wy_sBcsJUL7{ENztLhP=M(1%%*B{Z8p@k6v~K3*rvs;`=)F0~J3B(oN*#lW0$U zWh@ACgLkHft$j~WrVmeg)+P#;H_#lO=kOFf;lzUW9h%2yE*u}A53UPiw=Uudp8j<$ zgl~o7JWw;ZM4x1L9BoMk2=b(~76Al$-a8kHA;8mc{tp0u&u14d0r+iyr|tMVZLmfv z7Xnc@K8>Uwq#a^{sgry~UXU!}8S^jZ1Ljp`yK+J)Q-b7rdA(MqDYiOWmU>Oq)i~=# z>vn6Th7|)7sg2I|_LP%K0C%ZZtKJWPGQ*WMQw(F@yJh}0H@edgfw%`CMQXTWm?Tit>@1;udx zgW{685{g@@mzIxX$>*?34=B$PENN(wUR<6#Fk(4k=JP)Pi5BdHE$ns+Ka=(~dY$ba zfC7WsGuZ6`m`d`f_1;66S>FwqfvJT}>@r@+JQR4h3*s`8JFg5Mzfe3?Xb1@azs^Q5H?H*#Aua z&|YIdR)V1_ffu#$s2Z83YxS~8ds^~nQBtY!jp>w7B|JbH#4kv$ScdP28h#5W!ew|F zW}ozWhEZ@ z#QEatkuREt-NTfT0y!&AR%I!Vj%I;_mbD7wT0|J z3V8w^V=tzXnJguhBtn5PejHY_BkiymRvBhC+xZAt2>H6BI*K)4<~2n~BiXRh8{3-3 zV=KJlyWB5kjueDrv=SV{DosDuj-e!(^Dk7$McRHX$9BP1pth@()^2N+)z5O&GSA#( z&QQKpmdR~$wQQB@q)f3#tQDh8ZKh{UVM3#j>+!P(3Q8rNX%x88MUj(zhEaOBM55TX zepn&X>0@BURWgkw4#09urw(C;=>tQcVH!Dv8m3cxu#vTN@(^yAPVxbVX~Yn6n1&lz zY=JNzbeM*Y#17LCA9$EfypJBQK@)tbPp6Y?Ovkf^bW(_EuwkQFRt9lkI*vV`LAGET zWY}43@&e+}y-Ae%7_U|kE0puabG_A&&ry_sYlrhcqF)5x&%N|MLRj>c`Y-d-JL X9sX0B!tEqx%^}-i_VHagq$=VsD#8z) diff --git a/src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java b/src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java index 4e48ebc..f16bf5f 100644 --- a/src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java +++ b/src/main/java/a8k/service/app/devicedriver/calibration/Hbot2DCodeScanPosCalibration.java @@ -41,29 +41,9 @@ public class Hbot2DCodeScanPosCalibration { @ExtApiFn(name = "获取所有坐标",group = "基础", order = 1) - public ObjectNode getPoss() throws AppException { - ObjectMapper mapper = new ObjectMapper(); - - ObjectNode node = new ObjectMapper().createObjectNode(); - ArrayNode PBScanPos = node.putArray("PBScanPos"); - ArrayNode LittBSScanPos = node.putArray("LittBSScanPos"); - ArrayNode LarBSScanPos = node.putArray("LarBSScanPos"); - - for (int i = 0; i < 6; i++) { - PBScanPos.add(mapper.valueToTree(hbot2DCodeScanPos.getPBScanPosX(i).toString())); - } - - for (int i = 0; i < 6; i++) { - LittBSScanPos.add(mapper.valueToTree(hbot2DCodeScanPos.getLittBSX(i).toString())); - } - - for (int i = 0; i < 6; i++) { - LarBSScanPos.add(mapper.valueToTree(hbot2DCodeScanPos.getLarBSX(i).toString())); - } - return node; + public Object getParams() throws AppException { + return hbot2DCodeScanPos.getParams(); } - - // 测试工具 @ExtApiFn(name = "归零", group = "测试工具", order = 11) public void deviceReset() throws AppException { diff --git a/src/main/java/a8k/service/app/devicedriver/calibration/ReactionPlatesTransmitControlerCalibration.java b/src/main/java/a8k/service/app/devicedriver/calibration/ReactionPlatesTransmitControlerCalibration.java index 16662ba..fcbc974 100644 --- a/src/main/java/a8k/service/app/devicedriver/calibration/ReactionPlatesTransmitControlerCalibration.java +++ b/src/main/java/a8k/service/app/devicedriver/calibration/ReactionPlatesTransmitControlerCalibration.java @@ -62,8 +62,6 @@ public class ReactionPlatesTransmitControlerCalibration { stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.OptModPullM, overtime); stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.OptModScannerM, overtime); stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.IncubatorRotateCtrlM, overtime); - - } @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 2) @@ -90,15 +88,22 @@ public class ReactionPlatesTransmitControlerCalibration { hbotModule.enable(0); } - @ExtApiFn(name = "读取所有设定值", group = "测试工具", order = 5) - public Map getPoss() { - return Map.of( - "optModulePosMgr", optModulePosMgr, - "turntablePosMgr", turntablePosMgr, - "platesBoxPosMgr", platesBoxPosMgr - ); + @ExtApiFn(name = "读取板夹仓坐标", group = "测试工具", order = 5) + public Object getPlatesBoxPos() { + return platesBoxPosMgr.getParams(); + } + + @ExtApiFn(name = "读取光学模组坐标", group = "测试工具", order = 6) + public Object getOptModulePos() { + return optModulePosMgr.getParams(); } + @ExtApiFn(name = "读取孵育盘坐标", group = "测试工具", order = 7) + public Object getTurntablePos() { + return turntablePosMgr.getParams(); + } + + // // 孵育盘校准 // @@ -144,21 +149,30 @@ public class ReactionPlatesTransmitControlerCalibration { // // 板夹仓位置 // - @ExtApiFn(name = "设置板夹仓-Y轴间距", group = "板夹仓.校准", order = 200) - public void PlatesBoxPosMgr_setYSpacing(Integer spaceing) throws AppException { - platesBoxPosMgr.setYSpacing(spaceing); - } + // @ExtApiFn(name = "设置板夹仓-Y轴间距", group = "板夹仓.校准", order = 200) + // public void PlatesBoxPosMgr_setYSpacing(Integer spaceing) throws AppException { + // platesBoxPosMgr.setYSpacing(spaceing); + // } @ExtApiFn(name = "设置板夹仓-仓0-Y轴坐标", group = "板夹仓.校准", order = 201) public Integer PlatesBoxPosMgr_setCh0YPos() throws AppException { stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1); stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1); - Integer ch0YPos = stepMotorControler.stepMotorReadPosByMoveToZeroBlock(StepMotorMId.PlatesBoxYM, overtime); - platesBoxPosMgr.setCh0YPos(ch0YPos); - return ch0YPos; + Integer pos = stepMotorControler.stepMotorReadPosByMoveToZeroBlock(StepMotorMId.PlatesBoxYM, overtime); + platesBoxPosMgr.setCh0YPos(pos); + return pos; + } + + @ExtApiFn(name = "设置板夹仓-仓5-Y轴坐标", group = "板夹仓.校准", order = 202) + public Integer PlatesBoxPosMgr_setCh5YPos() throws AppException { + stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1); + stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1); + Integer pos = stepMotorControler.stepMotorReadPosByMoveToZeroBlock(StepMotorMId.PlatesBoxYM, overtime); + platesBoxPosMgr.setCh5YPos(pos); + return pos; } - @ExtApiFn(name = "设置板夹仓-仓0-X轴到位坐标", group = "板夹仓.校准", order = 202) + @ExtApiFn(name = "设置板夹仓-仓0-X轴到位坐标", group = "板夹仓.校准", order = 203) public Integer PlatesBoxPosMgr_setPushEndXPos() throws AppException { stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxYM, 1); stepMotorControler.stepMotorEnable(StepMotorMId.PlatesBoxPusherM, 1); diff --git a/src/main/java/a8k/service/app/devicedriver/ctrl/ReactionPlatesTransmitCtrl.java b/src/main/java/a8k/service/app/devicedriver/ctrl/ReactionPlatesTransmitCtrl.java index abf33d5..ec41b7b 100644 --- a/src/main/java/a8k/service/app/devicedriver/ctrl/ReactionPlatesTransmitCtrl.java +++ b/src/main/java/a8k/service/app/devicedriver/ctrl/ReactionPlatesTransmitCtrl.java @@ -111,7 +111,7 @@ public class ReactionPlatesTransmitCtrl { public void pushPlateQuick(ConsumableGroup PBCh, IncubatorPos turntablePosIndex) throws AppException { trunableMoveToPushPos(turntablePosIndex); - stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.PlatesBoxYM, platesBoxPosMgr.getCh0YPos() + PBCh.off * platesBoxPosMgr.getYSpacing(), overtime); + stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.PlatesBoxYM, platesBoxPosMgr.getChXPos(PBCh.off), overtime); stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.PlatesBoxPusherM, platesBoxPosMgr.getPushEndXPos(), overtime); stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.PlatesBoxPusherM, overtime); stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.PlatesBoxYM, overtime); @@ -121,10 +121,10 @@ public class ReactionPlatesTransmitCtrl { trunableMoveToPullPos(turntablePosIndex); stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.OptModScannerM, optModulePosMgr.getOptScanerScandbyPos(), overtime); stepMotorControler.stepMotorEasyMoveToBlock(StepMotorMId.OptModPullM, optModulePosMgr.getPullerTargetPos(), overtime); -// if (!canBus.getIOState(IOId.PullerMEndPPS)) { -// logger.error("pull plate fail"); -// throw new AppException(A8kEcode.APPE_PULL_PLATE_FAIL); -// } + // if (!canBus.getIOState(IOId.PullerMEndPPS)) { + // logger.error("pull plate fail"); + // throw new AppException(A8kEcode.APPE_PULL_PLATE_FAIL); + // } stepMotorControler.stepMotorEasyMoveToZeroPointQuickBlock(StepMotorMId.OptModPullM, overtime); } @@ -135,6 +135,4 @@ public class ReactionPlatesTransmitCtrl { } - - } diff --git a/src/main/java/a8k/service/app/devicedriver/pos/Hbot2DCodeScanPos.java b/src/main/java/a8k/service/app/devicedriver/pos/Hbot2DCodeScanPos.java index 5d4f90e..1dd5d4f 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/Hbot2DCodeScanPos.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/Hbot2DCodeScanPos.java @@ -3,6 +3,7 @@ package a8k.service.app.devicedriver.pos; import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; import a8k.extapi_controler.utils.*; import a8k.service.db.LowerDeviceParameterDBService; +import a8k.service.db.type.Parameter; import a8k.service.db.utils.PosParameterReader; import a8k.type.cfg.Pos2d; import jakarta.annotation.PostConstruct; @@ -11,6 +12,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import java.util.List; + /** * HBOT二维码扫描坐标参数 */ @@ -20,6 +23,35 @@ import org.springframework.stereotype.Component; public class Hbot2DCodeScanPos { static final Logger logger = LoggerFactory.getLogger(Hbot2DCodeScanPos.class); + enum POS { + PBScanPos0("板夹仓扫码位置0"), + PBScanPos1("板夹仓扫码位置1"), + PBScanPos2("板夹仓扫码位置2"), + PBScanPos3("板夹仓扫码位置3"), + PBScanPos4("板夹仓扫码位置4"), + PBScanPos5("板夹仓扫码位置5"), + + LittBS0("小缓冲液扫码位置0"), + LittBS1("小缓冲液扫码位置1"), + LittBS2("小缓冲液扫码位置2"), + LittBS3("小缓冲液扫码位置3"), + LittBS4("小缓冲液扫码位置4"), + LittBS5("小缓冲液扫码位置5"), + + LarBS0("大缓冲液扫码位置0"), + LarBS1("大缓冲液扫码位置1"), + LarBS2("大缓冲液扫码位置2"), + LarBS3("大缓冲液扫码位置3"), + LarBS4("大缓冲液扫码位置4"), + LarBS5("大缓冲液扫码位置5"), + ; + public final String chName; + + POS(String chName) { + this.chName = chName; + } + } + @Resource LowerDeviceParameterDBService lowerDeviceParameterDBService; @@ -30,9 +62,14 @@ public class Hbot2DCodeScanPos { @PostConstruct void initialize() { posReader = lowerDeviceParameterDBService.getReader(this.getClass()); - + for (POS pos : POS.values()) { + posReader.setParamChName(pos, pos.chName); + } } + public List getParams() { + return posReader.getParams(); + } public void setPBScanPosX(Integer X, Pos2d pos) { logger.info("setPBScanPos{} {}", X, pos); @@ -49,9 +86,7 @@ public class Hbot2DCodeScanPos { posReader.setParam("LarBS" + X, pos); } - public Pos2d getPBScanPosX(Integer X) { - return posReader.getPos("PBScanPos" + X, Pos2d.class); - } + public Pos2d getPBScanPosX(Integer X) {return posReader.getPos("PBScanPos" + X, Pos2d.class);} public Pos2d getLittBSX(Integer X) { return posReader.getPos("LittBS" + X, Pos2d.class); @@ -62,56 +97,52 @@ public class Hbot2DCodeScanPos { } - public void paramReset() { - logger.info("init param"); - posReader.setVersion(nowParaVersion); - - - { - //板夹仓扫码位置 - Pos2d pos0 = new Pos2d(-20, 1504); - int scanYSpacing = 265; - - setPBScanPosX(0, pos0); - setPBScanPosX(1, pos0.add(0, scanYSpacing)); - setPBScanPosX(2, pos0.add(0, scanYSpacing * 2)); - setPBScanPosX(3, pos0.add(0, scanYSpacing * 3)); - setPBScanPosX(4, pos0.add(0, scanYSpacing * 4)); - setPBScanPosX(5, pos0.add(0, scanYSpacing * 5)); - - } - - { - // 小缓冲液扫码位置 - Pos2d pos0 = new Pos2d(741 + 579 + 333, 937 + 1097 + 29); - int xSpacing = 1230; - int ySpacing = 1250; - - setLittBSX(0, pos0.add(0, 0)); - setLittBSX(1, pos0.add(xSpacing, 0)); - setLittBSX(2, pos0.add(xSpacing * 2, 0)); - setLittBSX(3, pos0.add(0, ySpacing)); - setLittBSX(4, pos0.add(xSpacing, ySpacing)); - setLittBSX(5, pos0.add(xSpacing * 2, ySpacing)); - } - - { - // 大缓冲扫码位置 - Pos2d LarBSPos0 = new Pos2d(4474 + 60 + 333, 1172 + 30 + 29); - int xSpacing = 280; - int ySpacing = 580; - - setLarBSX(0, LarBSPos0.add(0, 0)); - setLarBSX(1, LarBSPos0.add(xSpacing, 0)); - setLarBSX(2, LarBSPos0.add(xSpacing * 2, 0)); - setLarBSX(3, LarBSPos0.add(0, ySpacing)); - setLarBSX(4, LarBSPos0.add(xSpacing, ySpacing)); - setLarBSX(5, LarBSPos0.add(xSpacing * 2, ySpacing)); - - } - - - } + // public void paramReset() { + // logger.info("init param"); + // + // { + // //板夹仓扫码位置 + // Pos2d pos0 = new Pos2d(-20, 1504); + // int scanYSpacing = 265; + // + // setPBScanPosX(0, pos0); + // setPBScanPosX(1, pos0.add(0, scanYSpacing)); + // setPBScanPosX(2, pos0.add(0, scanYSpacing * 2)); + // setPBScanPosX(3, pos0.add(0, scanYSpacing * 3)); + // setPBScanPosX(4, pos0.add(0, scanYSpacing * 4)); + // setPBScanPosX(5, pos0.add(0, scanYSpacing * 5)); + // + // } + // + // { + // // 小缓冲液扫码位置 + // Pos2d pos0 = new Pos2d(741 + 579 + 333, 937 + 1097 + 29); + // int xSpacing = 1230; + // int ySpacing = 1250; + // + // setLittBSX(0, pos0.add(0, 0)); + // setLittBSX(1, pos0.add(xSpacing, 0)); + // setLittBSX(2, pos0.add(xSpacing * 2, 0)); + // setLittBSX(3, pos0.add(0, ySpacing)); + // setLittBSX(4, pos0.add(xSpacing, ySpacing)); + // setLittBSX(5, pos0.add(xSpacing * 2, ySpacing)); + // } + // + // { + // // 大缓冲扫码位置 + // Pos2d LarBSPos0 = new Pos2d(4474 + 60 + 333, 1172 + 30 + 29); + // int xSpacing = 280; + // int ySpacing = 580; + // + // setLarBSX(0, LarBSPos0.add(0, 0)); + // setLarBSX(1, LarBSPos0.add(xSpacing, 0)); + // setLarBSX(2, LarBSPos0.add(xSpacing * 2, 0)); + // setLarBSX(3, LarBSPos0.add(0, ySpacing)); + // setLarBSX(4, LarBSPos0.add(xSpacing, ySpacing)); + // setLarBSX(5, LarBSPos0.add(xSpacing * 2, ySpacing)); + // + // } + // } } diff --git a/src/main/java/a8k/service/app/devicedriver/pos/HbotConsumablePosMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/HbotConsumablePosMgr.java index 69b32aa..c203252 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/HbotConsumablePosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/HbotConsumablePosMgr.java @@ -42,7 +42,6 @@ public class HbotConsumablePosMgr { public void paramReset() { logger.info("init param"); - posReader.setVersion(nowParaVersion); posReader.setParam(HbotConsumablePosParam.TipGroup0_000Pos, new Pos3d()); diff --git a/src/main/java/a8k/service/app/devicedriver/pos/HbotFixPosMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/HbotFixPosMgr.java index 8ebd245..3ff2f59 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/HbotFixPosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/HbotFixPosMgr.java @@ -55,7 +55,6 @@ public class HbotFixPosMgr { public void paramReset() { logger.info("init param"); - posReader.setVersion(nowParaVersion); posReader.setParam(Pos.DropTipPos.name(), new Pos3d(0, 0, 0)); posReader.setParam(Pos.DropLiquidPos.name(), new Pos3d(0, 0, 0)); } diff --git a/src/main/java/a8k/service/app/devicedriver/pos/HbotSamplePosMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/HbotSamplePosMgr.java index da7c1fd..40c9d94 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/HbotSamplePosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/HbotSamplePosMgr.java @@ -42,7 +42,6 @@ public class HbotSamplePosMgr { public void paramReset() { logger.info("init param"); - posReader.setVersion(nowParaVersion); } public List getParams() { diff --git a/src/main/java/a8k/service/app/devicedriver/pos/OptModulePosMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/OptModulePosMgr.java index d6fa145..94717f2 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/OptModulePosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/OptModulePosMgr.java @@ -2,6 +2,7 @@ package a8k.service.app.devicedriver.pos; import a8k.service.db.LowerDeviceParameterDBService; +import a8k.service.db.type.Parameter; import a8k.service.db.utils.PosParameterReader; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; @@ -9,6 +10,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import java.util.List; + /** * HBOT二维码扫描坐标参数 */ @@ -41,12 +44,18 @@ public class OptModulePosMgr { @PostConstruct void initialize() { posReader = lowerDeviceParameterDBService.getReader(this.getClass()); + for (POS pos : POS.values()) { + posReader.setParamChName(pos, pos.chName); + } + } + public List getParams() { + return posReader.getParams(); } + public void paramReset() { logger.info("init param"); - posReader.setVersion(nowParaVersion); posReader.setParam(POS.PullerTargetPos, 1147); posReader.setParam(POS.OptScanerDropPos, -349); posReader.setParam(POS.OptScanerScandbyPos, 305); diff --git a/src/main/java/a8k/service/app/devicedriver/pos/PlatesBoxPosMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/PlatesBoxPosMgr.java index 91866dc..cf7944f 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/PlatesBoxPosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/PlatesBoxPosMgr.java @@ -2,6 +2,7 @@ package a8k.service.app.devicedriver.pos; import a8k.service.db.LowerDeviceParameterDBService; +import a8k.service.db.type.Parameter; import a8k.service.db.utils.PosParameterReader; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; @@ -9,35 +10,25 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import java.util.List; + @Component public class PlatesBoxPosMgr { static final Logger logger = LoggerFactory.getLogger(PlatesBoxPosMgr.class); + enum POS { - Ch0YPos, - YSpacing, - PushEndXPos, + Ch0YPos("通道0Y轴位置"), + Ch5YPos("通道5Y轴位置"), + PushEndXPos("推杆到位坐标"), + ; + public final String chName; + + POS(String chName) { + this.chName = chName; + } } -// @ExtApiParam(name = "板夹仓通道0位置", group = "板夹仓参数", order = ORDER.getPBCh0Pos) -// public Integer getPBCh0Pos() { -// return hpReader.getInteger("PBCh0Pos", -17); -// } -// -// @ExtApiParam(name = "板夹仓通道间距", group = "板夹仓参数", order = ORDER.getPBChSpacing) -// public Integer getPBChSpacing() { -// return hpReader.getInteger("PBChSpacing", 265); -// } -// -// @ExtApiParam(name = "推杆到位坐标", group = "板夹仓参数", order = ORDER.getPusherEndPos) -// public Integer getPusherEndPos() { -// return hpReader.getInteger("PusherEndPos", 1160); -// } -// -// @ExtApiParam(name = "推杆扫码开始坐标", group = "板夹仓参数", order = ORDER.getPusherScanStartPos) -// public Integer getPusherScanStartPos() { -// return hpReader.getInteger("PusherScanStartPos", 960); -// } -// + @Resource LowerDeviceParameterDBService lowerDeviceParameterDBService; @@ -48,25 +39,36 @@ public class PlatesBoxPosMgr { @PostConstruct void initialize() { posReader = lowerDeviceParameterDBService.getReader(this.getClass()); + for (POS pos : POS.values()) { + posReader.setParamChName(pos, pos.chName); + } + } + public List getParams(){ + return posReader.getParams(); } public void paramReset() { logger.info("init param"); - posReader.setVersion(nowParaVersion); - posReader.setParam(POS.Ch0YPos, -17); - posReader.setParam(POS.YSpacing, 265); + posReader.setParam(POS.Ch5YPos, 1308); posReader.setParam(POS.PushEndXPos, 1160); - } public Integer getCh0YPos() { return posReader.getPos(POS.Ch0YPos, Integer.class); } - public Integer getYSpacing() { - return posReader.getPos(POS.YSpacing, Integer.class); + public Integer getCh5YPos() { + return posReader.getPos(POS.Ch0YPos, Integer.class); + } + + public Double getYSpacing() { + return (getCh5YPos() - getCh0YPos()) / 5.0; + } + + public Integer getChXPos(int ch) { + return (int) (getCh0YPos() + ch * getYSpacing()); } public Integer getPushEndXPos() { @@ -77,8 +79,8 @@ public class PlatesBoxPosMgr { posReader.setParam(POS.Ch0YPos, pos); } - public void setYSpacing(Integer pos) { - posReader.setParam(POS.YSpacing, pos); + public void setCh5YPos(Integer pos) { + posReader.setParam(POS.Ch5YPos, pos); } public void setPushEndXPos(Integer pos) { diff --git a/src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java index dd9888c..6f479a9 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java @@ -10,53 +10,49 @@ import org.springframework.stereotype.Component; @Component -//horizontal scroll public class TubeFeedingModulePosMgr { static final Logger logger = LoggerFactory.getLogger(TubeFeedingModulePosMgr.class); -// public final Integer ScanerClampingSVReleasePos = 100; -// public final Integer ScanerClampingSVClampingPos = 1000; - - - - public enum POS { - TubeHolderEnterXPos, // 入料位置 - TubeHolderExitXPos, // 出料位置 - TubeHolderScanXPos, // 试管架扫描位置 - Tube0ScanXPos, // 0号试管扫描位置 - Tube0AltitJudgXPos, // 0试管高度判断位置 - Tube0ExistJudgXPos, // 0试管存在判断位置 - Tube0PreProcessXPos, // 0试管预处理位置 - TubeScanServoTorque, // 试管扫描伺服力矩 + TubeHolderEnterXPos("入料位置"), // + TubeHolderExitXPos("出料位置"), // + TubeHolderScanXPos("试管架扫描位置"), // + Tube0ScanXPos("0号试管扫描位置"), // + Tube0AltitJudgXPos("0试管高度判断位置"), // + Tube0ExistJudgXPos("0试管存在判断位置"), // + Tube0PreProcessXPos("0试管预处理位置"), // + TubeScanServoTorque("试管扫描伺服力矩"), // + ; + final String chName; + + POS(String chName) { + this.chName = chName; + } } @Resource LowerDeviceParameterDBService lowerDeviceParameterDBService; - PosParameterReader posReader = null; - Integer nowParaVersion = 1; + PosParameterReader posReader = null; - // - // MotorTubeRackMoveCtrlService - // @PostConstruct void initialize() { posReader = lowerDeviceParameterDBService.getReader(this.getClass()); - Integer paraVersion = posReader.getVersion(); -// if (!nowParaVersion.equals(paraVersion)) { -// logger.info("init param"); -// posReader.setVersion(nowParaVersion); -// posReader.setParam(POS.TubeHolderEnterXPos, -46); -// posReader.setParam(POS.TubeHolderExitXPos, 3975); -// posReader.setParam(POS.TubeHolderScanXPos, 2202); -// posReader.setParam(POS.Tube0ScanXPos, 505); -// posReader.setParam(POS.Tube0AltitJudgXPos, 505); -// posReader.setParam(POS.Tube0ExistJudgXPos, 300); -// posReader.setParam(POS.Tube0PreProcessXPos, 1225); -// posReader.setParam(POS.TubeScanServoTorque, 500); -// } + for (POS pos : POS.values()) { + posReader.setParamChName(pos, pos.chName); + } + // if (!nowParaVersion.equals(paraVersion)) { + // logger.info("init param"); + // posReader.setParam(POS.TubeHolderEnterXPos, -46); + // posReader.setParam(POS.TubeHolderExitXPos, 3975); + // posReader.setParam(POS.TubeHolderScanXPos, 2202); + // posReader.setParam(POS.Tube0ScanXPos, 505); + // posReader.setParam(POS.Tube0AltitJudgXPos, 505); + // posReader.setParam(POS.Tube0ExistJudgXPos, 300); + // posReader.setParam(POS.Tube0PreProcessXPos, 1225); + // posReader.setParam(POS.TubeScanServoTorque, 500); + // } } diff --git a/src/main/java/a8k/service/app/devicedriver/pos/TubeHolderParamMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/TubeHolderParamMgr.java index 7670155..4c0e6b9 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/TubeHolderParamMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/TubeHolderParamMgr.java @@ -30,7 +30,6 @@ public class TubeHolderParamMgr { void paramReset() { logger.info("init param"); - posReader.setVersion(nowParaVersion); posReader.setParam("TubeSpacing", 200); } diff --git a/src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java index dc270a7..dbeecf5 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java @@ -19,7 +19,7 @@ public class TubePreProcesPosMgr { YServoTakeTubePos("取试管位置"),// YServoShakePos("摇匀位置"),// ZMotorTakeHTubePos("取高试管位置"),// - // ZMotorTakeSTubePos("取低试管位置"),// +// ZMotorTakeSTubePos("取低试管位置"),// ZMotorShakeTubePos("摇匀放置位置"),// ShakeClampMotorClampPos("试管夹紧位"),// ShakeClampMotorReleasePos("摇匀臂"),// @@ -44,26 +44,28 @@ public class TubePreProcesPosMgr { @PostConstruct void initialize() { posReader = lowerDeviceParameterDBService.getReader(this.getClass()); - Integer paraVersion = posReader.getVersion(); -// if (!nowParaVersion.equals(paraVersion)) { -// logger.info("init param"); -// posReader.setVersion(nowParaVersion); -// -// posReader.setParam(POS.GripperServoOpenPos, 1600); -// posReader.setParam(POS.GripperServoClosePos, 1460); -// posReader.setParam(POS.GripperServoTakeCapPos, 1515); -// -// posReader.setParam(POS.YServoTakeTubePos, 3000); -// posReader.setParam(POS.YServoShakePos, 2130); -// -// posReader.setParam(POS.ZMotorTakeHTubePos, 739); -// posReader.setParam(POS.ZMotorShakeTubePos, 835); -// -// posReader.setParam(POS.ShakeClampMotorClampPos, 10); -// posReader.setParam(POS.ShakeClampMotorReleasePos, 90); -// -// posReader.setParam(POS.GripperRedundancySpacingForTubeCap, 20); -// } + for (POS pos : POS.values()) { + posReader.setParamChName(pos, pos.chName); + } + // if (!nowParaVersion.equals(paraVersion)) { + // logger.info("init param"); + // posReader.setVersion(nowParaVersion); + // + // posReader.setParam(POS.GripperServoOpenPos, 1600); + // posReader.setParam(POS.GripperServoClosePos, 1460); + // posReader.setParam(POS.GripperServoTakeCapPos, 1515); + // + // posReader.setParam(POS.YServoTakeTubePos, 3000); + // posReader.setParam(POS.YServoShakePos, 2130); + // + // posReader.setParam(POS.ZMotorTakeHTubePos, 739); + // posReader.setParam(POS.ZMotorShakeTubePos, 835); + // + // posReader.setParam(POS.ShakeClampMotorClampPos, 10); + // posReader.setParam(POS.ShakeClampMotorReleasePos, 90); + // + // posReader.setParam(POS.GripperRedundancySpacingForTubeCap, 20); + // } } diff --git a/src/main/java/a8k/service/app/devicedriver/pos/TurntablePosMgr.java b/src/main/java/a8k/service/app/devicedriver/pos/TurntablePosMgr.java index 5d25c2c..88e1be0 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/TurntablePosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/TurntablePosMgr.java @@ -1,6 +1,7 @@ package a8k.service.app.devicedriver.pos; import a8k.service.db.LowerDeviceParameterDBService; +import a8k.service.db.type.Parameter; import a8k.service.db.utils.PosParameterReader; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; @@ -8,6 +9,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import java.util.List; + /** * HBOT二维码扫描坐标参数 */ @@ -19,33 +22,44 @@ public class TurntablePosMgr { * 转盘相关位置 */ enum POS { - PushPos0, - PullPos0, - DropLiquidPos0, - PosSpacing + PushPos0("入板位置"), + PullPos0("出板位置"), + DropLiquidPos0("滴液位置"), + PosSpacing("位置间隔"), + ; + + final String chName; + + POS(String chName) { + this.chName = chName; + } } + @Resource LowerDeviceParameterDBService lowerDeviceParameterDBService; PosParameterReader posReader = null; - static Integer nowParaVersion = 0; - @PostConstruct void initialize() { posReader = lowerDeviceParameterDBService.getReader(this.getClass()); - + for (POS pos : POS.values()) { + posReader.setParamChName(pos, pos.chName); + } } public void paramReset() { logger.info("init param"); - posReader.setVersion(nowParaVersion); posReader.setParam(POS.PushPos0, 1650); posReader.setParam(POS.PullPos0, 19700); posReader.setParam(POS.DropLiquidPos0, 1650 + 8950); posReader.setParam(POS.PosSpacing, 1800); } + public List getParams() { + return posReader.getParams(); + } + public Integer getPushPos0() { return posReader.getPos(POS.PushPos0, Integer.class); } diff --git a/src/main/java/a8k/service/db/LowerDeviceParameterDBService.java b/src/main/java/a8k/service/db/LowerDeviceParameterDBService.java index 8374c13..fb464b7 100644 --- a/src/main/java/a8k/service/db/LowerDeviceParameterDBService.java +++ b/src/main/java/a8k/service/db/LowerDeviceParameterDBService.java @@ -47,21 +47,22 @@ public class LowerDeviceParameterDBService { newobj.chName = chName; ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, newobj); } else { - // { - // ZSqliteJdbcHelper.delete(jdbcTemplate, tableName, old.id); - // Parameter newobj = old.deepCopy(); - // newobj.id = 0; - // ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, newobj); - // } - - { - if (old.chName != null && old.chName.equals(chName)) { - return; - } - Parameter newobj = old.deepCopy(); - newobj.chName = chName; - ZSqliteJdbcHelper.updateObj(jdbcTemplate, tableName, tClass, newobj); - } +// { +// ZSqliteJdbcHelper.delete(jdbcTemplate, tableName, old.id); +// Parameter newobj = old.deepCopy(); +// newobj.id = 0; +// newobj.chName = chName; +// ZSqliteJdbcHelper.addObj(jdbcTemplate, tableName, tClass, newobj); +// } + + { + if (old.chName != null && old.chName.equals(chName)) { + return; + } + Parameter newobj = old.deepCopy(); + newobj.chName = chName; + ZSqliteJdbcHelper.updateObj(jdbcTemplate, tableName, tClass, newobj); + } } diff --git a/src/main/java/a8k/service/db/utils/PosParameterReader.java b/src/main/java/a8k/service/db/utils/PosParameterReader.java index 723d6a7..e0db981 100644 --- a/src/main/java/a8k/service/db/utils/PosParameterReader.java +++ b/src/main/java/a8k/service/db/utils/PosParameterReader.java @@ -47,13 +47,8 @@ public class PosParameterReader { lowerDeviceParameterDBService.tryInitParam(service.getSimpleName(), key.name(), parm); } - public Integer getVersion() { - return lowerDeviceParameterDBService.getParamVersion(service.getSimpleName()); - } - public void setVersion(Integer version) { - lowerDeviceParameterDBService.setParamVersion(service.getSimpleName(), version); - } + public List getParams() { return lowerDeviceParameterDBService.getParams(service.getSimpleName());