81 lines
2.5 KiB
Python
81 lines
2.5 KiB
Python
from org.csstudio.opibuilder.scriptUtil import PVUtil, ConsoleUtil, ColorFontUtil
|
|
from java.lang import Thread, Runnable
|
|
|
|
startButton2 = display.getWidget("Start_Button2")
|
|
stopButton2 = display.getWidget("Stop_Button2")
|
|
resetButton2 = display.getWidget("Reset_Button2")
|
|
|
|
bar2 = display.getWidget("Progress_Bar2")
|
|
startb2 = display.getWidget("Start_Boolean_Button_1")
|
|
|
|
hourText2 = display.getWidget("hourText2")
|
|
hourPV2=hourText2.getPV()
|
|
minText2 = display.getWidget("minText2")
|
|
minPV2=minText2.getPV()
|
|
secText2 = display.getWidget("secText2")
|
|
secPV2=secText2.getPV()
|
|
|
|
timerLabel2 = display.getWidget("timerLabel2")
|
|
|
|
|
|
class Timer2(Runnable):
|
|
def run(self):
|
|
startButton2.setEnabled(True)
|
|
stopButton2.setEnabled(True)
|
|
resetButton2.setEnabled(True)
|
|
|
|
hourText2.setEnabled(True)
|
|
minText2.setEnabled(True)
|
|
secText2.setEnabled(True)
|
|
hour2 = 0
|
|
min2 = 30
|
|
sec2 = 0
|
|
timerLabel2.setPropertyValue("foreground_color", ColorFontUtil.BLACK)
|
|
timerLabel2.setPropertyValue("text", "Timer")
|
|
stopped=False
|
|
total2 = hour2*3600+min2*60+sec2
|
|
for i in range(total2,-1,-1):
|
|
if not display.isActive():
|
|
return
|
|
if PVUtil.getLong(pvs[0])==0:
|
|
stopped = True
|
|
break
|
|
pvs[1].setValue(100-100*i/total2)
|
|
hourPV2.setValue(int(i/3600))
|
|
minPV2.setValue(int(i%3600/60))
|
|
secPV2.setValue(int(i%60))
|
|
Thread.sleep(1000)
|
|
|
|
timerLabel2.setPropertyValue("foreground_color", ColorFontUtil.BLACK)
|
|
if stopped:
|
|
bar2.getPV().setValue(0)
|
|
timerLabel2.setPropertyValue("text", "Stopped!")
|
|
if PVUtil.getDouble(pvs[3]) == 1:
|
|
pvs[0].setValue(1)
|
|
else:
|
|
pvs[0].setValue(0)
|
|
hourPV2.setValue(hour2)
|
|
minPV2.setValue(min2)
|
|
secPV2.setValue(sec2)
|
|
else:
|
|
bar2.getPV().setValue(0)
|
|
pvs[0].setValue(0)
|
|
timerLabel2.setPropertyValue("text", "Timeout!")
|
|
widget.executeAction(0)
|
|
hourPV2.setValue(hour2)
|
|
minPV2.setValue(min2)
|
|
secPV2.setValue(sec2)
|
|
pvs[2].setValue(0)
|
|
|
|
startButton2.setEnabled(True)
|
|
stopButton2.setEnabled(True)
|
|
resetButton2.setEnabled(True)
|
|
|
|
hourText2.setEnabled(True)
|
|
minText2.setEnabled(True)
|
|
secText2.setEnabled(True)
|
|
|
|
if PVUtil.getLong(pvs[0])==1:
|
|
thread =Thread(Timer2());
|
|
thread.start()
|