예제 #1
0
 def saveDocumentAs(self, url):
     # here you save of the application to the XML file
     da = XmlDataAdaptor.newEmptyDocumentAdaptor()
     root_da = da.createChild("Warm_Linac_SetUp")
     self.warm_linac_rf_setup_document.main_loop_controller.writeDataToXML(
         root_da)
     da.writeToUrl(url)
예제 #2
0
 def readData(self, url):
     monitor_controller = self.event_monitor_document.monitor_controller
     monitor_controller.event_holder.clean()
     monitor_controller.events_table.getModel().fireTableDataChanged()
     #------- event handler configuration
     event_handler = monitor_controller.event_handler
     event_handler.clean()
     da = XmlDataAdaptor.adaptorForUrl(url, false)
     root_da = da.childAdaptor("Event_Monitor")
     buff_size_time = root_da.doubleValue("buff_size_time")
     event_buff_size = root_da.doubleValue("event_buff_size")
     min_limit = root_da.doubleValue("min_limit")
     max_limit = root_da.doubleValue("max_limit")
     trigger_pv_name = root_da.stringValue("triggerPV")
     eventDir = root_da.stringValue("eventDir")
     monitor_controller.buffer_size_text.setValue(buff_size_time)
     monitor_controller.event_buffer_size_text.setValue(event_buff_size)
     monitor_controller.min_limit_text.setValue(min_limit)
     monitor_controller.max_limit_text.setValue(max_limit)
     event_handler.setTriggerMonitor(trigger_pv_name)
     monitor_controller.pvTriggerJText.setText(trigger_pv_name)
     monitor_controller.dumpDirJText.setText(eventDir)
     for pv_da in root_da.childAdaptors():
         pv_name = pv_da.stringValue("pv_name")
         event_handler.addPV_Value_Monitor(pv_name)
     event_handler.setMonitoring(false)
     monitor_controller.sinceTimeJText.setText("Not Running.")
     monitor_controller.dump_button.setSelected(false)
     monitor_controller.pv_monitored_table.getModel().fireTableDataChanged()
예제 #3
0
	def readData(self, url):
		ws_lw_acquisition_controller = self.linac_wizard_document.getWS_LW_Controller()
		da = XmlDataAdaptor.adaptorForUrl(url,false)
		root_da = da.childAdaptor("LINAC_Wizard")		
		title = root_da.stringValue("Title")
		seqNames = root_da.stringValue("AccSequence").split()
		if(len(seqNames) != 0): 
			#------set up selected names in the SetUp tables
			linac_setup_controller	= self.linac_wizard_document.getSetUp_Controller()
			linac_setup_controller.setSelectedSequences(seqNames[0],seqNames[len(seqNames)-1])
			#-----------------------------------------------
			lst = ArrayList()
			for seqName in seqNames:
				lst.add(self.accl.getSequence(seqName))
			accSeq = AcceleratorSeqCombo("SEQUENCE", lst)
			self.linac_wizard_document.ws_lw_controller.cleanOldWSdata()
			self.linac_wizard_document.setAccSeq(accSeq)
			nodes = accSeq.getAllNodes(true)
			name_to_node_dict = {}
			for node in nodes:
				name_to_node_dict[node.getId()] = node	
			#-----add cavities to the nodes dictinary ------------
			for cav in ws_lw_acquisition_controller.cavs:
				name_to_node_dict[cav.getId()] = cav	
			#----read WS or LW wave_form data
			self.readData_WS_LW_Records(root_da,name_to_node_dict)
			#----read Initial Twiss and beam parameters
			self.readTransverseTwiss(root_da)
		#---- read SCL Phase Scan data
		self.linac_wizard_document.scl_long_tuneup_controller.clean()
		self.linac_wizard_document.scl_long_tuneup_controller.readDataFromXML(root_da)		
		self.linac_wizard_document.scl_long_tuneup_controller.updateAllTables()
	def readData(self, url):
		monitor_controller = self.event_monitor_document.monitor_controller
		monitor_controller.event_holder.clean()
		monitor_controller.events_table.getModel().fireTableDataChanged()
		#------- event handler configuration
		event_handler = monitor_controller.event_handler 
		event_handler.clean()
		da = XmlDataAdaptor.adaptorForUrl(url,false)
		root_da = da.childAdaptor("Event_Monitor")
		buff_size_time = root_da.doubleValue("buff_size_time") 
		event_buff_size = root_da.doubleValue("event_buff_size")
		min_limit = root_da.doubleValue("min_limit")
		max_limit = root_da.doubleValue("max_limit")
		trigger_pv_name = root_da.stringValue("triggerPV")
		eventDir = root_da.stringValue("eventDir")
		monitor_controller.buffer_size_text.setValue(buff_size_time)
		monitor_controller.event_buffer_size_text.setValue(event_buff_size)
		monitor_controller.min_limit_text.setValue(min_limit)
		monitor_controller.max_limit_text.setValue(max_limit)
		event_handler.setTriggerMonitor(trigger_pv_name)
		monitor_controller.pvTriggerJText.setText(trigger_pv_name)
		monitor_controller.dumpDirJText.setText(eventDir)
		for pv_da in root_da.childAdaptors():
			pv_name = pv_da.stringValue("pv_name")
			event_handler.addPV_Value_Monitor(pv_name)
		event_handler.setMonitoring(false)
		monitor_controller.sinceTimeJText.setText("Not Running.")
		monitor_controller.dump_button.setSelected(false)
		monitor_controller.pv_monitored_table.getModel().fireTableDataChanged()
	def readData(self, url):
		ws_lw_acquisition_controller = self.linac_wizard_document.getWS_LW_Controller()
		da = XmlDataAdaptor.adaptorForUrl(url,false)
		root_da = da.childAdaptor("LINAC_Wizard")		
		title = root_da.stringValue("Title")
		seqNames = root_da.stringValue("AccSequence").split()
		if(len(seqNames) != 0): 
			#------set up selected names in the SetUp tables
			linac_setup_controller	= self.linac_wizard_document.getSetUp_Controller()
			linac_setup_controller.setSelectedSequences(seqNames[0],seqNames[len(seqNames)-1])
			#-----------------------------------------------
			lst = ArrayList()
			for seqName in seqNames:
				lst.add(self.accl.getSequence(seqName))
			accSeq = AcceleratorSeqCombo("SEQUENCE", lst)
			self.linac_wizard_document.ws_lw_controller.cleanOldWSdata()
			self.linac_wizard_document.setAccSeq(accSeq)
			nodes = accSeq.getAllNodes(true)
			name_to_node_dict = {}
			for node in nodes:
				name_to_node_dict[node.getId()] = node	
			#-----add cavities to the nodes dictinary ------------
			for cav in ws_lw_acquisition_controller.cavs:
				name_to_node_dict[cav.getId()] = cav	
			#----read WS or LW wave_form data
			self.readData_WS_LW_Records(root_da,name_to_node_dict)
			#----read Initial Twiss and beam parameters
			self.readTransverseTwiss(root_da)
		#---- read SCL Phase Scan data
		self.linac_wizard_document.scl_long_tuneup_controller.clean()
		self.linac_wizard_document.scl_long_tuneup_controller.readDataFromXML(root_da)		
		self.linac_wizard_document.scl_long_tuneup_controller.updateAllTables()
예제 #6
0
	def writeData(self, url):
		da = XmlDataAdaptor.newEmptyDocumentAdaptor()
		root_da = da.createChild("LINAC_Wizard")
		root_da.setValue("Title", url.getFile())
		root_da.setValue("AccSequence", self.getSeqNames())
		#---- write WS or LW data records --------
		self.writeData_WS_LW_Records(root_da)
		#---- write Initial Twiss and beam parameters --------
		self.writeTransverseTwiss(root_da)
		#---- write SCL Phase Scan data
		self.linac_wizard_document.scl_long_tuneup_controller.writeDataToXML(root_da)
		#---- dump data into the file ------------
		da.writeToUrl(url)
	def writeData(self, url):
		da = XmlDataAdaptor.newEmptyDocumentAdaptor()
		root_da = da.createChild("LINAC_Wizard")
		root_da.setValue("Title", url.getFile())
		root_da.setValue("AccSequence", self.getSeqNames())
		#---- write WS or LW data records --------
		self.writeData_WS_LW_Records(root_da)
		#---- write Initial Twiss and beam parameters --------
		self.writeTransverseTwiss(root_da)
		#---- write SCL Phase Scan data
		self.linac_wizard_document.scl_long_tuneup_controller.writeDataToXML(root_da)
		#---- dump data into the file ------------
		da.writeToUrl(url)
	def actionPerformed(self,actionEvent):
		self.scl_long_tuneup_controller.getMessageTextField().setText("")	
		rightNow = Calendar.getInstance()
		date_format = SimpleDateFormat("MM.dd.yyyy")
		time_str = date_format.format(rightNow.getTime())				
		fc = JFileChooser(constants_lib.const_path_dict["XAL_XML_ACC_FILES_DIRS_PATH"])
		fc.setDialogTitle("Save SCL data into the SCL_new.xdxf file")
		fc.setApproveButtonText("Save")
		fl_filter = FileNameExtensionFilter("SCL Acc File",["xdxf",])
		fc.setFileFilter(fl_filter)
		fc.setSelectedFile(File("SCL_"+time_str+".xdxf"))		
		returnVal = fc.showOpenDialog(self.scl_long_tuneup_controller.linac_wizard_document.linac_wizard_window.frame)
		if(returnVal == JFileChooser.APPROVE_OPTION):
			fl_out = fc.getSelectedFile()
			fl_path = fl_out.getPath()
			if(fl_path.rfind(".xdxf") != (len(fl_path) - 5)):
				fl_out = File(fl_out.getPath()+".xdxf")	
			#---------prepare the XmlDataAdaptor 
			root_DA = XmlDataAdaptor.newEmptyDocumentAdaptor()
			scl_DA = root_DA.createChild("xdxf")	
			scl_DA.setValue("date",time_str)
			scl_DA.setValue("system","sns")
			scl_DA.setValue("version","2.0")
			#---- SCLMed	
			seq_name_arr = ["SCLMed","SCLHigh","HEBT1"]
			for seq_name in seq_name_arr:
				accl = self.scl_long_tuneup_controller.linac_wizard_document.accl
				seq = accl.findSequence(seq_name)
				cavs = seq.getAllNodesWithQualifier(AndTypeQualifier().and((OrTypeQualifier()).or(SCLCavity.s_strType)))
				quads = seq.getAllNodesWithQualifier(AndTypeQualifier().and((OrTypeQualifier()).or(Quadrupole.s_strType)))
				scl_seq_DA = scl_DA.createChild("sequence")
				scl_seq_DA.setValue("id",seq.getId())
				for quad in quads:
					node_DA = scl_seq_DA.createChild("node")
					node_DA.setValue("id",quad.getId())
					attr_DA = node_DA.createChild("attributes")
					field_DA = attr_DA.createChild("magnet")
					scl_quad_fields_dict_holder = self.scl_long_tuneup_controller.scl_long_tuneup_init_controller.scl_quad_fields_dict_holder
					field_DA.setValue("dfltMagFld",str(scl_quad_fields_dict_holder.quad_field_dict[quad]))
				for cav in cavs:
					node_DA = scl_seq_DA.createChild("sequence")
					node_DA.setValue("id",cav.getId())
					attr_DA = node_DA.createChild("attributes")
					rf_cav_DA = attr_DA.createChild("rfcavity")
					cav_wrappper = self.scl_long_tuneup_controller.getCav_WrapperForCavId(cav.getId())
					(amp,phase) =  (cav_wrappper.designAmp,cav_wrappper.designPhase)
					rf_cav_DA.setValue("amp",float("%8.5f"%amp))
					rf_cav_DA.setValue("phase",float("%8.3f"%phase))
			root_DA.writeTo(fl_out)		
예제 #9
0
	def writeData(self, url):
		monitor_controller = self.event_monitor_document.monitor_controller
		da = XmlDataAdaptor.newEmptyDocumentAdaptor()
		root_da = da.createChild("Event_Monitor")
		root_da.setValue("buff_size_time", monitor_controller.buffer_size_text.getValue())
		root_da.setValue("event_buff_size", monitor_controller.event_buffer_size_text.getValue())
		root_da.setValue("min_limit", monitor_controller.min_limit_text.getValue())		
		root_da.setValue("max_limit", monitor_controller.max_limit_text.getValue())		
		root_da.setValue("triggerPV", monitor_controller.pvTriggerJText.getText())	
		root_da.setValue("eventDir", monitor_controller.dumpDirJText.getText())	
		event_handler = monitor_controller.event_handler
		pv_monitors = monitor_controller.event_handler.pv_monitors[:]
		for pv_monitor in pv_monitors:
			pv_name = pv_monitor.getPV_Name()
			pv_da = root_da.createChild("monitored_pv")
			pv_da.setValue("pv_name",pv_name)
		#---- dump data into the file ------------
		da.writeToUrl(url)
		self.filePathJText.setText(url.getFile())
예제 #10
0
 def readWarm_Linac_RF_SetUp_Document(self, url):
     # here you put the initialization of the application from the XML file
     da = XmlDataAdaptor.adaptorForUrl(url, false)
     root_da = da.childAdaptor("Warm_Linac_SetUp")
     self.warm_linac_rf_setup_document.main_loop_controller.readDataFromXML(
         root_da)
예제 #11
0
from java.net import URL

import sys

import os

sys.path.insert(0,"/Users/j72/git/openxal/core/src/xal/tools")

from pythonTools import urlFinder

urlDataFile = urlFinder.fetchURL("sns_pyorbit_linac_structure_untested.xml")

print(urlDataFile)

daptDoc = XmlDataAdaptor.adaptorForUrl(urlDataFile,False)

daptLinac = daptDoc.childAdaptor("SNS_Linac")
lstDaptSeq = daptLinac.childAdaptors("accSeq")
name_array = []
ttf_array = []
ttfp_array = []
stf_array = []
stfp_array = []
beta_array = []
with open("AndreiTTFData.DAT",'w') as Attf:
    Attf.truncate(0)
    for daptSeq in lstDaptSeq:
        strSeqId = daptSeq.stringValue("name")
        dblSeqLng = daptSeq.doubleValue("length")
        
	def readWarm_Linac_RF_SetUp_Document(self,url):
		# here you put the initialization of the application from the XML file 
		da = XmlDataAdaptor.adaptorForUrl(url,false)
		root_da = da.childAdaptor("Warm_Linac_SetUp")		
		self.warm_linac_rf_setup_document.main_loop_controller.readDataFromXML(root_da)
	def saveDocumentAs(	self,url):
		# here you save of the application to the XML file 
		da = XmlDataAdaptor.newEmptyDocumentAdaptor()
		root_da = da.createChild("Warm_Linac_SetUp")	
		self.warm_linac_rf_setup_document.main_loop_controller.writeDataToXML(root_da)
		da.writeToUrl(url)
예제 #14
0
        if len(gap_id) == 2:
            new_name = new_name.replace('Rg' + gap_id,
                                        'RF:Cav0' + cav_id + ':Rg' + gap_id)
        else:
            new_name = new_name.replace('Rg' + gap_id,
                                        'RF:Cav0' + cav_id + ':Rg0' + gap_id)
        n_arr[n_arr.index(name)] = new_name
    elif name.startswith('SCL'):
        new_name = name.replace('SCL', 'SCL_RF')
        gap_id = new_name[-1]
        new_name = new_name.replace('Rg' + gap_id, 'Rg0' + gap_id)
        n_arr[n_arr.index(name)] = new_name
    else:
        pass

daptDoc = XmlDataAdaptor.adaptorForUrl(file_url, False)

daptWrite = XmlDataAdaptor.newEmptyDocumentAdaptor()

daptLinac = daptDoc.childAdaptor("xdxf")

lstDaptSeq = daptLinac.childAdaptors("sequence")

primseq = []
subseq = []
nodes = []
box = dict()
box2 = dict()

# START1-------------------------------------
for seq in lstDaptSeq:  # go through all of the sequences in the list of primary sequences