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; package com.dreamworks.boditech.driver.actuator;
import com.dreamworks.boditech.driver.Device; import com.dreamworks.boditech.driver.Device;
import com.dreamworks.boditech.driver.entity.IncubatorSlot; import com.dreamworks.boditech.driver.entity.IncubatorSlot;
import com.dreamworks.boditech.utils.MyCommon;
public class ActIncubator extends ActMotor { public class ActIncubator extends ActMotor {
// slots // slots
private final IncubatorSlot[] slots; private final IncubatorSlot[] slots;
@ -41,11 +42,13 @@ public class ActIncubator extends ActMotor {
// lock slot // lock slot
public void lockSlot( int index ) { public void lockSlot( int index ) {
this.slots[index].isFree = false; this.slots[index].isFree = false;
this.updateRuntimeSlotStatus();
} }
// unlock slot // unlock slot
public void unlockSlot( int index ) { public void unlockSlot( int index ) {
this.slots[index].isFree = true; this.slots[index].isFree = true;
this.updateRuntimeSlotStatus();
} }
// has locked slot // has locked slot
@ -57,4 +60,12 @@ public class ActIncubator extends ActMotor {
} }
return false; 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.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.Map;
import java.util.Objects; import java.util.Objects;
public class TaskStartReset extends TaskBase { public class TaskStartReset extends TaskBase {
// mode : normal // mode : normal
@ -114,22 +116,36 @@ public class TaskStartReset extends TaskBase {
LOG.info("[reset] task finished, cost {}s", (System.currentTimeMillis() - startTime)/1000.00); LOG.info("[reset] task finished, cost {}s", (System.currentTimeMillis() - startTime)/1000.00);
} }
// clean incubator if error
/**
* 清理孵育盘 孵育盘卡位状态由数据库获取清理完成后重置数据库变量
* 数据库变量由每次获取和释放孵育盘卡位时更新
*/
private void cleanIncubatorIfError() { private void cleanIncubatorIfError() {
if ( !Objects.equals(this.mode, TaskStartReset.MODE_ERROR) ) { if ( !Objects.equals(this.mode, TaskStartReset.MODE_ERROR) ) {
return; return;
} }
this.analysisScanMotor.moveTo("analysisScanMotorDropCard");
ActIncubator incubatorMotor = (ActIncubator)device.getActuator(ActuatorModule.INCUBATOR_MOTOR); 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("analysisPushMotorScanStart");
this.analysisPushMotor.moveTo("analysisPushMotorStandby"); this.analysisPushMotor.moveTo("analysisPushMotorStandby");
} }
this.analysisScanMotor.moveTo("analysisScanMotorStandBy"); this.analysisScanMotor.moveTo("analysisScanMotorStandBy");
this.device.runtimeVariableService.setString("DeviceIncubatorSlots", "[]");
LOG.info("[reset] incubator clean finished");
} }
// clean analysis scan track if error // 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 * reset device
*/ */
public void reset() { 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(); TaskStartReset task = new TaskStartReset();
task.mode = TaskStartReset.MODE_NORMAL; 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); Executor.executeTask(this.device, task);
this.runtimeVariableService.setString("DeviceWorkingStatus","RUNNING"); this.runtimeVariableService.setString("DeviceWorkingStatus","RUNNING");
} }

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

@ -1,5 +1,6 @@
package com.dreamworks.boditech.service; package com.dreamworks.boditech.service;
import com.dreamworks.boditech.mapper.RuntimeVariableMapper; import com.dreamworks.boditech.mapper.RuntimeVariableMapper;
import com.dreamworks.boditech.utils.MyCommon;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
@ -40,4 +41,16 @@ public class RuntimeVariableService {
public void setString(String variableName, String variableValue) { public void setString(String variableName, String variableValue) {
this.runtimeVariableMapper.setVariableValue(variableName, 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