From 6b93a610e5200776438e164d92ff5bb9fafe7622 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Tue, 15 Oct 2024 13:56:36 +0800 Subject: [PATCH] update --- app.db | Bin 225280 -> 225280 bytes .../pagecontrol/ExtApiTabConfig.java | 2 +- .../TubeFeedingModulePosCalibration.java | 134 +++++++++++++++++++++ .../calibration/TubePreProcesPosCalibration.java | 8 +- .../calibration/TubeScanPosCalibration.java | 129 -------------------- .../devicedriver/ctrl/TubeTubeFeedingModule.java | 17 ++- .../devicedriver/pos/TubeFeedingModulePosMgr.java | 31 +++-- .../app/devicedriver/pos/TubePreProcesPosMgr.java | 11 +- .../service/db/LowerDeviceParameterDBService.java | 8 +- .../a8k/service/db/utils/PosParameterReader.java | 3 + src/main/java/a8k/utils/ZSqliteJdbcHelper.java | 11 +- 11 files changed, 192 insertions(+), 162 deletions(-) create mode 100644 src/main/java/a8k/service/app/devicedriver/calibration/TubeFeedingModulePosCalibration.java delete mode 100644 src/main/java/a8k/service/app/devicedriver/calibration/TubeScanPosCalibration.java diff --git a/app.db b/app.db index 55a01ea2d776f44032ef2f1e59227a6ba4d2c8b9..ced499845393ec5238c33509e95c7653b9d494af 100644 GIT binary patch delta 565 zcmZp8z}xVEcY>6VN(lo4gE zvXWMoVBJ{kJ_&M~l?5*8*wr9ubD%Uwb?kwPrKR~X zz4>4{lL)7wl{PT&ERh0_XS&;RCP5xUV+#ulEufq!vYfDUPJVG}Kz^}jUP)?tYLTId bvGMfN%b7Hp4Gq<&E3Rac*v`L#>Em$#Lm8y< delta 235 zcmZp8z}xVEcY>6V@)`yP26G@b17dat29}i*b&Qyl*EA-yCNOSIU}6nqYAM{F9>^5S z$kbA>{a6swI%cMp{OM(3Ob3`+@}_?XWoq8OI~**XyIm@hNsNWFC7)f~+?=tUf4Y4* zlh}6uSf))*Y#=LGc1~wsz!b>FKAAm=U4DAp0w%G|iUO`I+jlNuN@HTO)Sf4d4Hc#MEH=>E%qC U%m#+)(-l`TNo?m|!SwMs0M;!;G5`Po diff --git a/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java b/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java index 58715e4..940f4e4 100644 --- a/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java +++ b/src/main/java/a8k/extapi_controler/pagecontrol/ExtApiTabConfig.java @@ -15,7 +15,7 @@ public enum ExtApiTabConfig { Hbot2DCodeScanPosCalibration("校准.耗材扫描校准", true), - TubeScanPosCalibration("校准.试管扫描校准", true), + TubeFeedingModulePosCalibration("校准.试管入料校准", true), TubePreProcesPosCalibration("校准.试管预处理校准", true), diff --git a/src/main/java/a8k/service/app/devicedriver/calibration/TubeFeedingModulePosCalibration.java b/src/main/java/a8k/service/app/devicedriver/calibration/TubeFeedingModulePosCalibration.java new file mode 100644 index 0000000..273cae5 --- /dev/null +++ b/src/main/java/a8k/service/app/devicedriver/calibration/TubeFeedingModulePosCalibration.java @@ -0,0 +1,134 @@ +package a8k.service.app.devicedriver.calibration; + +import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; +import a8k.extapi_controler.utils.ExtApiFn; +import a8k.extapi_controler.utils.ExtApiTab; +import a8k.hardware.A8kCanBusService; +import a8k.service.app.devicedriver.basectrl.MiniServoControler; +import a8k.service.app.devicedriver.basectrl.StepMotorControler; +import a8k.service.app.devicedriver.basectrl.TubeTransportControler; +import a8k.service.app.devicedriver.basectrl.type.MiniServoMId; +import a8k.service.app.devicedriver.basectrl.type.StepMotorMId; +import a8k.service.app.devicedriver.ctrl.TubeTubeFeedingModule; +import a8k.service.app.devicedriver.pos.TubeFeedingModulePosMgr; +import a8k.type.TubeHolderScanResult; +import a8k.type.exception.AppException; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Component; + + +@ExtApiTab(cfg = ExtApiTabConfig.TubeFeedingModulePosCalibration) +@Component +public class TubeFeedingModulePosCalibration { + + @Resource + TubeFeedingModulePosMgr tubeScanPosMgr; + + @Resource + A8kCanBusService canBus; + @Resource + TubeTubeFeedingModule tubeTubeFeedingModule; + @Resource + TubeTransportControler tubeTransportControler; + @Resource + MiniServoControler miniServoControler; + @Resource + StepMotorControler stepMotorControler; + + private Integer readFeedingModXMPos() throws AppException { + stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 1); + Integer pos = stepMotorControler.stepMotorReadPosByMoveToZeroBlock(StepMotorMId.FeedingModXM, 15000); + return pos; + } + + @ExtApiFn(name = "获取所有坐标", group = "基础", order = 1) + public TubeFeedingModulePosMgr getPoss() throws AppException { + return tubeScanPosMgr; + } + + // 测试工具 + @ExtApiFn(name = "归零", group = "测试工具", order = 11) + public void deviceReset() throws AppException { + enableModule(); + stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.FeedingModXM, 15000); + + } + + @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 12) + public void enableModule() throws AppException { + stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModInfeedM, 1); + stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModOutfeedM, 1); + stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 1); + miniServoControler.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); + } + + @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13) + public void disableModule() throws AppException { + stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModInfeedM, 0); + stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModOutfeedM, 0); + stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 0); + miniServoControler.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 0); + } + + + @ExtApiFn(name = "<平移电机>设置当前位置为<入料位置>", group = "标定", order = 21) + public void setTubeHolderEnterXPos() throws AppException { + tubeScanPosMgr.setTubeHolderEnterXPos(readFeedingModXMPos()); + } + + @ExtApiFn(name = "<平移电机>设置当前位置为<出料位置>", group = "标定", order = 22) + public void setTubeHolderExitXPos() throws AppException { + tubeScanPosMgr.setTubeHolderExitXPos(readFeedingModXMPos()); + } + + @ExtApiFn(name = "<平移电机>设置当前位置为<试管架扫描位置>", group = "标定", order = 23) + public void setTubeHolderScanXPos() throws AppException { + tubeScanPosMgr.setTubeHolderScanXPos(readFeedingModXMPos()); + } + + @ExtApiFn(name = "<平移电机>设置当前位置为<0号试管扫描位置>", group = "标定", order = 24) + public void setTube0ScanXPos() throws AppException { + tubeScanPosMgr.setTube0ScanXPos(readFeedingModXMPos()); + } + + @ExtApiFn(name = "<平移电机>设置当前位置为<0试管高度判断位置>", group = "标定", order = 25) + public void setTube0AltitJudgXPos() throws AppException { + tubeScanPosMgr.setTube0AltitJudgXPos(readFeedingModXMPos()); + } + + @ExtApiFn(name = "<平移电机>设置当前位置为<0试管存在判断位置>", group = "标定", order = 26) + public void setTube0ExistJudgXPos() throws AppException { + tubeScanPosMgr.setTube0ExistJudgXPos(readFeedingModXMPos()); + } + + @ExtApiFn(name = "<夹紧舵机>设置当前位置为夹紧位置", group = "标定", order = 26) + public void setTubeScanClampPos() throws AppException { + miniServoControler.miniServoSetCurPos(MiniServoMId.ShakeModTubeScanerClampingSV, tubeScanPosMgr.ScanerClampingSVClampingPos); + } + + + @ExtApiFn(name = "夹紧试管架", group = "校验", order = 31) + public void scanClampModClamp() throws AppException { + tubeTransportControler.scanClampModClamp(); + } + + @ExtApiFn(name = "释放试管架", group = "校验", order = 32) + public void scanClampModRelease() throws AppException { + tubeTransportControler.scanClampModRelease(); + } + + @ExtApiFn(name = "扫描试管架", group = "校验", order = 33) + public TubeHolderScanResult scanAll() throws AppException { + return tubeTubeFeedingModule.scanTubeHodler(); + } + + @ExtApiFn(name = "移动试管X到处理位", group = "校验", order = 33) + public void moveTubeXToPreProcessPos(Integer xtube) throws AppException { + tubeTubeFeedingModule.moveTubeToPreProcessPos(xtube); + } + + @ExtApiFn(name = "设置<试管扫描伺服力矩(100-1000)>", group = "其他", order = 41) + public void setTubeScanServoTorque(Integer torque) throws AppException { + tubeScanPosMgr.setTubeScanServoTorque(torque); + } +} diff --git a/src/main/java/a8k/service/app/devicedriver/calibration/TubePreProcesPosCalibration.java b/src/main/java/a8k/service/app/devicedriver/calibration/TubePreProcesPosCalibration.java index 5b28ed1..2e73805 100644 --- a/src/main/java/a8k/service/app/devicedriver/calibration/TubePreProcesPosCalibration.java +++ b/src/main/java/a8k/service/app/devicedriver/calibration/TubePreProcesPosCalibration.java @@ -78,10 +78,14 @@ public class TubePreProcesPosCalibration { //XProcessPos: 标定,验证 //ShakeClamp : 标定,校验 + // + // 夹爪标定,校准,校验 + // + @ExtApiFn(name = "设置当前位置为<参考点>", group = "夹爪", order = 21) public Integer gripperSVSetCurrentPosAsRef() throws AppException { - miniServoControler.miniServoSetCurPos(MiniServoMId.ShakeModGripperSV, 100); - return 100; + miniServoControler.miniServoSetCurPos(MiniServoMId.ShakeModGripperSV, 1800); + return 1800; } @ExtApiFn(name = "<标定>当前点为<抓手张开位置>", group = "夹爪", order = 22) diff --git a/src/main/java/a8k/service/app/devicedriver/calibration/TubeScanPosCalibration.java b/src/main/java/a8k/service/app/devicedriver/calibration/TubeScanPosCalibration.java deleted file mode 100644 index 15b2e99..0000000 --- a/src/main/java/a8k/service/app/devicedriver/calibration/TubeScanPosCalibration.java +++ /dev/null @@ -1,129 +0,0 @@ -package a8k.service.app.devicedriver.calibration; - -import a8k.extapi_controler.pagecontrol.ExtApiTabConfig; -import a8k.extapi_controler.utils.ExtApiFn; -import a8k.extapi_controler.utils.ExtApiTab; -import a8k.hardware.A8kCanBusService; -import a8k.service.app.devicedriver.basectrl.MiniServoControler; -import a8k.service.app.devicedriver.basectrl.StepMotorControler; -import a8k.service.app.devicedriver.basectrl.TubeTransportControler; -import a8k.service.app.devicedriver.basectrl.type.MiniServoMId; -import a8k.service.app.devicedriver.basectrl.type.StepMotorMId; -import a8k.service.app.devicedriver.ctrl.TubeTubeFeedingModule; -import a8k.service.app.devicedriver.pos.TubeFeedingModulePosMgr; -import a8k.type.TubeHolderScanResult; -import a8k.type.exception.AppException; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Component; - - -@ExtApiTab(cfg = ExtApiTabConfig.TubeScanPosCalibration) -@Component -public class TubeScanPosCalibration { - - @Resource - TubeFeedingModulePosMgr tubeScanPosMgr; - - @Resource - A8kCanBusService canBus; - @Resource - TubeTubeFeedingModule tubeTubeFeedingModule; - @Resource - TubeTransportControler tubeTransportControler; - @Resource - MiniServoControler miniServoControler; - @Resource - StepMotorControler stepMotorControler; - - private Integer readFeedingModXMPos() throws AppException { - stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 1); - Integer pos = stepMotorControler.stepMotorReadPosByMoveToZeroBlock(StepMotorMId.FeedingModXM, 15000); - return pos; - } - - @ExtApiFn(name = "获取所有坐标", group = "基础", order = 1) - public TubeFeedingModulePosMgr getPoss() throws AppException { - return tubeScanPosMgr; - } - - // 测试工具 - @ExtApiFn(name = "归零", group = "测试工具", order = 11) - public void deviceReset() throws AppException { - enableModule(); - stepMotorControler.stepMotorEasyMoveToZeroBlock(StepMotorMId.FeedingModXM, 15000); - - } - - @ExtApiFn(name = "使能相关模块", group = "测试工具", order = 12) - public void enableModule() throws AppException { - stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModInfeedM, 1); - stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModOutfeedM, 1); - stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 1); - miniServoControler.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 1); - } - - @ExtApiFn(name = "失能相关模块", group = "测试工具", order = 13) - public void disableModule() throws AppException { - stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModInfeedM, 0); - stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModOutfeedM, 0); - stepMotorControler.stepMotorEnable(StepMotorMId.FeedingModXM, 0); - miniServoControler.miniServoEnable(MiniServoMId.ShakeModTubeScanerClampingSV, 0); - } - - - @ExtApiFn(name = "<平移电机>设置当前位置为<入料位置>", group = "标定", order = 21) - public void setTubeHolderEnterXPos() throws AppException { - tubeScanPosMgr.setTubeHolderEnterXPos(readFeedingModXMPos()); - } - - @ExtApiFn(name = "<平移电机>设置当前位置为<出料位置>", group = "标定", order = 22) - public void setTubeHolderExitXPos() throws AppException { - tubeScanPosMgr.setTubeHolderExitXPos(readFeedingModXMPos()); - } - - @ExtApiFn(name = "<平移电机>设置当前位置为<试管架扫描位置>", group = "标定", order = 23) - public void setTubeHolderScanXPos() throws AppException { - tubeScanPosMgr.setTubeHolderScanXPos(readFeedingModXMPos()); - } - - @ExtApiFn(name = "<平移电机>设置当前位置为<0号试管扫描位置>", group = "标定", order = 24) - public void setTube0ScanXPos() throws AppException { - tubeScanPosMgr.setTube0ScanXPos(readFeedingModXMPos()); - } - - @ExtApiFn(name = "<平移电机>设置当前位置为<0试管高度判断位置>", group = "标定", order = 25) - public void setTube0AltitJudgXPos() throws AppException { - tubeScanPosMgr.setTube0AltitJudgXPos(readFeedingModXMPos()); - } - - @ExtApiFn(name = "<平移电机>设置当前位置为<0试管存在判断位置>", group = "标定", order = 26) - public void setTube0ExistJudgXPos() throws AppException { - tubeScanPosMgr.setTube0ExistJudgXPos(readFeedingModXMPos()); - } - - @ExtApiFn(name = "<夹紧舵机>设置当前位置为夹紧位置", group = "标定", order = 26) - public void setTubeScanClampPos() throws AppException { - miniServoControler.miniServoSetCurPos(MiniServoMId.ShakeModTubeScanerClampingSV, tubeScanPosMgr.ScanerClampingSVClampingPos); - } - - - @ExtApiFn(name = "夹紧试管架", group = "校验", order = 31) - public void scanClampModClamp() throws AppException { - tubeTransportControler.scanClampModClamp(); - } - - @ExtApiFn(name = "释放试管架", group = "校验", order = 32) - public void scanClampModRelease() throws AppException { - tubeTransportControler.scanClampModRelease(); - } - - @ExtApiFn(name = "扫描试管架", group = "校验", order = 33) - public TubeHolderScanResult scanAll() throws AppException { - return tubeTubeFeedingModule.scanTubeHodler(); - } - - @ExtApiFn(name = "设置<试管扫描伺服力矩(100-1000)>", group = "其他", order = 41) - public void setTubeScanServoTorque(Integer torque) throws AppException { - tubeScanPosMgr.setTubeScanServoTorque(torque); - } -} diff --git a/src/main/java/a8k/service/app/devicedriver/ctrl/TubeTubeFeedingModule.java b/src/main/java/a8k/service/app/devicedriver/ctrl/TubeTubeFeedingModule.java index 23d6b7e..d223e87 100644 --- a/src/main/java/a8k/service/app/devicedriver/ctrl/TubeTubeFeedingModule.java +++ b/src/main/java/a8k/service/app/devicedriver/ctrl/TubeTubeFeedingModule.java @@ -45,7 +45,7 @@ public class TubeTubeFeedingModule { } @Resource - AppEventBusService ebus; + AppEventBusService ebus; @Resource A8kCanBusService canBus; @Resource @@ -53,13 +53,13 @@ public class TubeTubeFeedingModule { @Resource TubeHolderParamMgr tubeHolderParamMgr; @Resource - CodeScaner codeScaner; + CodeScaner codeScaner; @Resource - TubeTransportControler tubeTransportControler; + TubeTransportControler tubeTransportControler; @Resource - MiniServoControler miniServoControler; + MiniServoControler miniServoControler; @Resource - StepMotorControler stepMotorControler; + StepMotorControler stepMotorControler; private Boolean isTubeExist() throws AppException { @@ -107,6 +107,7 @@ public class TubeTubeFeedingModule { /*========================================================================================= * 片段 *========================================================================================*/ + /** * 移动试管架到入口位置 */ @@ -122,6 +123,11 @@ public class TubeTubeFeedingModule { tubeTransportControler.moveTubeRackTo(stp.getTubeHolderExitXPos() - 10, TargetPosMeasureDirection.NOTCARE, false); } + public void moveTubeToPreProcessPos(Integer tubeIndex) throws AppException { + tubeTransportControler.moveTubeRackTo(stp.getTube0PreProcessXPos() + tubeIndex * tubeHolderParamMgr.getTubeSpacing(), TargetPosMeasureDirection.POSITIVE, false); + } + + /** * 移动<试管架>到出口位置 */ @@ -297,4 +303,5 @@ public class TubeTubeFeedingModule { return result; } + } 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 5b5feea..72fed83 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/TubeFeedingModulePosMgr.java @@ -24,14 +24,16 @@ public class TubeFeedingModulePosMgr { Tube0ScanXPos, // 0号试管扫描位置 Tube0AltitJudgXPos, // 0试管高度判断位置 Tube0ExistJudgXPos, // 0试管存在判断位置 + Tube0PreProcessXPos, // 0试管预处理位置 TubeScanServoTorque,// 试管扫描伺服力矩 + } @Resource LowerDeviceParameterDBService lowerDeviceParameterDBService; PosParameterReader posReader = null; - Integer nowParaVersion = 0; + Integer nowParaVersion = 1; // // MotorTubeRackMoveCtrlService @@ -42,26 +44,26 @@ public class TubeFeedingModulePosMgr { posReader = lowerDeviceParameterDBService.getReader(this.getClass()); Integer paraVersion = posReader.getVersion(); if (!nowParaVersion.equals(paraVersion)) { - paramReset(); + logger.info("init param"); + posReader.setVersion(nowParaVersion); + posReader.updatePos(POS.TubeHolderEnterXPos, -46); + posReader.updatePos(POS.TubeHolderExitXPos, 3975); + posReader.updatePos(POS.TubeHolderScanXPos, 2202); + posReader.updatePos(POS.Tube0ScanXPos, 505); + posReader.updatePos(POS.Tube0AltitJudgXPos, 505); + posReader.updatePos(POS.Tube0ExistJudgXPos, 300); + posReader.updatePos(POS.Tube0PreProcessXPos, 1225); + posReader.updatePos(POS.TubeScanServoTorque, 500); } - } - void paramReset() { - logger.info("init param"); - posReader.setVersion(nowParaVersion); - posReader.updatePos(POS.TubeHolderEnterXPos, -46); - posReader.updatePos(POS.TubeHolderExitXPos, 3975); - posReader.updatePos(POS.TubeHolderScanXPos, 2202); - posReader.updatePos(POS.Tube0ScanXPos, 505); - posReader.updatePos(POS.Tube0AltitJudgXPos, 505); - posReader.updatePos(POS.Tube0ExistJudgXPos, 300); - posReader.updatePos(POS.TubeScanServoTorque, 500); } public Integer getParam(POS pos) { return posReader.getPos(pos, Integer.class); } + public Integer getTube0PreProcessXPos() {return getParam(POS.Tube0PreProcessXPos);} + public Integer getTubeHolderEnterXPos() { return getParam(POS.TubeHolderEnterXPos); } @@ -90,6 +92,8 @@ public class TubeFeedingModulePosMgr { return getParam(POS.TubeScanServoTorque); } + public void setTube0PreProcessXPos(Integer value) {posReader.updatePos(POS.Tube0PreProcessXPos, value);} + public void setTubeHolderEnterXPos(Integer value) { posReader.updatePos(POS.TubeHolderEnterXPos, value); } @@ -118,4 +122,5 @@ public class TubeFeedingModulePosMgr { public void setTubeScanServoTorque(Integer value) { posReader.updatePos(POS.TubeScanServoTorque, value); } + } 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 1de2810..36ecdfd 100644 --- a/src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java +++ b/src/main/java/a8k/service/app/devicedriver/pos/TubePreProcesPosMgr.java @@ -41,7 +41,7 @@ public class TubePreProcesPosMgr { LowerDeviceParameterDBService lowerDeviceParameterDBService; PosParameterReader posReader = null; - Integer nowParaVersion = 0; + Integer nowParaVersion = 1; @PostConstruct void initialize() { @@ -52,11 +52,10 @@ public class TubePreProcesPosMgr { posReader.setVersion(nowParaVersion); // 677,450,310,355 - // 1800, - - posReader.updatePos(POS.GripperServoOpenPos, 450); - posReader.updatePos(POS.GripperServoClosePos, 310); - posReader.updatePos(POS.GripperServoTakeCapPos, 355); + // 1800,1573,1433,1388 + posReader.updatePos(POS.GripperServoOpenPos, 1573); + posReader.updatePos(POS.GripperServoClosePos, 1433); + posReader.updatePos(POS.GripperServoTakeCapPos, 1388); posReader.updatePos(POS.YServoTakeTubePos, 3080); posReader.updatePos(POS.YServoShakePos, 2130); posReader.updatePos(POS.YServoZeroYPos, 300); diff --git a/src/main/java/a8k/service/db/LowerDeviceParameterDBService.java b/src/main/java/a8k/service/db/LowerDeviceParameterDBService.java index 3318ee2..e32a3fa 100644 --- a/src/main/java/a8k/service/db/LowerDeviceParameterDBService.java +++ b/src/main/java/a8k/service/db/LowerDeviceParameterDBService.java @@ -78,12 +78,18 @@ public class LowerDeviceParameterDBService { } } + public void tryInitParam(String service, String key, Object pos) { + if (getParam(service, key, Object.class) == null) { + updateParam(service, key, pos); + } + } + public Integer getParamVersion(String service) { return getParam(service, "VERSION", Integer.class); } public void setParamVersion(String service, Integer version) { - updateParam(service, "VERSION", 0); + updateParam(service, "VERSION", version); } public PosParameterReader getReader(Class type) { diff --git a/src/main/java/a8k/service/db/utils/PosParameterReader.java b/src/main/java/a8k/service/db/utils/PosParameterReader.java index f6316f4..a256417 100644 --- a/src/main/java/a8k/service/db/utils/PosParameterReader.java +++ b/src/main/java/a8k/service/db/utils/PosParameterReader.java @@ -25,7 +25,10 @@ public class PosParameterReader { public void updatePos(Enum key, Object pos) { lowerDeviceParameterDBService.updateParam(service.getSimpleName(), key.name(), pos); + } + public void tryInitParam(Enum key, Object parm) { + lowerDeviceParameterDBService.tryInitParam(service.getSimpleName(), key.name(), parm); } public Integer getVersion() { diff --git a/src/main/java/a8k/utils/ZSqliteJdbcHelper.java b/src/main/java/a8k/utils/ZSqliteJdbcHelper.java index 355f148..8102246 100644 --- a/src/main/java/a8k/utils/ZSqliteJdbcHelper.java +++ b/src/main/java/a8k/utils/ZSqliteJdbcHelper.java @@ -37,8 +37,8 @@ public class ZSqliteJdbcHelper { } static public void createTable(JdbcTemplate jdbcTemplate, String tableName, Class tClass) { - StringBuilder sql = new StringBuilder("create table " + tableName + " ("); - Boolean hasId = false; + StringBuilder sql = new StringBuilder("create table " + tableName + " ("); + Boolean hasId = false; for (java.lang.reflect.Field field : tClass.getDeclaredFields()) { if (field.getName().equals("id")) { hasId = true; @@ -62,7 +62,7 @@ public class ZSqliteJdbcHelper { sql.append("text,"); } } - if(!hasId) { + if (!hasId) { throw new RuntimeException("id field not found in class " + tClass.getName()); } @@ -186,11 +186,12 @@ public class ZSqliteJdbcHelper { sql.append(field.getName()).append(" = ?,"); } sql.deleteCharAt(sql.length() - 1).append(" where id = ?"); - System.out.println(sql.toString()); - List args = buildArgs(tClass, obj); args.add(id); + // System.out.println(sql); + // System.out.println(args); + jdbcTemplate.update(sql.toString(), args.toArray()); } } \ No newline at end of file