######################################################################## ### FILE: recover.mod ### PURPOSE: Power Failure Recovery ### ######################################################################## VAR MaxDownTime $[ 18 * 60 * 60 ] # 18hours max. down time for recovery VAR UpdateSavedTimeInterval $[ 60 * 60 ] # Commit saved time on a hourly basis DEFINT CheckAndRecover IF ${#Protocol:-} LVAR RecoverTime $(SYSTem:TIMe?) LVAR Elapsed $[ ${RecoverTime} - ${SavedTime:-0.0} ] LVAR RecoverSpec "-runTitle=\"${RunTitle:-Default}\"" \ "-protocol=\"${Protocol}\"" \ "-startTime=${RunStartTime:--}" \ "-interruptTime=${SavedTime:--}" \ "-recoverTime=${RecoverTime}" \ "-elapsedTime=$[ ${RecoverTime} - ${SavedTime:-0.0} ]" IF $[ ${Elapsed} < ${MaxDownTime} ] VAR Recovered ${RecoverSpec} PUBLish Run "Recovering ${RecoverSpec}" PROTocol ${Protocol} ${ProtocolText} LVAR RecoveredRun ${RunTitle:-} VAR- -ignoreMissing RunTitle RunProtocol -sampleVolume=${SampleVolume} -runMode=${RunMode} \ -coverTemperature=${CoverRunSetting} \ -coverLowTemperature=${CoverLowSetting} \ -coverLowTrigger=${CoverLowTrigger} \ -protocol=${Protocol} \ -runTitle=${RecoveredRun} \ -coverEnabled=${CoverRunControl} ELSe VAR- -ignoreMissing RunStartTime VAR- -ignoreMissing RunMode VAR- -ignoreMissing SampleVolume VAR- -ignoreMissing CoverRunControl VAR- -ignoreMissing CoverLowTrigger VAR- -ignoreMissing CoverLowSetting VAR- -ignoreMissing CoverRunSetting VAR- -ignoreMissing RunTitle VAR- -ignoreMissing Protocol VAR- -ignoreMissing Recovered VAR- -ignoreMissing SavedTime VAR- -ignoreMissing SavedStage VAR- -ignoreMissing SavedCycle VAR- -ignoreMissing SavedStep VAR- -ignoreMissing ProtocolText PUBLish Run "Discarding ${RecoverSpec}" DEFine RECOVERED? IF ${#Recovered:-} RETurn True ${Recovered} ELSe RETurn False CheckAndRecover