|
|
@ -1,16 +1,16 @@ |
|
|
|
package a8k.extui.page.extapp; |
|
|
|
|
|
|
|
import a8k.app.type.param.TemperatureCtrlParam; |
|
|
|
import a8k.app.service.param.pos.TemperatureCtrlParamMgr; |
|
|
|
import a8k.extui.type.ret.ExtApiCurve; |
|
|
|
import a8k.extui.factory.CurveBuilder; |
|
|
|
import a8k.extui.type.ExtApiStatu; |
|
|
|
import a8k.app.service.background.TemperatureCtrlService; |
|
|
|
import a8k.app.hardware.driver.TemperatureControlDriver; |
|
|
|
import a8k.app.service.background.TemperatureCtrlService; |
|
|
|
import a8k.app.service.param.pos.TemperatureCtrlParamMgr; |
|
|
|
import a8k.app.type.exception.AppException; |
|
|
|
import a8k.app.type.param.TemperatureCtrlParam; |
|
|
|
import a8k.extui.factory.CurveBuilder; |
|
|
|
import a8k.extui.mgr.ExtApiPageMgr; |
|
|
|
import jakarta.annotation.Resource; |
|
|
|
import a8k.extui.type.ExtApiStatu; |
|
|
|
import a8k.extui.type.ret.ExtApiCurve; |
|
|
|
import jakarta.annotation.PostConstruct; |
|
|
|
import jakarta.annotation.Resource; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
@ -20,7 +20,6 @@ import java.util.List; |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* |
|
|
|
*/ |
|
|
|
@Component |
|
|
|
@Slf4j |
|
|
@ -44,7 +43,8 @@ public class P02A8kTemperaturaVerfication { |
|
|
|
Double incubateBoxTemperatureCache = 0.0; |
|
|
|
Double plateBoxTemperatureCache = 0.0; |
|
|
|
Integer hasStartedTimeMS = 0; |
|
|
|
Double targetTemp; |
|
|
|
Double targetIncubateBoxTemp; |
|
|
|
Double targetPlateBoxTemp; |
|
|
|
Boolean workingFlag = false; |
|
|
|
|
|
|
|
|
|
|
@ -86,7 +86,7 @@ public class P02A8kTemperaturaVerfication { |
|
|
|
public void setIncubatorBoxTemperatureOff(Double offset) throws AppException, InterruptedException { |
|
|
|
temperatureCtrlParamMgr.setParam(TemperatureCtrlParam.IncubatorTCMTempOffset, offset); |
|
|
|
if (workingFlag) { |
|
|
|
startCtrl(targetTemp.intValue()); |
|
|
|
startCtrl(targetIncubateBoxTemp.intValue(), null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -94,20 +94,25 @@ public class P02A8kTemperaturaVerfication { |
|
|
|
public void setPlatesBoxTCMTempOffset(Double offset) throws AppException, InterruptedException { |
|
|
|
temperatureCtrlParamMgr.setParam(TemperatureCtrlParam.PlatesBoxTCMTempOffset, offset); |
|
|
|
if (workingFlag) { |
|
|
|
startCtrl(targetTemp.intValue()); |
|
|
|
startCtrl(null, targetPlateBoxTemp.intValue()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
synchronized public void startCtrl(Integer targetTemperature) throws AppException, InterruptedException { |
|
|
|
temperatureCtrlService.setTargetTemperature(targetTemperature); |
|
|
|
synchronized public void startCtrl(Integer targetIncubatorBoxTemperature, Integer targetPlatesBoxTemperature) throws AppException, InterruptedException { |
|
|
|
if (targetIncubatorBoxTemperature != null) { |
|
|
|
temperatureCtrlService.setTargetIncubatorTemperature(targetIncubatorBoxTemperature); |
|
|
|
targetIncubateBoxTemp = targetIncubatorBoxTemperature.doubleValue(); |
|
|
|
} |
|
|
|
if (targetPlatesBoxTemperature != null) { |
|
|
|
temperatureCtrlService.setTargetPlatesBoxTemperature(targetPlatesBoxTemperature); |
|
|
|
targetPlateBoxTemp = targetPlatesBoxTemperature.doubleValue(); |
|
|
|
} |
|
|
|
if (tempSampleThread != null) { |
|
|
|
tempSampleThread.interrupt(); |
|
|
|
tempSampleThread.join(); |
|
|
|
} |
|
|
|
hasStartedTimeMS = 0; |
|
|
|
targetTemp = (double) targetTemperature; |
|
|
|
|
|
|
|
tempSampleThread = new Thread(() -> { |
|
|
|
while (true) { |
|
|
|
try { |
|
|
@ -141,11 +146,11 @@ public class P02A8kTemperaturaVerfication { |
|
|
|
} |
|
|
|
|
|
|
|
public ExtApiCurve showIncubateBoxTemperatureCurve() { |
|
|
|
return CurveBuilder.buidCurve("孵育盘温度曲线", "time", "value", targetTemp - 10, targetTemp + 10, incubateBoxTemperatureCurve); |
|
|
|
return CurveBuilder.buidCurve("孵育盘温度曲线", "time", "value", targetIncubateBoxTemp - 10, targetIncubateBoxTemp + 10, incubateBoxTemperatureCurve); |
|
|
|
} |
|
|
|
|
|
|
|
public ExtApiCurve showPlateBoxTemperatureCurve() { |
|
|
|
return CurveBuilder.buidCurve("板夹仓温度曲线", "time", "value", targetTemp - 10, targetTemp + 10, plateBoxTemperatureCurve); |
|
|
|
return CurveBuilder.buidCurve("板夹仓温度曲线", "time", "value", targetPlateBoxTemp - 10, targetPlateBoxTemp + 10, plateBoxTemperatureCurve); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|