zhaohe 1 year ago
parent
commit
9876dd6fa2
  1. 2
      src/main/java/a8k/controler/engineer/EngineerPageControler.java
  2. 1
      src/main/java/a8k/controler/engineer/utils/EnginnerPageStatu.java
  3. 3
      src/main/java/a8k/db/AppSetting.java
  4. 2
      src/main/java/a8k/service/appsettings/AppSettingsMgr.java
  5. 5
      src/main/java/a8k/service/appsettings/settingenum/AutoLogoutTime.java
  6. 30
      src/main/java/a8k/service/devicectrl/ctrl/HbotControlService.java
  7. 6
      src/main/java/com/iflytop/a800/device/IdChipReader.java
  8. 5
      src/main/resources/static/test/css/app.8750cb6d.css
  9. 2
      src/main/resources/static/test/index.html
  10. 2
      src/main/resources/static/test/js/app.2b116387.js
  11. 1
      src/main/resources/static/test/js/app.2b116387.js.map

2
src/main/java/a8k/controler/engineer/EngineerPageControler.java

@ -151,6 +151,8 @@ public class EngineerPageControler {
var status = new HashMap<String,Object>();
status.put("name", statusAnnotation.name());
status.put("group", statusAnnotation.group());
status.put("order", statusAnnotation.order());
var value = method.invoke(service);
status.put("value", value);
statusList.add(status);

1
src/main/java/a8k/controler/engineer/utils/EnginnerPageStatu.java

@ -9,4 +9,5 @@ import java.lang.annotation.Target;
public @interface EnginnerPageStatu {
String name();
String group() default "";
int order() default 0;
}

3
src/main/java/a8k/db/AppSetting.java

@ -6,6 +6,7 @@ import a8k.service.appsettings.base.AppSettingType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iflytop.uf.UfActiveRecord;
import com.iflytop.uf.UfActiveRecordField;
import com.iflytop.uf.util.UfJsonHelper;
import java.util.Arrays;
@ -174,7 +175,7 @@ public class AppSetting extends UfActiveRecord {
option.type = AppSettingType.ENUM.name();
option.tab = currentBuildGroup.name();
option.name = name.name();
option.valueEnumRange = Arrays.toString(valueEnumRange);
option.valueEnumRange = UfJsonHelper.objectToJson(valueEnumRange);
option.value = value;
option.priority = buildPriority++;
option.save();

2
src/main/java/a8k/service/appsettings/AppSettingsMgr.java

@ -34,7 +34,7 @@ public class AppSettingsMgr {
static final int setOptionVal = 5;
}
static Integer settingPageVersion = 2;
static Integer settingPageVersion = 3;
@PostConstruct

5
src/main/java/a8k/service/appsettings/settingenum/AutoLogoutTime.java

@ -2,10 +2,11 @@ package a8k.service.appsettings.settingenum;
public enum AutoLogoutTime {
T00_00,
T00_10,
T00_30,
T01_00,
T02_00,
T03_00,
T04_00,
T03_00
;

30
src/main/java/a8k/service/devicectrl/ctrl/HbotControlService.java

@ -19,7 +19,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
/**
* Hbot控制服务
*/
@ -29,7 +28,6 @@ import org.springframework.stereotype.Component;
public class HbotControlService {
static Logger logger = LoggerFactory.getLogger(HbotControlService.class);
@Resource
A8kCanBusService canBus;
@Resource
@ -41,29 +39,30 @@ public class HbotControlService {
@Resource
DebugParam dp;
//
public Integer getGripperZeroYPos() {
// 之所以这样写是因为是为了放置两个类之间的循环依赖
// assert appCxt != null;
// TODO
// return appCxt.getBean(SamplesPreProcessModuleCtrlService.class).getGripperZeroYPos();
// return
// appCxt.getBean(SamplesPreProcessModuleCtrlService.class).getGripperZeroYPos();
return 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// 基础控制
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
private void checkPublicArea() throws HardwareException {
if (canBus.miniServoReadPos(MId.ShakeModGripperYSV) > getGripperZeroYPos() + 20) {
logger.error("ShakeModGripperYSV Pos:{} > {}", canBus.miniServoReadPos(MId.ShakeModGripperYSV), getGripperZeroYPos() + 20);
logger.error("ShakeModGripperYSV Pos:{} > {}", canBus.miniServoReadPos(MId.ShakeModGripperYSV),
getGripperZeroYPos() + 20);
throw new HardwareException(A8kEcode.ShakeModGripperYSVInXYPublicArea);
}
}
/**
* Hboot 移动
*
* @param targetPos 目标位置
* @throws HardwareException e
* @throws InterruptedException e
@ -88,7 +87,6 @@ public class HbotControlService {
canBus.stepMotorEasyMoveToZeroPointQuickBlock(MId.PipetteModZM, timep.getActionOvertime());
}
if (!getZPPS()) {
throw new HardwareException(A8kEcode.ZMNotAtZPosWhenHbotTryMove);
}
@ -116,7 +114,6 @@ public class HbotControlService {
canBus.hbotEnable(MId.HbotM, hbotEnable ? 1 : 0);
}
public void zMoveTo(Integer z) throws HardwareException, InterruptedException {
if (z == 0) {
canBus.stepMotorEasyMoveToZeroPointQuickBlock(MId.PipetteModZM, timep.getActionOvertime());
@ -125,12 +122,10 @@ public class HbotControlService {
}
}
private void hbotCheckAndMoveTo(Pos2d targetPos) throws HardwareException, InterruptedException {
hbotCheckAndMoveTo(new Pos3d(targetPos.x, targetPos.y, 0));
}
private void modGroupMoveToZero() throws HardwareException, InterruptedException {
if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) {
throw new HardwareException(A8kEcode.PlateBoxNotCover);
@ -190,8 +185,8 @@ public class HbotControlService {
zCompensate = 2;
}
canBus.stepMotorEasyMoveToBlock(MId.PipetteModZM, tipPos.getPickUpZPos(groupId) + zCompensate, timep.getActionOvertime());
canBus.stepMotorEasyMoveToBlock(MId.PipetteModZM, tipPos.getPickUpZPos(groupId) + zCompensate,
timep.getActionOvertime());
canBus.stepMotorEasyMoveToZeroPointQuickBlock(MId.PipetteModZM, timep.getActionOvertime());
Boolean isGetTip = canBus.moduleGetReg(MId.PipetteMod, RegIndex.kreg_pipette_tip_state) == 1;
@ -207,7 +202,8 @@ public class HbotControlService {
}
@EnginnerPageAction(name = "HBot移动到小瓶缓冲液X孔", group = "单步测试")
public void hbotMoveToSmallBottleGroup(ConsumableGroup group, Integer Xhole) throws HardwareException, InterruptedException {
public void hbotMoveToSmallBottleGroup(ConsumableGroup group, Integer Xhole)
throws HardwareException, InterruptedException {
BottleGroupsPosInfo posInfo = pp.getBottleBufferPosInfo();
if (Xhole < 0 || Xhole > BottlesPosInfo.cgetMAX()) {
throw new HardwareException(A8kEcode.ParamOutOfRange);
@ -216,9 +212,9 @@ public class HbotControlService {
hbotCheckAndMoveTo(pos);
}
@EnginnerPageAction(name = "HBot移动到探测物质X孔", group = "单步测试")
public void hbotMoveToDetectMaterialPos(ConsumableGroup group, Integer Xhole) throws HardwareException, InterruptedException {
public void hbotMoveToDetectMaterialPos(ConsumableGroup group, Integer Xhole)
throws HardwareException, InterruptedException {
BottleGroupsPosInfo posInfo = pp.getBottleBufferPosInfo();
if (Xhole < 0 || Xhole > BottlesPosInfo.cgetMAX()) {
throw new HardwareException(A8kEcode.ParamOutOfRange);
@ -312,7 +308,8 @@ public class HbotControlService {
// 扫描大缓冲液二维码
@EnginnerPageAction(name = "扫描大缓冲液二维码", group = "扫码")
public AppRet<String> scanBigBottleBufferCode(ConsumableGroup group) throws HardwareException, InterruptedException {
public AppRet<String> scanBigBottleBufferCode(ConsumableGroup group)
throws HardwareException, InterruptedException {
LargeBottleBufferPos posInfo = pp.getLargeBottleBufferPosInfo();
return hBotMoveToAndScan(posInfo.cgetScanPos(group.off));
}
@ -321,7 +318,6 @@ public class HbotControlService {
// hbot取样品
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
public Boolean getZPPS() throws HardwareException {
return canBus.stepMotorReadIoState(MId.PipetteModZM, 0);
}

6
src/main/java/com/iflytop/a800/device/IdChipReader.java

@ -21,9 +21,9 @@ public class IdChipReader {
// 事件处理
public void handleZCanCmderWebSocketEvent(Object ... args) {
Integer eventId = (Integer)args[0];
if ( 0x71C8 == eventId ) { // ID 卡插入
UfMdbNotification.action("IdChipInsert");
}
// if ( 0x71C8 == eventId ) { // ID 卡插入
// UfMdbNotification.action("IdChipInsert");
// }
// if ( 0x71C9 == eventId ) { // ID 拔出
// UfMdbNotification.action("IdChipPullout");
// }

5
src/main/resources/static/test/css/app.8750cb6d.css
File diff suppressed because it is too large
View File

2
src/main/resources/static/test/index.html

@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>a8k_webui</title><script defer="defer" src="js/chunk-vendors.ce3623b2.js"></script><script defer="defer" src="js/app.231e7193.js"></script><link href="css/app.34c997bb.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but a8k_webui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>a8k_webui</title><script defer="defer" src="js/chunk-vendors.ce3623b2.js"></script><script defer="defer" src="js/app.2b116387.js"></script><link href="css/app.8750cb6d.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but a8k_webui doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

2
src/main/resources/static/test/js/app.2b116387.js
File diff suppressed because it is too large
View File

1
src/main/resources/static/test/js/app.2b116387.js.map
File diff suppressed because it is too large
View File

Loading…
Cancel
Save