Browse Source

update

tags/v0
zhaohe 6 months ago
parent
commit
9115422586
  1. 16
      src/main/java/a8k/app/hardware/initializer/A8kModParamInitializer.java
  2. 2
      src/main/java/a8k/app/i18n/Internationalization.java
  3. 17
      src/main/java/a8k/app/service/background/BackgroudProcessCtrlService.java
  4. 53
      src/main/java/a8k/app/service/background/SensorDataUpdateService.java
  5. 264
      src/main/java/a8k/app/service/background/TemperatureCtrlService.java
  6. 1
      src/main/java/a8k/app/service/lowerctrl/DeviceInitCtrlService.java
  7. 31
      src/main/java/a8k/app/service/mainctrl/mainflowctrl/MainFlowCtrlScheduler.java
  8. 19
      src/main/java/a8k/app/service/mainctrl/mainflowctrl/processer/MainFlowStateChangeProcesser.java
  9. 1
      src/main/java/a8k/extui/page/debug/P00MainflowCtrlServiceDebugPage.java
  10. 17
      src/main/java/a8k/extui/page/extapp/P02A8kTemperaturaVerfication.java
  11. 28
      src/main/java/a8k/extui/page/init/BackgroudProcessCtrlPage.java
  12. 12
      src/main/java/a8k/extui/page/init/DeviceInitPage.java

16
src/main/java/a8k/app/hardware/initializer/A8kModParamInitializer.java

@ -134,6 +134,11 @@ public class A8kModParamInitializer {
}
public void stopHeating() throws AppException {
canBus.moduleStop(MId.IncubatorTCM);
canBus.moduleStop(MId.PlatesBoxTCM);
}
public void stopAllMotor() throws AppException {
//StopAllMotor
//进出料初始化
@ -225,9 +230,19 @@ public class A8kModParamInitializer {
pipetteCtrlDriver.zMotorEnable(0);
}
public void forceDisableAllMotor() {
try {
stopAllMotor();
} catch (AppException e) {
logger.error("forceDisableAllMotor fail......", e);
}
}
public void forceInitA8kModParams() {
try {
logger.info("forceInitA8kModParams");
stopHeating();
stopAllMotor();
initA8kModParams();
} catch (AppException e) {
@ -240,7 +255,6 @@ public class A8kModParamInitializer {
Boolean isInit = false;
public void onAppEvent(AppEvent event) {
if (event instanceof A8kCanBusOnConnectEvent) {
if (isInit) {
return;

2
src/main/java/a8k/app/i18n/Internationalization.java

@ -18,7 +18,7 @@ public class Internationalization {
case APPE_TUBE_HOLDER_SETTING_IS_LOCKED -> "试管架设置被锁定,已锁定的.";
case APPE_EMERGENCY_SAMPLE_IS_PROCESSING -> "添加急诊样本失败,急诊样本还没有处理完成";
case APPE_ADD_EMERGENCY_ACTION_IS_NOT_ALLOWED_WHEN_WORKING -> "添加急诊样本失败,设备正在运行中";
case APPE_DEVICE_IS_IN_FATAL_ERROR -> "设备处于严重错误,请关机后重启设备进行恢复";
case APPE_DEVICE_IS_IN_FATAL_ERROR -> "设备处于严重错误,请重新初始化后再启动";
case APPE_SCAN_TUBEHOLDER_TYPE_TIMEOUT -> "扫描试管架类型超时";
case APPE_TUBE_HOLDER_TYPE_IS_NOT_SUPPORT -> "试管架类型不支持";
case APPE_INFEED_OVERTIME_FAIL -> "入料超时失败";

17
src/main/java/a8k/app/service/background/BackgroudProcessCtrlService.java

@ -6,22 +6,5 @@ import org.springframework.stereotype.Component;
@Component
public class BackgroudProcessCtrlService {
@Resource
TemperatureCtrlService temperatureCtrlService;
@Resource
SensorDataUpdateService sensorDataUpdateService;
synchronized public void startProcess() throws AppException {
temperatureCtrlService.startTemperatureControl();
sensorDataUpdateService.startUpdate();
}
synchronized public void stopProcess() throws AppException {
temperatureCtrlService.stopTemperatureControl();
sensorDataUpdateService.stopUpdate();
}
synchronized public boolean getProcessState() {
return temperatureCtrlService.isTemperatureControlRunning() && sensorDataUpdateService.isUpdateRunning();
}
}

53
src/main/java/a8k/app/service/background/SensorDataUpdateService.java

@ -2,8 +2,10 @@ package a8k.app.service.background;
import a8k.OS;
import a8k.app.a8ktype.DeviceRunMode;
import a8k.app.a8ktype.error.AppError;
import a8k.app.hardware.basedriver.A8kCanBusService;
import a8k.app.hardware.type.a8kcanprotocol.IOId;
import a8k.app.service.bases.AppEventBusService;
import a8k.app.service.statemgr.GStateMgrService;
import a8k.app.service.statemgr.OptScanModuleStateMgrService;
import a8k.app.a8ktype.state.enumtype.OptScanModuleState;
@ -36,14 +38,35 @@ public class SensorDataUpdateService {
OptScanModuleStateMgrService optScanModuleStateMgrService;
@Resource
AppEventBusService appEventBusService;
@Resource
A8kCanBusService canBus;
Thread updateThread = null;
Boolean workingFlag = false;
Thread updateThread = null;
Boolean workingFlag = true;
Boolean errorFlag = false;
AppError error = null;
List<TemperatureRecordPoint> incubateBoxTemperatureCurve = new ArrayList<>();
List<TemperatureRecordPoint> plateBoxTemperatureCurve = new ArrayList<>();
public void setErrorFlag(AppException e) {
if (!errorFlag) {
appEventBusService.pushAppExceptionEvent(e);
}
errorFlag = true;
error = e.getError();
}
public AppError getSensorDataUpdateServiceError() {
return error;
}
public void clearError() {
errorFlag = false;
error = null;
}
synchronized private void addIncubateBoxTemperatureCurve(Double temperature) {
TemperatureRecordPoint point = new TemperatureRecordPoint();
@ -74,25 +97,11 @@ public class SensorDataUpdateService {
return new ArrayList<>(plateBoxTemperatureCurve);
}
public Boolean isUpdateRunning() {
return workingFlag;
}
public void startUpdate() {
workingFlag = true;
}
public void stopUpdate() {
workingFlag = false;
}
@PostConstruct
public void init() {
updateThread = new Thread(() -> {
OS.forceSleep(3000);
OS.forceSleep(3000); //等待webSocket连接
while (true) {
if (!workingFlag) {
@ -105,8 +114,8 @@ public class SensorDataUpdateService {
continue;
}
try {
try {
OptScanModuleState optScanModuleState = optScanModuleStateMgrService.getOptScanModule().getState();
if (!optScanModuleState.equals(OptScanModuleState.EMPTY)) {
gStateMgrService.getSensorState().setWasteBinFullFlag(false);
@ -130,10 +139,16 @@ public class SensorDataUpdateService {
addPlateBoxTemperatureCurve(pbtemp);
log.debug("IncubateBoxTemperature: {}, PlateBoxTemperature: {}", incubateBoxTemp, pbtemp);
clearError();
} catch (AppException e) {
log.error("Failed to read temperature data {}", e.getMessage());
setErrorFlag(e);
}
if (errorFlag) {
OS.forceSleep(5000);
} else {
OS.forceSleep(1000);
}
OS.forceSleep(1000);
}
});
updateThread.start();

264
src/main/java/a8k/app/service/background/TemperatureCtrlService.java

@ -2,10 +2,12 @@ package a8k.app.service.background;
import a8k.OS;
import a8k.app.a8ktype.error.AppError;
import a8k.app.a8ktype.exception.AppException;
import a8k.app.service.bases.AppEventBusService;
import a8k.app.service.setting.AppSettingsMgrService;
import a8k.app.hardware.driver.TemperatureControlDriver;
import a8k.teststate.VirtualDevice;
import a8k.app.a8ktype.exception.AppException;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
@ -15,130 +17,202 @@ import org.springframework.stereotype.Component;
@Slf4j
public class TemperatureCtrlService {
enum TemperaControlMode {
kFixTemperature,
kAutoChangeFromAppSetting
}
@Resource
TemperatureControlDriver temperatureControlDriver;
@Resource
VirtualDevice virtualDevice;
@Resource
AppSettingsMgrService appSettingsMgrService;
Integer targetTemperature = 0;
TemperaControlMode controlMode = TemperaControlMode.kFixTemperature;
Thread temperatureCtrlThread = null;
Boolean workingFlag = false;
AppSettingsMgrService appSettingsMgrService;
@Resource
AppEventBusService eventBus;
@PostConstruct
public void init() {
// eventBus.regListener(this::onAppEvent);
}
synchronized public Integer getTargetTemperature() {
return targetTemperature;
}
Integer targetTemperatureSetVal = null;
Integer targetTemperature = 0;
Boolean workingFlag = false;
/**
* 控制温度当APP配置发生变化时自动调整温度
* @throws AppException 温度控制异常
*/
synchronized public void startTemperatureControl() throws AppException {
stopTemperatureControl();
controlMode = TemperaControlMode.kAutoChangeFromAppSetting;
targetTemperature = 0;
startTemperatureControlInternal();
}
Thread temperatureCtrlThread = null;
/**
* 控制温度根据设定值控制温度
* @param tem 设定温度
* @throws AppException 温度控制异常
*/
synchronized public void startFixTemperatureControl(Integer tem) throws AppException {
stopTemperatureControl();
controlMode = TemperaControlMode.kFixTemperature;
targetTemperature = tem;
startTemperatureControlInternal();
}
AppError error = null;
synchronized public boolean isTemperatureControlRunning() {
return temperatureCtrlThread != null;
}
@PostConstruct
public void init() {
// eventBus.regListener(this::onAppEvent);
synchronized public void startTemperatureControlInternal() throws AppException {
if (virtualDevice.isEnable()) {
return;
}
temperatureCtrlThread = new Thread(() -> {
OS.forceSleep(3000); //等待webSocket连接
if (temperatureCtrlThread != null) {
return;
}
while (true) {
if (virtualDevice.isEnable()) {
OS.forceSleep(1000);
continue;
}
if (controlMode.equals(TemperaControlMode.kAutoChangeFromAppSetting)) {
var setting = appSettingsMgrService.getDeviceSetting();
targetTemperature = setting.getTemperature();
}
temperatureControlDriver.startCtrlTemperature(targetTemperature.doubleValue());
/*
* 启动线程定时检查温度设定值如果发生变化则调用温度控制器
*/
workingFlag = true;
temperatureCtrlThread = new Thread(() -> {
log.info("Temperature thread run start");
while (workingFlag) {
try {
OS.forceSleep(1000);
if (controlMode.equals(TemperaControlMode.kAutoChangeFromAppSetting)) {
Integer settingTem = appSettingsMgrService.getDeviceSetting().getTemperature();
if (!targetTemperature.equals(settingTem)) {
targetTemperature = settingTem;
temperatureControlDriver.startCtrlTemperature(targetTemperature.doubleValue());
}
Integer targetSetVal = getTargetTemperatureSetVal();
if (isTargetTemperatureChanged(targetSetVal)) {
startCtrlTemperature(targetSetVal);
}
clearAppError();
} catch (AppException e) {
setAppError(e);
log.error("Temperature control error: {}", e.getMessage());
}
}
try {
temperatureControlDriver.stopCtrlTemperature();
} catch (AppException e) {
throw new RuntimeException(e);
}
log.info("Temperature thread run end");
});
temperatureCtrlThread.start();
temperatureCtrlThread.setName("TemperatureCtrlThread");
}
synchronized public void stopTemperatureControl() throws AppException {
if (virtualDevice.isEnable()) {
return;
synchronized public AppError getError() {
return error;
}
synchronized public void setTargetTemperature(Integer temperature) {
targetTemperatureSetVal = temperature;
}
synchronized public void clearTargetTemperature() {
targetTemperatureSetVal = null;
}
synchronized public Integer getTargetTemperature() {
return targetTemperature;
}
private Boolean isTargetTemperatureChanged(Integer newTargetTemperature) {
return !newTargetTemperature.equals(targetTemperature);
}
private Integer getTargetTemperatureSetVal() {
if (targetTemperatureSetVal != null) {
return targetTemperatureSetVal;
}
return appSettingsMgrService.getDeviceSetting().getTemperature();
}
if (temperatureCtrlThread != null) {
temperatureCtrlThread.interrupt();
workingFlag = false;
try {
temperatureCtrlThread.join();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
temperatureCtrlThread = null;
private void startCtrlTemperature(Integer temperature) throws AppException {
temperatureControlDriver.startCtrlTemperature(temperature.doubleValue());
targetTemperature = temperature;
workingFlag = true;
}
synchronized private void setAppError(AppException e) {
if (error == null) {
eventBus.pushAppExceptionEvent(e);
}
log.info("Temperature control stopped");
error = e.getError();
}
synchronized private void clearAppError() {
error = null;
}
//
// synchronized public Integer getTargetTemperature() {
// return targetTemperature;
// }
//
// /**
// * 控制温度当APP配置发生变化时自动调整温度
// * @throws AppException 温度控制异常
// */
// synchronized public void startTemperatureControl() throws AppException {
// stopTemperatureControl();
// targetTemperature = 0;
// startTemperatureControlInternal();
// }
//
// /**
// * 控制温度根据设定值控制温度
// * @param tem 设定温度
// * @throws AppException 温度控制异常
// */
// synchronized public void startFixTemperatureControl(Integer tem) throws AppException {
// stopTemperatureControl();
// targetTemperature = tem;
// startTemperatureControlInternal();
// }
//
// synchronized public boolean isTemperatureControlRunning() {
// return temperatureCtrlThread != null;
// }
//
//
// synchronized public void startTemperatureControlInternal() throws AppException {
// if (virtualDevice.isEnable()) {
// return;
// }
//
// if (temperatureCtrlThread != null) {
// return;
// }
//
// if (controlMode.equals(TemperaControlMode.kAutoChangeFromAppSetting)) {
// var setting = appSettingsMgrService.getDeviceSetting();
// targetTemperature = setting.getTemperature();
// }
//
//
// /*
// * 启动线程定时检查温度设定值如果发生变化则调用温度控制器
// */
// workingFlag = true;
// temperatureCtrlThread = new Thread(() -> {
// log.info("Temperature thread run start");
//
// temperatureControlDriver.startCtrlTemperature(targetTemperature.doubleValue());
//
// while (workingFlag) {
// try {
//
// OS.forceSleep(1000);
// if (controlMode.equals(TemperaControlMode.kAutoChangeFromAppSetting)) {
// Integer settingTem = appSettingsMgrService.getDeviceSetting().getTemperature();
// if (!targetTemperature.equals(settingTem)) {
// targetTemperature = settingTem;
// temperatureControlDriver.startCtrlTemperature(targetTemperature.doubleValue());
// }
// }
//
// } catch (AppException e) {
// log.error("Temperature control error: {}", e.getMessage());
// }
// }
//
// try {
// temperatureControlDriver.stopCtrlTemperature();
// } catch (AppException e) {
// throw new RuntimeException(e);
// }
//
// log.info("Temperature thread run end");
// });
// temperatureCtrlThread.start();
// temperatureCtrlThread.setName("TemperatureCtrlThread");
// }
//
// synchronized public void stopTemperatureControl() throws AppException {
// if (virtualDevice.isEnable()) {
// return;
// }
//
// if (temperatureCtrlThread != null) {
// temperatureCtrlThread.interrupt();
// workingFlag = false;
// try {
// temperatureCtrlThread.join();
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
// temperatureCtrlThread = null;
// }
// log.info("Temperature control stopped");
//
// }
}

1
src/main/java/a8k/app/service/lowerctrl/DeviceInitCtrlService.java

@ -269,7 +269,6 @@ public class DeviceInitCtrlService {
throw AppException.of(A8kEcode.APPE_DEVICE_INIT_CHECK_FAIL);
}
}
backgroudProcessCtrlService.startProcess();
deviceInitedTaskState.passed = true;
deviceInitedTaskState.deviceInited = true;
deviceInitedTaskState.promopt = ZAppPromoptFactory.buildNotifyPromopt("设备初始化成功");

31
src/main/java/a8k/app/service/mainctrl/mainflowctrl/MainFlowCtrlScheduler.java

@ -12,9 +12,11 @@ import a8k.app.a8ktype.exception.AppException;
import a8k.app.a8ktype.state.DeviceWorkState;
import a8k.app.a8ktype.state.enumtype.A8kWorkState;
import a8k.app.factory.ZAppPromoptFactory;
import a8k.app.hardware.initializer.A8kModParamInitializer;
import a8k.app.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.app.service.bases.AppEventBusService;
import a8k.app.service.bases.UIMessage;
import a8k.app.service.lowerctrl.DeviceInitCtrlService;
import a8k.app.service.lowerctrl.LiquidOperationCtrlService;
import a8k.app.service.mainctrl.TubeHolderSettingMgrService;
import a8k.app.service.mainctrl.mainflowctrl.base.*;
@ -40,6 +42,10 @@ public class MainFlowCtrlScheduler implements ApplicationListener<ApplicationSta
static Logger logger = LoggerFactory.getLogger(MainFlowCtrlScheduler.class);
@Autowired
private LiquidOperationCtrlService liquidOperationCtrlService;
@Autowired
private DeviceInitCtrlService deviceInitCtrlService;
@Autowired
private A8kModParamInitializer a8kModParamInitializer;
@FunctionalInterface
@ -222,6 +228,7 @@ public class MainFlowCtrlScheduler implements ApplicationListener<ApplicationSta
//DO_NOTHING
}
void changeWorkState(A8kWorkState workState) {
deviceWorkStateMgrService.updateWorkState(workState);
var state = deviceWorkStateMgrService.getDeviceWorkState();
@ -261,7 +268,8 @@ public class MainFlowCtrlScheduler implements ApplicationListener<ApplicationSta
for (var error : errorList) {
ebus.pushEvent(ZAppPromoptFactory.buildAppPromoptEvent(error.ecode));
}
a8kModParamInitializer.forceDisableAllMotor();
changeWorkState(A8kWorkState.IDLE);
return;
}
//
@ -281,13 +289,6 @@ public class MainFlowCtrlScheduler implements ApplicationListener<ApplicationSta
}
} else if (state.stopActionPending) {
if (state.workState != A8kWorkState.IDLE) {
changeWorkState(A8kWorkState.IDLE);
}
@ -304,12 +305,16 @@ public class MainFlowCtrlScheduler implements ApplicationListener<ApplicationSta
continue;
}
// logger.info("work state:{}", state.workState);
switch (state.workState) {
case IDLE -> onIDLE();
case WORKING -> onWorking();
case PAUSE -> onPause();
case IDLE -> {
onIDLE();
}
case WORKING -> {
onWorking();
}
case PAUSE -> {
onPause();
}
}
onPostProcessing();

19
src/main/java/a8k/app/service/mainctrl/mainflowctrl/processer/MainFlowStateChangeProcesser.java

@ -3,10 +3,7 @@ package a8k.app.service.mainctrl.mainflowctrl.processer;
import a8k.app.service.mainctrl.TubeHolderSettingMgrService;
import a8k.app.service.mainctrl.mainflowctrl.base.IMainFlowStateChangeProcesser;
import a8k.app.service.mainctrl.mainflowctrl.base.MainFlowProcesser;
import a8k.app.service.statemgr.ConsumablesMgrService;
import a8k.app.service.statemgr.IncubationPlateStateMgrService;
import a8k.app.service.statemgr.ProjectContextMgrService;
import a8k.app.service.statemgr.TubeStateMgrService;
import a8k.app.service.statemgr.*;
import a8k.app.a8ktype.state.IncubationSubTank;
import a8k.app.a8ktype.state.enumtype.IncubationSubTankState;
import a8k.app.service.lowerctrl.HbotMoveExCtrlService;
@ -16,6 +13,7 @@ import a8k.teststate.VirtualDevice;
import a8k.app.a8ktype.exception.AppException;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@ -35,12 +33,14 @@ public class MainFlowStateChangeProcesser implements IMainFlowStateChangeProcess
@Resource
IncubationPlateStateMgrService incubationPlateStateMgrService;
@Resource
TubeStateMgrService tubeStateMgrService;
TubeStateMgrService tubeStateMgrService;
@Resource
ConsumablesMgrService consumablesMgrService;
ConsumablesMgrService consumablesMgrService;
@Resource
ProjectContextMgrService projectContextMgrService;
@Autowired
private DeviceWorkStateMgrService deviceWorkStateMgrService;
void ejectAllPlates() throws AppException {
var tanks = incubationPlateStateMgrService.get().subtanks;
@ -72,7 +72,10 @@ public class MainFlowStateChangeProcesser implements IMainFlowStateChangeProcess
@Override
public void onStop() throws AppException {
//物理清空设备
doClearDevice();
if (!deviceWorkStateMgrService.getDeviceWorkState().fatalErrorFlag) {
//如果发生了致命错误不执行物理操作
doClearDevice();
}
//清空孵育盘状态
incubationPlateStateMgrService.resetAll();
//清空试管状态
@ -93,6 +96,6 @@ public class MainFlowStateChangeProcesser implements IMainFlowStateChangeProcess
@Override
public void onStart() throws AppException {
}
}

1
src/main/java/a8k/extui/page/debug/P00MainflowCtrlServiceDebugPage.java

@ -54,7 +54,6 @@ public class P00MainflowCtrlServiceDebugPage {
@ExtApiStatu(name = "", group = "其他状态", order = 4)
public Map<String, Object> getBackgroudProcessState() {
return Map.of(
"后台线程工作状态", backgroudProcessCtrlService.getProcessState(),
"目标温度", temperatureCtrlService.getTargetTemperature(),
"孵育盘实时温度", gStateMgrService.getSensorState().getIncubateBoxTemperature(),
"板夹仓实时温度", gStateMgrService.getSensorState().getPboxTemperature(),

17
src/main/java/a8k/extui/page/extapp/P02A8kTemperaturaVerfication.java

@ -30,13 +30,11 @@ public class P02A8kTemperaturaVerfication {
ExtApiPageMgr extApiPageMgr;
@Resource
TemperatureCtrlService temperatureCtrlService;
TemperatureCtrlService temperatureCtrlService;
@Resource
TemperatureControlDriver temperatureControlDriver;
TemperatureControlDriver temperatureControlDriver;
@Resource
TemperatureCtrlParamMgr temperatureCtrlParamMgr;
@Resource
BackgroudProcessCtrlService backgroudProcessCtrlService;
TemperatureCtrlParamMgr temperatureCtrlParamMgr;
List<Object[]> incubateBoxTemperatureCurve = new ArrayList<>();
@ -66,7 +64,7 @@ public class P02A8kTemperaturaVerfication {
int S = hasStartedTimeMS / 1000;
return String.format("%s:%s:%s", (int) Math.floor((double) S / 3600), (int) Math.floor((double) (S % 3600) / 60), S % 60);
}
@PostConstruct
public void init() throws NoSuchMethodException {
@ -103,10 +101,7 @@ public class P02A8kTemperaturaVerfication {
synchronized public void startCtrl(Integer targetTemperature) throws AppException, InterruptedException {
backgroudProcessCtrlService.stopProcess();
temperatureCtrlService.stopTemperatureControl();
temperatureCtrlService.startFixTemperatureControl(targetTemperature);
temperatureCtrlService.setTargetTemperature(targetTemperature);
if (tempSampleThread != null) {
tempSampleThread.interrupt();
tempSampleThread.join();
@ -135,7 +130,7 @@ public class P02A8kTemperaturaVerfication {
}
synchronized public void stopCtrl() throws AppException, InterruptedException {
temperatureCtrlService.stopTemperatureControl();
temperatureCtrlService.clearTargetTemperature();
if (tempSampleThread != null) {
tempSampleThread.interrupt();
tempSampleThread.join();

28
src/main/java/a8k/extui/page/init/BackgroudProcessCtrlPage.java

@ -1,28 +0,0 @@
package a8k.extui.page.init;
import a8k.app.service.background.BackgroudProcessCtrlService;
import a8k.extui.mgr.ExtApiPageMgr;
import a8k.extui.type.ExtUIPageCfg;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
@Component
public class BackgroudProcessCtrlPage {
@Resource
ExtApiPageMgr extApiPageMgr;
@Resource
BackgroudProcessCtrlService backgroudProcessCtrlService;
@PostConstruct
void init() {
ExtUIPageCfg page = new ExtUIPageCfg(backgroudProcessCtrlService);
page.addFunction("启动后台进程", backgroudProcessCtrlService::startProcess);
page.addFunction("停止后台进程", backgroudProcessCtrlService::stopProcess);
extApiPageMgr.addPage(page);
}
}

12
src/main/java/a8k/extui/page/init/DeviceInitPage.java

@ -84,16 +84,6 @@ public class DeviceInitPage {
}
@Resource
BackgroudProcessCtrlService backgroudProcessCtrlService;
public void startTemperatureControl() throws AppException {
backgroudProcessCtrlService.startProcess();
}
public void stopTemperatureControl() throws AppException {
backgroudProcessCtrlService.stopProcess();
}
public List<CheckResult> initializeDevice() throws AppException {
var ret = deviceInitCtrlService.initDevice();
@ -120,8 +110,6 @@ public class DeviceInitPage {
page.newGroup("设备初始化");
page.addFunction("初始化设备", this::initializeDevice);
page.addFunction("开始控温", this::startTemperatureControl);
page.addFunction("停止控温", this::stopTemperatureControl);
page.newGroup("电机使能");
page.addFunction("电机归零", this::moveAllStepMotorToZero);

Loading…
Cancel
Save