# # Set CODA run status from RCDB database # from org.csstudio.opibuilder.scriptUtil import PVUtil from org.csstudio.opibuilder.scriptUtil import WidgetUtil from org.csstudio.opibuilder.scriptUtil import ConsoleUtil from org.csstudio.utility.pv import PVFactory import re import os import sys import os.path import time import threading from java.lang import Thread, Runnable class StatusSettingTaskClass(Runnable): def __init__(self, pvList, wid ) : self.widget = wid self.pvs = pvList return def run(self): try: appFolder = os.environ['APP'] scriptFolder = appFolder + "/scripts/MISC/" statusValue = 0 mainPV = int( PVUtil.getDouble( self.pvs[0] ) ) runNumber = int( PVUtil.getDouble( self.pvs[1] ) ) sysCommand = scriptFolder + "set_coda_run_status.py GlueX_2come " + str(runNumber) + " " + str(statusValue) # ConsoleUtil.writeInfo( "Main PV is " + str(mainPV) + " : May issue command " + sysCommand ) if( mainPV == 1 ) : # ConsoleUtil.writeInfo( "Main PV is " + str(mainPV) + " : Will issue command " + sysCommand ) status = os.system(sysCommand) except Exception, e: ConsoleUtil.writeInfo( "There was a problem : " + str(e)) raise e # finally: # ConsoleUtil.writeInfo( "Finally" ) return # # # # Create an object that will set the status taskObject = StatusSettingTaskClass( pvs, widget ) # Create thread that will run the object to set the status statusThread = Thread( taskObject ) # Run the thread statusThread.start()