package com.iflytop.a800.controller; import com.iflytop.a800.device.Device; import com.iflytop.a800.task.StartResetTask; import com.iflytop.uf.UfActuatorCmdExecutor; import com.iflytop.uf.controller.UfApiControllerBase; import com.iflytop.uf.controller.UfApiResponse; import com.iflytop.uf.model.UfMdbRuntimeVariable; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.util.HashMap; import java.util.Map; @Controller public class DeviceController extends UfApiControllerBase { @PostMapping("/api/device/status-get") @ResponseBody public UfApiResponse statusGet() { Map status = new HashMap<>(); status.put("status", UfMdbRuntimeVariable.getString("DeviceStatus", "WAIT_FOR_TUBE_RACK")); return this.success(status); } @PostMapping("/api/device/temperature-get") @ResponseBody public UfApiResponse temperatureGet() { // String testCardWarehouseTempText = UfActuatorCmdExecutor.execute("TestCardWarehouse", "read_temperature"); // int testCardWarehouseTempInt = Integer.parseInt(testCardWarehouseTempText); Double testCardWarehouseTemp = 0.0; //(double) testCardWarehouseTempInt / 100.0; // String incubatorTempStr = UfActuatorCmdExecutor.execute("IncubatorTempCtrl", "read_temperature"); // int incubatorTempInt = Integer.parseInt(incubatorTempStr); Double incubatorTemp = 0.0; // (double)incubatorTempInt / 10.0; return this.success(Map.of( "testCardBoxCase", testCardWarehouseTemp, "incubatorTemp", incubatorTemp )); } @PostMapping("/api/device/id-chip-status-get") @ResponseBody public UfApiResponse idChipStatusGet() { Map idChip = new HashMap<>(); idChip.put("status", UfMdbRuntimeVariable.getString("IdChipStatus", "NOT_INSERTED")); return this.success(idChip); } @PostMapping("/api/device/start-reset") @ResponseBody public UfApiResponse startReset() { var task = new StartResetTask(); task.start(); try { task.join(); } catch (InterruptedException e) { return this.error(e.getMessage()); } return this.success(); } @PostMapping("/api/device/trash-box-clean") @ResponseBody public UfApiResponse trashBoxClean() { Device.getInstance().trashBox.clean(); return this.success(); } }