From a7329498dee85224977cf31a8ce7af078df41f1c Mon Sep 17 00:00:00 2001 From: zhaohe Date: Wed, 30 Apr 2025 16:54:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=8F=96TIP=E5=8A=A8=E4=BD=9C?= =?UTF-8?q?=EF=BC=8C=E5=AE=8C=E5=96=84=E9=85=8D=E7=BD=AE=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sh/sync_data_to_board.bat | 4 ++-- .../java/a8k/app/config/A8kSubModuleInitRegConfig.java | 10 ++++++++++ src/main/java/a8k/app/constant/AppConstant.java | 2 +- .../java/a8k/app/dao/SubModuleRegInitialValueDao.java | 2 ++ .../data/SubModuleRegInitialValueMgrService.java | 14 ++++++++++++-- .../app/service/lowerctrl/HbotMoveExCtrlService.java | 17 +++++++++++++---- 6 files changed, 40 insertions(+), 9 deletions(-) diff --git a/sh/sync_data_to_board.bat b/sh/sync_data_to_board.bat index be6afa0..fa4a776 100644 --- a/sh/sync_data_to_board.bat +++ b/sh/sync_data_to_board.bat @@ -1,2 +1,2 @@ - scp -r .\appresource\static/ root@192.168.8.10://app/appresource/static/app - scp .\appresource\db\app.db root@192.168.8.10://app/appresource/db/ \ No newline at end of file + ssh root@192.168.8.10 'rm -rf /app/appresource' + scp -r .\appresource\ root@192.168.8.10://app/ diff --git a/src/main/java/a8k/app/config/A8kSubModuleInitRegConfig.java b/src/main/java/a8k/app/config/A8kSubModuleInitRegConfig.java index 0fb4fe0..fec0704 100644 --- a/src/main/java/a8k/app/config/A8kSubModuleInitRegConfig.java +++ b/src/main/java/a8k/app/config/A8kSubModuleInitRegConfig.java @@ -32,11 +32,21 @@ public class A8kSubModuleInitRegConfig { return regIndexes; } + public Boolean isNeeded(ModuleType moduleType, RegIndex regIndex) { + for (ModuleRegMarker marker : regMarkers) { + if (marker.moduleType == moduleType && marker.regIndex == regIndex) { + return true; + } + } + return false; + } + @PostConstruct void init() { regMarkers(); } + private void regMarkers() { // // 标记数据库关心的寄存器,被标记的寄存器,会在设备初始化时侯,初始化其数值 diff --git a/src/main/java/a8k/app/constant/AppConstant.java b/src/main/java/a8k/app/constant/AppConstant.java index e8471f1..0762a18 100644 --- a/src/main/java/a8k/app/constant/AppConstant.java +++ b/src/main/java/a8k/app/constant/AppConstant.java @@ -6,7 +6,7 @@ public class AppConstant { public static final int CONSUMABLE_COL_NUM = 5; public static final int CONSUMABLE_ROW_NUM = 5; public static final int TIP_NUM = 120; - public static final String APP_VERSION = "2.0"; + public static final String APP_VERSION = "2.1"; public static final int CONSUMABLE_CHANNEL_NUM = 6; diff --git a/src/main/java/a8k/app/dao/SubModuleRegInitialValueDao.java b/src/main/java/a8k/app/dao/SubModuleRegInitialValueDao.java index e70013b..2e6f3da 100644 --- a/src/main/java/a8k/app/dao/SubModuleRegInitialValueDao.java +++ b/src/main/java/a8k/app/dao/SubModuleRegInitialValueDao.java @@ -10,6 +10,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Component; +import java.util.List; + @Component @Slf4j @RequiredArgsConstructor diff --git a/src/main/java/a8k/app/service/data/SubModuleRegInitialValueMgrService.java b/src/main/java/a8k/app/service/data/SubModuleRegInitialValueMgrService.java index 6d27681..2f12c28 100644 --- a/src/main/java/a8k/app/service/data/SubModuleRegInitialValueMgrService.java +++ b/src/main/java/a8k/app/service/data/SubModuleRegInitialValueMgrService.java @@ -45,11 +45,22 @@ public class SubModuleRegInitialValueMgrService { regcache.add(new SubModuleRegInitialValue(mid, regIndex, val)); } } - for (SubModuleRegInitialValue reg : regcache) { log.info(String.format("storage %s(%d) %-40s: %d", reg.mid, reg.mid.index, reg.regIndex, reg.regInitVal)); subModuleRegInitialValueDao.update(reg.mid, reg.regIndex, reg.regInitVal); } + + // + // 删除掉不需要的寄存器 + // + var allConfigs = subModuleRegInitialValueDao.getAll(); + for (SubModuleRegInitialValue reg : allConfigs) { + //TODO:模块类型存储到数据库中,而不是从微控制器读取 + ModuleType moduleType = canBus.moduleReadType(reg.mid); + if (!a8kSubModuleInitRegConfig.isNeeded(moduleType, reg.regIndex)) { + subModuleRegInitialValueDao.delete(reg.id); + } + } } public void export() { @@ -72,5 +83,4 @@ public class SubModuleRegInitialValueMgrService { return subModuleRegInitialValueDao.findByIDAndRegIndex(mid, regIndex); } - } diff --git a/src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java b/src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java index 02a428d..3765a4b 100644 --- a/src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java +++ b/src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java @@ -1,5 +1,6 @@ package a8k.app.service.lowerctrl; +import a8k.OS; import a8k.app.constant.GearBacklashConstant; import a8k.app.service.param.hbotpos.Hbot2DCodeScanParamMgr; import a8k.app.type.a8k.ConsumableGroup; @@ -56,12 +57,20 @@ public class HbotMoveExCtrlService { Pos3d tipPos = hbotConsumableExParamMgr.getTipPos(tipGroupPos, index); hbotMoveCtrlService.hbotMoveTo(tipPos); - if (!pipetteCtrlDriver.isHasTip()) { - //TODO:单片机支持移动以mm为单位的距离的方法 - pipetteCtrlDriver.zMotorMoveByBlock(-100); - pipetteCtrlDriver.pipetteInitDeviceBlock(); + + //TODO:单片机支持移动以mm为单位的距离的方法 + pipetteCtrlDriver.zMotorMoveByBlock(-100); + for (int i = 0; i < 3; i++) { + //尝试读三次tip的状态,确保取到tip + if (!pipetteCtrlDriver.isHasTip()) { + log.warn("取tip失败,尝试强制退掉TIP头"); + pipetteCtrlDriver.pipetteInitDeviceBlock(); + break; + } + OS.hsleep(50); } + pipetteCtrlDriver.zMotorMoveToZeroPointQuickBlock(); }