Browse Source

孵育盘状态

master
sige 2 years ago
parent
commit
8cc234ca98
  1. 50
      src/main/java/com/dreamworks/boditech/controller/DeviceController.java
  2. 1
      src/main/java/com/dreamworks/boditech/driver/Device.java
  3. 20
      src/main/java/com/dreamworks/boditech/driver/actuator/ActModuleIncubatorTemperature.java
  4. 3
      src/main/java/com/dreamworks/boditech/driver/actuator/ActuatorModule.java
  5. 5
      src/main/java/com/dreamworks/boditech/driver/entity/IncubatorSlot.java

50
src/main/java/com/dreamworks/boditech/controller/DeviceController.java

@ -1,11 +1,11 @@
package com.dreamworks.boditech.controller;
import com.dreamworks.boditech.controller.entity.ApiResponse;
import com.dreamworks.boditech.driver.Device;
import com.dreamworks.boditech.driver.actuator.ActIncubator;
import com.dreamworks.boditech.driver.actuator.ActModuleIncubatorTemperature;
import com.dreamworks.boditech.driver.actuator.ActModuleTestCardBoxCaseTemperature;
import com.dreamworks.boditech.driver.actuator.ActuatorModule;
import com.dreamworks.boditech.driver.entity.ParamBufferTubeUpdateByBox;
import com.dreamworks.boditech.driver.entity.ParamLargeBufferTubeUpdate;
import com.dreamworks.boditech.driver.entity.ParamPipetteTipUpdate;
import com.dreamworks.boditech.driver.entity.ParamTestCardUpdateByBox;
import com.dreamworks.boditech.driver.entity.*;
import com.dreamworks.boditech.driver.task.Task;
import com.dreamworks.boditech.service.DeviceService;
import jakarta.annotation.Resource;
@ -114,6 +114,21 @@ public class DeviceController extends BaseController {
}
@ResponseBody
@PostMapping("/api/device/incubator-status-get")
public ApiResponse incubatorStatusGet() {
Device device = this.deviceService.device;
ActIncubator incubator = (ActIncubator)device.getActuator(ActuatorModule.INCUBATOR_MOTOR);
IncubatorSlot[] slots = incubator.getSlots();
ActModuleIncubatorTemperature temperatureMod = (ActModuleIncubatorTemperature)device.getActuator(ActuatorModule.INCUBATOR_TEMPERATURE);
Double temperature = temperatureMod.getTemperature();
return this.success(Map.of(
"temperature", temperature,
"slots", slots
));
}
@ResponseBody
@PostMapping("/api/device/start")
public ApiResponse start() {
this.deviceService.start();
@ -321,34 +336,7 @@ public class DeviceController extends BaseController {
));
}
@ResponseBody
@PostMapping("/api/device/incubator-status-get")
public ApiResponse incubatorStatusGet() {
List<Map<String,Object>> slots = new ArrayList<>();
for ( int i=0; i<20; i++) {
Map<String,Object> slot = new HashMap<>();
slot.put("index", Integer.toString(i));
slot.put("status", "INUSE");
slot.put("task", Map.of(
"recordUUID", "202110-01",
"samplePID", "ABCD1234",
"sampleUID", "016",
"projectName", "hsCRP",
"lotCode", "1234567890",
"tubeIndex", "05",
"tubeType", "WB",
"sampleType", "FB",
"incubateStartedAt", "2012-12-15 00:00:44",
"incubateTime", "3600"
));
slots.add(slot);
}
return this.success(Map.of(
"temperature", 37,
"slots", slots
));
}
@ResponseBody
@PostMapping("/api/device/test-tube-rack-status-get")

1
src/main/java/com/dreamworks/boditech/driver/Device.java

@ -90,6 +90,7 @@ public class Device {
this.appendActuator(new ActCodeScanner(ActuatorModule.ARM_Z_SCANNER, this));
this.appendActuator(new ActModuleTestCardBoxCase(ActuatorModule.TEST_CARD_BOX_CASE, this));
this.appendActuator(new ActModuleTestCardBoxCaseTemperature(ActuatorModule.TEST_CARD_BOX_CASE_TEMPERATURE, this));
this.appendActuator(new ActModuleIncubatorTemperature(ActuatorModule.INCUBATOR_TEMPERATURE, this));
this.bufferTubes.setup();
}

20
src/main/java/com/dreamworks/boditech/driver/actuator/ActModuleIncubatorTemperature.java

@ -0,0 +1,20 @@
package com.dreamworks.boditech.driver.actuator;
import com.dreamworks.boditech.driver.Device;
public class ActModuleIncubatorTemperature extends ActuatorBase {
// register : sensor temperature 0
public static final Integer REG_SENSOR_TEMPERATURE_0 = 200;
// constructor
public ActModuleIncubatorTemperature(Integer mid, Device device) {
super(mid, device);
}
// get temperature
public Double getTemperature() {
if ( !this.getDevice().enable ) {
return 99.99;
}
Integer rawTemperature = this.getRegister(ActModuleIncubatorTemperature.REG_SENSOR_TEMPERATURE_0);
return rawTemperature.doubleValue() / 100.0;
}
}

3
src/main/java/com/dreamworks/boditech/driver/actuator/ActuatorModule.java

@ -20,7 +20,10 @@ public class ActuatorModule {
public static Integer TEST_TUBE_RACK_MOVE_MOTOR = 62;
public static Integer TEST_TUBE_RACK_EXIT_MOTOR = 63;
public static Integer TEST_TUBE_RACK_SCANNER = 64;
public static Integer INCUBATOR_MOTOR = 71;
public static Integer INCUBATOR_TEMPERATURE = 51;
public static Integer ANALYSIS_PUSH_MOTOR = 92;
public static Integer ANALYSIS_SCAN_MOTOR = 91;
public static Integer ANALYSIS_SCAN_SCANNER = 93;

5
src/main/java/com/dreamworks/boditech/driver/entity/IncubatorSlot.java

@ -1,5 +1,7 @@
package com.dreamworks.boditech.driver.entity;
import com.dreamworks.boditech.driver.actuator.ActIncubator;
import com.fasterxml.jackson.annotation.JsonIgnore;
public class IncubatorSlot {
// index
public Integer index = -1;
@ -19,6 +21,7 @@ public class IncubatorSlot {
}
// get position of enter
@JsonIgnore
public Integer getEnterLocation() {
Integer offset = this.incubator.getDevice().getLocationByName("incubatorSlotInOffset");
Integer distance = this.incubator.getDevice().getLocationByName("incubatorSlotDistance");
@ -26,6 +29,7 @@ public class IncubatorSlot {
}
// get exit position
@JsonIgnore
public Integer getExitLocation() {
Integer offset = this.incubator.getDevice().getLocationByName("incubatorSlotOutOffset");
Integer distance = this.incubator.getDevice().getLocationByName("incubatorSlotDistance");
@ -37,6 +41,7 @@ public class IncubatorSlot {
}
// get test position
@JsonIgnore
public Integer getTestLocation() {
Integer offset = this.incubator.getDevice().getLocationByName("incubatorSlotTestHoleOffset");
Integer distance = this.incubator.getDevice().getLocationByName("incubatorSlotDistance");

Loading…
Cancel
Save