diff --git a/src/main/java/a8k/A8kApplication.java b/src/main/java/a8k/A8kApplication.java new file mode 100644 index 0000000..85968fa --- /dev/null +++ b/src/main/java/a8k/A8kApplication.java @@ -0,0 +1,20 @@ +package a8k; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; +@ControllerAdvice +public class A8kApplication { + @ResponseBody + @ExceptionHandler(value=Exception.class) + public Map controllerExceptionHandler(Exception e){ + Map map = new HashMap<>(); + map.put("success",false); + map.put("message",String.format("%s\n\nStack Trace : \n%s",e.getMessage(), Arrays.toString(e.getStackTrace()))); + map.put("data", null); + return map; + } +} diff --git a/src/main/java/a8k/controller/TmpTestController.java b/src/main/java/a8k/controller/TmpTestController.java index 08ea25c..9e54831 100644 --- a/src/main/java/a8k/controller/TmpTestController.java +++ b/src/main/java/a8k/controller/TmpTestController.java @@ -3,14 +3,47 @@ import a8k.a8k_can_protocol.CmdId; import a8k.a8k_can_protocol.ModuleId; import a8k.appbean.HardwareException; import a8k.base_hardware.A8kCanBusService; +import a8k.service.A8kDebugTaskExecutorService; +import a8k.service.hardware.MotorTubeRackMoveCtrlService; +import com.iflytop.uf.util.UfClassHelper; import jakarta.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; +import java.util.List; +import java.util.Map; @Controller public class TmpTestController { @Resource private A8kCanBusService a8kCanBusService; + @Resource + private MotorTubeRackMoveCtrlService motorTubeRackMoveCtrlService; + @Resource + private A8kDebugTaskExecutorService a8kDebugTaskExecutorService; + + @PostMapping("/api/tmp-test/execute-service-method") + @ResponseBody + public String executeServiceMethod( @RequestBody Map params ) throws NoSuchMethodException { + Object service = this.motorTubeRackMoveCtrlService; + String methodName = (String)params.get("method"); + List methodArgs = (List)params.get("params"); + Object result = UfClassHelper.invokeMethod(service, methodName, methodArgs); + return "OK"; + } + + @PostMapping("/api/tmp-test/update-service-params") + @ResponseBody + public String updateServiceParams( @RequestBody Map params ) { + return "OK"; + } + + @PostMapping("/api/tmp-test/get-service-params") + @ResponseBody + public String getServiceParams() { + return "OK"; + } @GetMapping("/tmp-test/a8k-can-bus-service-call") @ResponseBody diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index af4685e..f6e3606 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -53,7 +53,8 @@ public class MotorTubeRackMoveCtrlService { // public void moveToZeroWhenDeviceSetup() throws HardwareException, InterruptedException { - this.a8kCanBusService.callblockcmd(ModuleId.MotorTubeRackMoveModule, CmdId.kstep_motor_easy_move_to_zero, new Integer[]{}, 30*1000); + var params = this.serviceParameterDao.getParameter(); + this.a8kCanBusService.callblockcmd(ModuleId.MotorTubeRackMoveModule, CmdId.kstep_motor_easy_move_to_zero, new Integer[]{}, params.moveToZeroOvertime); }