You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
2.5 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. package com.iflytop.a800.controller;
  2. import com.iflytop.a800.device.Device;
  3. import com.iflytop.a800.task.StartResetTask;
  4. import com.iflytop.uf.UfActuatorCmdExecutor;
  5. import com.iflytop.uf.controller.UfApiControllerBase;
  6. import com.iflytop.uf.controller.UfApiResponse;
  7. import com.iflytop.uf.model.UfMdbRuntimeVariable;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.PostMapping;
  10. import org.springframework.web.bind.annotation.ResponseBody;
  11. import java.util.HashMap;
  12. import java.util.Map;
  13. @Controller
  14. public class DeviceController extends UfApiControllerBase {
  15. @PostMapping("/api/device/status-get")
  16. @ResponseBody
  17. public UfApiResponse statusGet() {
  18. Map<String,Object> status = new HashMap<>();
  19. status.put("status", UfMdbRuntimeVariable.getString("DeviceStatus", "WAIT_FOR_TUBE_RACK"));
  20. return this.success(status);
  21. }
  22. @PostMapping("/api/device/temperature-get")
  23. @ResponseBody
  24. public UfApiResponse temperatureGet() {
  25. // String testCardWarehouseTempText = UfActuatorCmdExecutor.execute("TestCardWarehouse", "read_temperature");
  26. // int testCardWarehouseTempInt = Integer.parseInt(testCardWarehouseTempText);
  27. Double testCardWarehouseTemp = 0.0; //(double) testCardWarehouseTempInt / 100.0;
  28. // String incubatorTempStr = UfActuatorCmdExecutor.execute("IncubatorTempCtrl", "read_temperature");
  29. // int incubatorTempInt = Integer.parseInt(incubatorTempStr);
  30. Double incubatorTemp = 0.0; // (double)incubatorTempInt / 10.0;
  31. return this.success(Map.of(
  32. "testCardBoxCase", testCardWarehouseTemp,
  33. "incubatorTemp", incubatorTemp
  34. ));
  35. }
  36. @PostMapping("/api/device/id-chip-status-get")
  37. @ResponseBody
  38. public UfApiResponse idChipStatusGet() {
  39. Map<String,Object> idChip = new HashMap<>();
  40. idChip.put("status", UfMdbRuntimeVariable.getString("IdChipStatus", "NOT_INSERTED"));
  41. return this.success(idChip);
  42. }
  43. @PostMapping("/api/device/start-reset")
  44. @ResponseBody
  45. public UfApiResponse startReset() {
  46. var task = new StartResetTask();
  47. task.start();
  48. try {
  49. task.join();
  50. } catch (InterruptedException e) {
  51. return this.error(e.getMessage());
  52. }
  53. return this.success();
  54. }
  55. @PostMapping("/api/device/trash-box-clean")
  56. @ResponseBody
  57. public UfApiResponse trashBoxClean() {
  58. Device.getInstance().trashBox.clean();
  59. return this.success();
  60. }
  61. }