Browse Source

设备状态名称国际化

master
sige 2 years ago
parent
commit
f1f10fda5f
  1. 11
      src/main/java/com/dreamworks/boditech/driver/actuator/ActIncubator.java
  2. 26
      src/main/java/com/dreamworks/boditech/driver/task/TaskStartReset.java
  3. 11
      src/main/java/com/dreamworks/boditech/service/DeviceService.java
  4. 13
      src/main/java/com/dreamworks/boditech/service/RuntimeVariableService.java

11
src/main/java/com/dreamworks/boditech/driver/actuator/ActIncubator.java

@ -1,6 +1,7 @@
package com.dreamworks.boditech.driver.actuator;
import com.dreamworks.boditech.driver.Device;
import com.dreamworks.boditech.driver.entity.IncubatorSlot;
import com.dreamworks.boditech.utils.MyCommon;
public class ActIncubator extends ActMotor {
// slots
private final IncubatorSlot[] slots;
@ -41,11 +42,13 @@ public class ActIncubator extends ActMotor {
// lock slot
public void lockSlot( int index ) {
this.slots[index].isFree = false;
this.updateRuntimeSlotStatus();
}
// unlock slot
public void unlockSlot( int index ) {
this.slots[index].isFree = true;
this.updateRuntimeSlotStatus();
}
// has locked slot
@ -57,4 +60,12 @@ public class ActIncubator extends ActMotor {
}
return false;
}
// update runtime slot status
private void updateRuntimeSlotStatus() {
this.getDevice().runtimeVariableService.setString(
"DeviceIncubatorSlots",
MyCommon.objectToJson(this.slots)
);
}
}

26
src/main/java/com/dreamworks/boditech/driver/task/TaskStartReset.java

@ -8,6 +8,8 @@ import com.dreamworks.boditech.service.AccountService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public class TaskStartReset extends TaskBase {
// mode : normal
@ -114,22 +116,36 @@ public class TaskStartReset extends TaskBase {
LOG.info("[reset] task finished, cost {}s", (System.currentTimeMillis() - startTime)/1000.00);
}
// clean incubator if error
/**
* 清理孵育盘 孵育盘卡位状态由数据库获取清理完成后重置数据库变量
* 数据库变量由每次获取和释放孵育盘卡位时更新
*/
private void cleanIncubatorIfError() {
if ( !Objects.equals(this.mode, TaskStartReset.MODE_ERROR) ) {
return;
}
this.analysisScanMotor.moveTo("analysisScanMotorDropCard");
ActIncubator incubatorMotor = (ActIncubator)device.getActuator(ActuatorModule.INCUBATOR_MOTOR);
IncubatorSlot[] incubatorSlots = incubatorMotor.getSlots();
for ( IncubatorSlot incubatorSlot : incubatorSlots ) {
incubatorMotor.moveTo(incubatorSlot.getExitLocation());
this.analysisScanMotor.moveTo("analysisScanMotorDropCard");
List<Map<String,Object>> slots = this.device.runtimeVariableService.getJson("DeviceIncubatorSlots", List.class);
for ( Map<String,Object> slotInfo : slots ) {
Boolean isFree = (Boolean)slotInfo.get("isFree");
if ( isFree ) {
continue;
}
Integer index = (Integer)slotInfo.get("index");
IncubatorSlot slot = incubatorMotor.getSlotByIndex(index);
LOG.info("[reset] incubator slot clean index {}", index);
incubatorMotor.moveTo(slot.getExitLocation());
this.analysisPushMotor.moveTo("analysisPushMotorScanStart");
this.analysisPushMotor.moveTo("analysisPushMotorStandby");
}
this.analysisScanMotor.moveTo("analysisScanMotorStandBy");
this.device.runtimeVariableService.setString("DeviceIncubatorSlots", "[]");
LOG.info("[reset] incubator clean finished");
}
// clean analysis scan track if error

11
src/main/java/com/dreamworks/boditech/service/DeviceService.java

@ -34,13 +34,14 @@ public class DeviceService {
* reset device
*/
public void reset() {
// String deviceWorkingStatus = this.runtimeVariableService.getString("DeviceWorkingStatus");
// if ( !errorReset && "RUNNING".equals(deviceWorkingStatus) ) {
// throw new RuntimeException("DEVICE_RESET_NOT_CLEAN");
// }
TaskStartReset task = new TaskStartReset();
task.mode = TaskStartReset.MODE_NORMAL;
String deviceWorkingStatus = this.runtimeVariableService.getString("DeviceWorkingStatus");
if ( "RUNNING".equals(deviceWorkingStatus) ) {
task.mode = TaskStartReset.MODE_ERROR;
}
Executor.executeTask(this.device, task);
this.runtimeVariableService.setString("DeviceWorkingStatus","RUNNING");
}

13
src/main/java/com/dreamworks/boditech/service/RuntimeVariableService.java

@ -1,5 +1,6 @@
package com.dreamworks.boditech.service;
import com.dreamworks.boditech.mapper.RuntimeVariableMapper;
import com.dreamworks.boditech.utils.MyCommon;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
@Service
@ -40,4 +41,16 @@ public class RuntimeVariableService {
public void setString(String variableName, String variableValue) {
this.runtimeVariableMapper.setVariableValue(variableName, variableValue);
}
// get json value
public <T> T getJson(String variableName, Class<T> clazz ) {
String json = this.getString(variableName);
return MyCommon.jsonToObject(json, clazz);
}
// set json value
public void setJson(String variableName, Object variableValue) {
String json = MyCommon.objectToJson(variableValue);
this.setString(variableName, json);
}
}
Loading…
Cancel
Save