Browse Source

update

tags/v0
zhaohe 10 months ago
parent
commit
819276abbe
  1. BIN
      app.db
  2. 2
      src/main/java/a8k/controler/extapi/EngineerPageControler.java
  3. 3
      src/main/java/a8k/controler/extapi/pagecontrol/ExtApiTabConfig.java
  4. 2
      src/main/java/a8k/controler/extapi/utils/ExtApiStatu.java
  5. 2
      src/main/java/a8k/hardware/A8kCanBusService.java
  6. 2
      src/main/java/a8k/hardware/A8kModParamInitializer.java
  7. 2
      src/main/java/a8k/hardware/A8kPipetteCtrlModule.java
  8. 94
      src/main/java/a8k/service/actionreactor/ActionReactorService.java
  9. 6
      src/main/java/a8k/service/actionreactor/base/ActionFunction.java
  10. 7
      src/main/java/a8k/service/actionreactor/base/ActionItem.java
  11. 6
      src/main/java/a8k/service/actionreactor/base/DoWhatNext.java
  12. 9
      src/main/java/a8k/service/actionreactor/base/FnAnnotation.java
  13. 9
      src/main/java/a8k/service/actionreactor/base/FnParam.java
  14. 59
      src/main/java/a8k/service/app/AppDeviceInitializationModule.java
  15. 2
      src/main/java/a8k/service/app/AppProjIDCardMgrService.java
  16. 8
      src/main/java/a8k/service/app/app_device_initialization_module/checkpoint/CheckFn.java
  17. 10
      src/main/java/a8k/service/app/app_device_initialization_module/checkpoint/CheckPointType.java
  18. 9
      src/main/java/a8k/service/app/app_device_initialization_module/checkpoint/CheckResult.java
  19. 15
      src/main/java/a8k/service/app/app_device_initialization_module/checkpoint/Checkpoint.java
  20. 10
      src/main/java/a8k/service/bak_devicectrl/calibration/PositionCalibration.java
  21. 2
      src/main/java/a8k/service/bak_devicectrl/commonctrl/HardwareCommonCtrl.java
  22. 2
      src/main/java/a8k/service/bak_devicectrl/ctrl/HbotControlService.java
  23. 1
      src/main/java/a8k/service/bak_devicectrl/ctrl/ReactionPlatesTransmitCtrl.java
  24. 2
      src/main/java/a8k/service/bak_devicectrl/ctrl/SamplesPreProcesCtrl.java
  25. 2
      src/main/java/a8k/service/bak_devicectrl/ctrl/TubeRackMoveCtrl.java
  26. 4
      src/main/java/a8k/service/bak_devicectrl/param/DebugParam.java
  27. 20
      src/main/java/a8k/service/bak_devicectrl/status/DeviceStatus.java
  28. 2
      src/main/java/a8k/service/bak_devicectrl/testscript/TestScript.java
  29. 6
      src/main/java/a8k/type/ZFunction.java
  30. 2
      src/main/java/a8k/type/appret/AppRet.java
  31. 4
      src/main/java/a8k/type/exception/ActionBreakException.java
  32. 2
      src/main/java/a8k/type/exception/HardwareException.java

BIN
app.db

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

@ -145,7 +145,7 @@ public class EngineerPageControler {
var service = UfApplication.getContext().getBean(serviceClass);
var methods = serviceClass.getMethods();
for ( var method : methods ) {
var statusAnnotation = method.getAnnotation(EnginnerPageStatu.class);
var statusAnnotation = method.getAnnotation(ExtApiStatu.class);
if ( null == statusAnnotation ) {
continue;
}

3
src/main/java/a8k/controler/extapi/pagecontrol/ExtApiTabConfig.java

@ -1,6 +1,9 @@
package a8k.controler.extapi.pagecontrol;
public enum ExtApiTabConfig {
ActionReactorService("调试.单步调试", true),
AppFrontEndEventRouter("基础组件.前端事件路由", true),
AppUserMgrService("应用.用户管理", true), //Ok
AppSettingsMgr("应用.设备配置管理", true), //OK

2
src/main/java/a8k/controler/extapi/utils/EnginnerPageStatu.java → src/main/java/a8k/controler/extapi/utils/ExtApiStatu.java

@ -6,7 +6,7 @@ import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface EnginnerPageStatu {
public @interface ExtApiStatu {
String name();
String group() default "";
int order() default 0;

2
src/main/java/a8k/hardware/A8kCanBusService.java

@ -7,7 +7,7 @@ import a8k.type.PlateInfo;
import a8k.hardware.custom_param_mgr.A8kModCustomParamMgr;
import a8k.hardware.type.a8kcanprotocol.*;
import a8k.hardware.type.a8kcanprotocol.MId;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.type.cfg.Pos2d;
import a8k.baseservice.appeventbus.appevent.A8kHardwareReport;
import a8k.baseservice.appeventbus.AppEventBusService;

2
src/main/java/a8k/hardware/A8kModParamInitializer.java

@ -4,7 +4,7 @@ import a8k.baseservice.appeventbus.AppEventBusService;
import a8k.baseservice.appeventbus.appevent.A8kCanBusOnConnectEvent;
import a8k.baseservice.appeventbus.appevent.AppEvent;
import a8k.baseservice.appeventbus.AppEventListener;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.hardware.custom_param_mgr.ModCustomParamId;
import a8k.hardware.custom_param_mgr.A8kModCustomParamMgr;
import a8k.hardware.type.a8kcanprotocol.MId;

2
src/main/java/a8k/hardware/A8kPipetteCtrlModule.java

@ -8,7 +8,7 @@ import a8k.hardware.type.a8kcanprotocol.CmdId;
import a8k.hardware.type.a8kcanprotocol.MId;
import a8k.hardware.type.regindex.PipetteRegIndex;
import a8k.hardware.type.regindex.RegIndex;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import jakarta.annotation.PostConstruct;

94
src/main/java/a8k/service/actionreactor/ActionReactorService.java

@ -1,15 +1,107 @@
package a8k.service.actionreactor;
import a8k.service.actionreactor.base.ActionFunction;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.controler.extapi.utils.ExtApiStatu;
import a8k.controler.extapi.utils.ExtApiFn;
import a8k.controler.extapi.utils.ExtApiTab;
import a8k.type.ZFunction;
import a8k.service.actionreactor.base.DoWhatNext;
import a8k.type.exception.ActionBreakException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
@ExtApiTab(cfg = ExtApiTabConfig.ActionReactorService)
public class ActionReactorService {
static Logger logger = LoggerFactory.getLogger(ActionReactorService.class);
static class ORDER {
static final int doNextStep = 1;
static final int reDoStep = 2;
static final int breakAction = 3;
static final int fullSpeedRun = 6;
static final int singleStepRun = 7;
}
Boolean reDo = false;
Boolean doNext = false;
Boolean breakAction = false;
Boolean fullSpeedRun = true;
DoWhatNext breakpoint() throws ActionBreakException {
while (true) {
if (reDo) {
reDo = false;
return DoWhatNext.ReDoAction;
}
if (doNext) {
doNext = false;
return DoWhatNext.DoNextAction;
}
if (breakAction) {
breakAction = false;
throw new ActionBreakException();
}
if (fullSpeedRun) {
return DoWhatNext.DoNextAction;
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
throw new ActionBreakException();
}
}
}
public void dosome(String mark, ZFunction action) throws ActionBreakException {
while (true) {
logger.info("do {}", mark);
action.fn();
DoWhatNext next = breakpoint();
if (next == DoWhatNext.DoNextAction) {
break;
}
}
}
@ExtApiFn(name = "下一步", order = ORDER.doNextStep)
public void doNextStep() {
doNext = true;
}
@ExtApiFn(name = "重新执行当前步骤", order = ORDER.reDoStep)
public void reDoStep() {
reDo = true;
}
@ExtApiFn(name = "中断动作", order = ORDER.breakAction)
public void breakAction() {
breakAction = true;
}
@ExtApiFn(name = "全速模式", order = ORDER.fullSpeedRun)
public void fullSpeedRun() {
fullSpeedRun = true;
}
@ExtApiFn(name = "单步模式", order = ORDER.singleStepRun)
public void singleStepRun() {
fullSpeedRun = false;
}
@ExtApiStatu(name = "全速运行")
public Boolean getFullSpeedRun() {
return fullSpeedRun;
}
}

6
src/main/java/a8k/service/actionreactor/base/ActionFunction.java

@ -1,6 +0,0 @@
package a8k.service.actionreactor.base;
@FunctionalInterface
public interface ActionFunction {
void action();
}

7
src/main/java/a8k/service/actionreactor/base/ActionItem.java

@ -1,7 +0,0 @@
package a8k.service.actionreactor.base;
public class ActionItem {
public ActionFunction fn;
public ActionFunction bakfn;
}

6
src/main/java/a8k/service/actionreactor/base/DoWhatNext.java

@ -0,0 +1,6 @@
package a8k.service.actionreactor.base;
public enum DoWhatNext {
DoNextAction,
ReDoAction,
}

9
src/main/java/a8k/service/actionreactor/base/FnAnnotation.java

@ -1,9 +0,0 @@
package a8k.service.actionreactor.base;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface FnAnnotation {
String name();
}

9
src/main/java/a8k/service/actionreactor/base/FnParam.java

@ -1,9 +0,0 @@
package a8k.service.actionreactor.base;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface FnParam {
String name();
}

59
src/main/java/a8k/service/app/AppDeviceInitializationModule.java

@ -1,10 +1,69 @@
package a8k.service.app;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.controler.extapi.utils.ExtApiFn;
import a8k.controler.extapi.utils.ExtApiTab;
import a8k.hardware.A8kCanBusService;
import a8k.hardware.type.a8kcanprotocol.IOId;
import a8k.service.actionreactor.ActionReactorService;
import a8k.service.app.app_device_initialization_module.checkpoint.CheckPointType;
import a8k.service.app.app_device_initialization_module.checkpoint.CheckResult;
import a8k.service.app.app_device_initialization_module.checkpoint.Checkpoint;
import a8k.type.exception.HardwareException;
import jakarta.annotation.PostConstruct;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@Component
@ExtApiTab(cfg = ExtApiTabConfig.AppDeviceInitializationModule)
public class AppDeviceInitializationModule {
@Resource
ActionReactorService ar;
List<Checkpoint> checkPoints = new ArrayList<>();
@Resource
A8kCanBusService canBus;
@PostConstruct
void init() {
checkPoints.add(new Checkpoint("入料通道是否为空",//
CheckPointType.CheckPlateBoxIsCover, () -> !canBus.getIOState(IOId.THChInterPPS) && !canBus.getIOState(IOId.THChOuterPPS)));
checkPoints.add(new Checkpoint("板夹仓盖子是否盖着",//
CheckPointType.CheckPlateBoxIsCover, () -> canBus.getIOState(IOId.PlateBoxCoverClosurePPS)));
checkPoints.add(new Checkpoint("板夹仓卡板检测",//
CheckPointType.CheckPlateStuckDetectorSensorIsTrigger, () -> !canBus.getIOState(IOId.PlateBoxPlateStuckPPS)));
checkPoints.add(new Checkpoint("检查拉杆电机是否在零点位置",//
CheckPointType.CheckPullerMInZeroPos, () -> canBus.getIOState(IOId.PullerMZeroPPS)));
checkPoints.add(new Checkpoint("检查推杆电机是否在零点位置",//
CheckPointType.CheckPusherMInZeroPos, () -> canBus.getIOState(IOId.PusherMZeroPPS)));
checkPoints.add(new Checkpoint("检查垃圾箱是否满",//
CheckPointType.CheckRecycleBinIsOverflow, () -> !canBus.getIOState(IOId.RecycleBinOverflowPPS)));
}
@ExtApiFn(name = "设备初始化前检查", order = 1)
public List<CheckResult> checkBeforeInitDevice() throws HardwareException {
List<CheckResult> results = new java.util.ArrayList<>();
for (Checkpoint checkPoint : checkPoints) {
CheckResult result = new CheckResult();
result.type = checkPoint.type;
result.typechinfo = checkPoint.typechinfo;
result.pass = checkPoint.checkfn.check();
results.add(result);
}
return results;
}
//
@ExtApiFn(name = "设备初始化", order = 1)
void deviceMoveToZero() {
}
}

2
src/main/java/a8k/service/app/AppProjIDCardMgrService.java

@ -8,7 +8,7 @@ import a8k.baseservice.appeventbus.AppEventListener;
import a8k.dbservice.A8kProjIdCardDBService;
import a8k.dbservice.type.A8kProjIdCardDBIterm;
import a8k.hardware.type.regindex.RegIndex;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.type.appret.AppRet;
import a8k.baseservice.appeventbus.AppEventBusService;
import a8k.hardware.A8kCanBusService;

8
src/main/java/a8k/service/app/app_device_initialization_module/checkpoint/CheckFn.java

@ -0,0 +1,8 @@
package a8k.service.app.app_device_initialization_module.checkpoint;
import a8k.type.exception.HardwareException;
@FunctionalInterface
public interface CheckFn {
Boolean check() throws HardwareException;
}

10
src/main/java/a8k/service/app/app_device_initialization_module/checkpoint/CheckPointType.java

@ -0,0 +1,10 @@
package a8k.service.app.app_device_initialization_module.checkpoint;
public enum CheckPointType {
CheckTubeXChannelIsEmpty,//入料通道是否为空
CheckPlateBoxIsCover,//板夹仓盖子是否盖着
CheckPlateStuckDetectorSensorIsTrigger,//板夹仓卡板检测
CheckPullerMInZeroPos,//检查拉杆电机是否在零点位置
CheckPusherMInZeroPos,//检查推杆电机是否在零点位置
CheckRecycleBinIsOverflow,//检查垃圾箱是否满
}

9
src/main/java/a8k/service/app/app_device_initialization_module/checkpoint/CheckResult.java

@ -0,0 +1,9 @@
package a8k.service.app.app_device_initialization_module.checkpoint;
public class CheckResult {
public String typechinfo;
public CheckPointType type;
public Boolean pass;
}

15
src/main/java/a8k/service/app/app_device_initialization_module/checkpoint/Checkpoint.java

@ -0,0 +1,15 @@
package a8k.service.app.app_device_initialization_module.checkpoint;
public class Checkpoint {
public String typechinfo;
public CheckPointType type;
public CheckFn checkfn;
public Checkpoint(String typechinfo, CheckPointType type, CheckFn checkfn) {
this.typechinfo = typechinfo;
this.type = type;
this.checkfn = checkfn;
}
}

10
src/main/java/a8k/service/bak_devicectrl/calibration/PositionCalibration.java

@ -1,7 +1,7 @@
package a8k.service.bak_devicectrl.calibration;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.type.appret.AppRet;
import a8k.type.cfg.Pos2d;
import a8k.controler.extapi.utils.*;
@ -90,26 +90,26 @@ public class PositionCalibration {
}
@EnginnerPageStatu(name = "HbotPos", group = "Hbot")
@ExtApiStatu(name = "HbotPos", group = "Hbot")
public String getHbotPos() throws HardwareException {
Pos2d pos = canBus.hbotReadPos(MId.HbotM);
return pos.toString();
}
@EnginnerPageStatu(name = "转盘位置")
@ExtApiStatu(name = "转盘位置")
public String getIncubatorRotateCtrlMPos() throws HardwareException {
Integer pos = canBus.stepMotorReadPos(MId.IncubatorRotateCtrlM);
return pos.toString();
}
@EnginnerPageStatu(name = "抓手Y轴位置", group = "摇匀模组")
@ExtApiStatu(name = "抓手Y轴位置", group = "摇匀模组")
public String getShakeModGripperYPos() throws HardwareException {
Integer pos = canBus.miniServoReadPos(MId.ShakeModGripperYSV);
return pos.toString();
}
@EnginnerPageStatu(name = "抓手位置", group = "摇匀模组")
@ExtApiStatu(name = "抓手位置", group = "摇匀模组")
public String getGripperPos() throws HardwareException {
Integer pos = canBus.miniServoReadPos(MId.ShakeModGripperSV);
return pos.toString();

2
src/main/java/a8k/service/bak_devicectrl/commonctrl/HardwareCommonCtrl.java

@ -1,7 +1,7 @@
package a8k.service.bak_devicectrl.commonctrl;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.type.appret.AppRet;
import a8k.controler.extapi.utils.ExtApiTab;
import a8k.controler.extapi.utils.ExtApiFn;

2
src/main/java/a8k/service/bak_devicectrl/ctrl/HbotControlService.java

@ -2,7 +2,7 @@ package a8k.service.bak_devicectrl.ctrl;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.type.ConsumableGroup;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.type.appret.AppRet;
import a8k.type.cfg.*;
import a8k.controler.extapi.utils.*;

1
src/main/java/a8k/service/bak_devicectrl/ctrl/ReactionPlatesTransmitCtrl.java

@ -1,6 +1,7 @@
package a8k.service.bak_devicectrl.ctrl;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.type.exception.HardwareException;
import a8k.utils.opt_algo.A8kOptAlgo;
import a8k.type.*;
import a8k.type.appret.AppRet;

2
src/main/java/a8k/service/bak_devicectrl/ctrl/SamplesPreProcesCtrl.java

@ -1,7 +1,7 @@
package a8k.service.bak_devicectrl.ctrl;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.type.appret.AppRet;
import a8k.controler.extapi.utils.*;
import a8k.hardware.A8kCanBusService;

2
src/main/java/a8k/service/bak_devicectrl/ctrl/TubeRackMoveCtrl.java

@ -1,7 +1,7 @@
package a8k.service.bak_devicectrl.ctrl;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.type.TargetPosMeasureDirection;
import a8k.type.appret.AppRet;
import a8k.controler.extapi.utils.*;

4
src/main/java/a8k/service/bak_devicectrl/param/DebugParam.java

@ -2,7 +2,7 @@ package a8k.service.bak_devicectrl.param;
import a8k.controler.extapi.utils.ExtApiTab;
import a8k.controler.extapi.utils.ExtApiFn;
import a8k.controler.extapi.utils.EnginnerPageStatu;
import a8k.controler.extapi.utils.ExtApiStatu;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import org.springframework.stereotype.Component;
@ -22,7 +22,7 @@ public class DebugParam {
debugMode = false;
}
@EnginnerPageStatu(name = "调试模式")
@ExtApiStatu(name = "调试模式")
public Boolean getDebugMode() {
return debugMode;
}

20
src/main/java/a8k/service/bak_devicectrl/status/DeviceStatus.java

@ -1,8 +1,8 @@
package a8k.service.bak_devicectrl.status;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.controler.extapi.utils.ExtApiTab;
import a8k.controler.extapi.utils.EnginnerPageStatu;
import a8k.controler.extapi.utils.ExtApiStatu;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.hardware.A8kCanBusService;
import a8k.hardware.type.a8kcanprotocol.IOId;
@ -33,42 +33,42 @@ public class DeviceStatus {
//
// 状态
//
@EnginnerPageStatu(name = "试管架存在", group = "进出料光电", order = ORDER.isTubeExist)
@ExtApiStatu(name = "试管架存在", group = "进出料光电", order = ORDER.isTubeExist)
public Boolean isTubeExist() throws HardwareException {
return canBus.getIOState(IOId.TubeExistPPS);
}
@EnginnerPageStatu(name = "入口光电", group = "进出料光电", order = ORDER.isTubeRackInEnterPos)
@ExtApiStatu(name = "入口光电", group = "进出料光电", order = ORDER.isTubeRackInEnterPos)
public Boolean isTubeRackInEnterPos() throws HardwareException {
return canBus.getIOState(IOId.InfeedPPS);
}
@EnginnerPageStatu(name = "出口光电", group = "进出料光电", order = ORDER.isTubeRackInExitPos)
@ExtApiStatu(name = "出口光电", group = "进出料光电", order = ORDER.isTubeRackInExitPos)
public Boolean isTubeRackInExitPos() throws HardwareException {
return canBus.getIOState(IOId.OutfeedPPS);
}
@EnginnerPageStatu(name = "试管高低判读光电", group = "进出料光电", order = ORDER.isHighTube)
@ExtApiStatu(name = "试管高低判读光电", group = "进出料光电", order = ORDER.isHighTube)
public Boolean isHighTube() throws HardwareException {
return canBus.getIOState(IOId.TubeHeightPPS);
}
@EnginnerPageStatu(name = "通道外光电", group = "进出料光电", order = ORDER.getTHchOuterPPS)
@ExtApiStatu(name = "通道外光电", group = "进出料光电", order = ORDER.getTHchOuterPPS)
public Boolean getTHchOuterPPS() throws HardwareException {
return canBus.getIOState(IOId.THChOuterPPS);
}
@EnginnerPageStatu(name = "通道内光电", group = "进出料光电", order = ORDER.getTHchInterPPS)
@ExtApiStatu(name = "通道内光电", group = "进出料光电", order = ORDER.getTHchInterPPS)
public Boolean getTHchInterPPS() throws HardwareException {
return canBus.getIOState(IOId.THChInterPPS);
}
@EnginnerPageStatu(name = "X轴光电➡", group = "HBOT", order = ORDER.getXPPS)
@ExtApiStatu(name = "X轴光电➡", group = "HBOT", order = ORDER.getXPPS)
public Boolean getXPPS() throws HardwareException {
return canBus.hbotReadInio(MId.HbotM, 0);
}
@EnginnerPageStatu(name = "Y轴光电⬇", group = "HBOT", order = ORDER.getYPPS)
@ExtApiStatu(name = "Y轴光电⬇", group = "HBOT", order = ORDER.getYPPS)
public Boolean getYPPS() throws HardwareException {
return canBus.hbotReadInio(MId.HbotM, 1);
}

2
src/main/java/a8k/service/bak_devicectrl/testscript/TestScript.java

@ -2,7 +2,7 @@ package a8k.service.bak_devicectrl.testscript;
import a8k.controler.extapi.pagecontrol.ExtApiTabConfig;
import a8k.type.ConsumableGroup;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import a8k.type.IncubatorPos;
import a8k.type.appret.AppRet;
import a8k.type.cfg.BottleGroupsPosInfo;

6
src/main/java/a8k/type/ZFunction.java

@ -0,0 +1,6 @@
package a8k.type;
@FunctionalInterface
public interface ZFunction {
void fn();
}

2
src/main/java/a8k/type/appret/AppRet.java

@ -4,7 +4,7 @@ import a8k.type.ecode.AppRetEcodeInfo;
import a8k.hardware.type.a8kcanprotocol.CmdId;
import a8k.hardware.type.a8kcanprotocol.MId;
import a8k.hardware.type.a8kcanprotocol.A8kEcode;
import a8k.type.HardwareException;
import a8k.type.exception.HardwareException;
import lombok.Getter;
public class AppRet<T> {

4
src/main/java/a8k/type/exception/ActionBreakException.java

@ -0,0 +1,4 @@
package a8k.type.exception;
public class ActionBreakException extends Exception {
}

2
src/main/java/a8k/type/HardwareException.java → src/main/java/a8k/type/exception/HardwareException.java

@ -1,4 +1,4 @@
package a8k.type;
package a8k.type.exception;
import a8k.hardware.type.a8kcanprotocol.CmdId;
import a8k.hardware.type.a8kcanprotocol.MId;
Loading…
Cancel
Save