Browse Source

完取TIP动作,完善配置同步

master
zhaohe 3 months ago
parent
commit
a7329498de
  1. 4
      sh/sync_data_to_board.bat
  2. 10
      src/main/java/a8k/app/config/A8kSubModuleInitRegConfig.java
  3. 2
      src/main/java/a8k/app/constant/AppConstant.java
  4. 2
      src/main/java/a8k/app/dao/SubModuleRegInitialValueDao.java
  5. 14
      src/main/java/a8k/app/service/data/SubModuleRegInitialValueMgrService.java
  6. 17
      src/main/java/a8k/app/service/lowerctrl/HbotMoveExCtrlService.java

4
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/
ssh root@192.168.8.10 'rm -rf /app/appresource'
scp -r .\appresource\ root@192.168.8.10://app/

10
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() {
//
// 标记数据库关心的寄存器被标记的寄存器会在设备初始化时侯初始化其数值

2
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;

2
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

14
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);
}
}

17
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();
}

Loading…
Cancel
Save