|
|
@ -7,6 +7,7 @@ import a8k.app.iflytophald.driver.OutputIOCtrlDriver; |
|
|
|
import a8k.app.iflytophald.driver.WaterTemperatureControllerDriver; |
|
|
|
import a8k.app.iflytophald.type.protocol.InputIOId; |
|
|
|
import a8k.app.iflytophald.type.protocol.TemperatureControlerMid; |
|
|
|
import a8k.app.service.setting.AppSettingsMgrService; |
|
|
|
import a8k.app.service.statemgr.AppFlagStateMgr; |
|
|
|
import a8k.app.service.statemgr.GStateMgrService; |
|
|
|
import a8k.app.service.statemgr.OptScanModuleStateMgr; |
|
|
@ -33,6 +34,7 @@ public class TemperatureSyncService { |
|
|
|
private final GStateMgrService gStateMgrService; |
|
|
|
private final WaterTemperatureControllerDriver waterTemperatureControllerDriver; |
|
|
|
private final A8kCanBusBaseDriver canBus; |
|
|
|
private final AppSettingsMgrService appSettingsMgrService; |
|
|
|
|
|
|
|
|
|
|
|
List<TemperatureRecordPoint> incubateBoxTemperatureCurve = new ArrayList<>(); |
|
|
@ -104,24 +106,32 @@ public class TemperatureSyncService { |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
Double incubateBoxTemp = waterTemperatureControllerDriver.readTemperature(TemperatureControlerMid.IncubatorTCM); |
|
|
|
gStateMgrService.updateIncubateBoxTemperature((int) (incubateBoxTemp + 0.5)); |
|
|
|
Double incubateBoxTemp = waterTemperatureControllerDriver.readTemperature(TemperatureControlerMid.IncubatorTCM); |
|
|
|
double incubateBoxTempTarget = (double) appSettingsMgrService.getDeviceSetting().getIncubateBoxTemperature(); |
|
|
|
gStateMgrService.updateIncubateBoxTemperature((int) (incubateBoxTemp + 0.5), isTempReady(incubateBoxTemp, incubateBoxTempTarget)); |
|
|
|
addIncubateBoxTemperatureCurve(incubateBoxTemp); |
|
|
|
} catch (AppException e) { |
|
|
|
addIncubateBoxTemperatureCurve(0.0); |
|
|
|
gStateMgrService.updateIncubateBoxTemperature(0); |
|
|
|
gStateMgrService.updateIncubateBoxTemperature(0, false); |
|
|
|
log.warn("Failed to read incubate box temperature: {}", e.getMessage()); |
|
|
|
} |
|
|
|
|
|
|
|
try { |
|
|
|
Double pbtemp = waterTemperatureControllerDriver.readTemperature(TemperatureControlerMid.PlatesBoxTCM); |
|
|
|
gStateMgrService.updatePboxTemperature((int) (pbtemp + 0.5)); |
|
|
|
addPlateBoxTemperatureCurve(pbtemp); |
|
|
|
Double pbtemp = waterTemperatureControllerDriver.readTemperature(TemperatureControlerMid.PlatesBoxTCM); |
|
|
|
double pbtempTarget = (double) appSettingsMgrService.getDeviceSetting().getPlateBoxTemperature(); |
|
|
|
|
|
|
|
gStateMgrService.updatePboxTemperature((int) (pbtemp + 0.5), isTempReady(pbtemp, pbtempTarget)); |
|
|
|
} catch (AppException e) { |
|
|
|
addPlateBoxTemperatureCurve(0.0); |
|
|
|
gStateMgrService.updatePboxTemperature(0); |
|
|
|
gStateMgrService.updatePboxTemperature(0, false); |
|
|
|
log.warn("Failed to read plate box temperature: {}", e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private boolean isTempReady(double nowtemp, double targettemp) { |
|
|
|
//TODO:改成可配置 |
|
|
|
if (Math.abs(nowtemp - targettemp) < 1) { |
|
|
|
return true; |
|
|
|
} |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |