Ejemplo n.º 1
0
from org.csstudio.opibuilder.scriptUtil import PVUtil, WidgetUtil, ConsoleUtil

xcoords = PVUtil.getDoubleArray(pvArray[0])
ycoords = PVUtil.getDoubleArray(pvArray[1])
size = PVUtil.getDoubleArray(pvArray[2])
layer = PVUtil.getDoubleArray(pvArray[3])
wlayer = int(widget.getMacroValue("LAYER"))
s = 16

#ConsoleUtil.writeInfo(str(xcoords[5]))
for n in range(0, 231):
    if not size[n] == 999:
        linkingContainer = WidgetUtil.createWidgetModel(
            "org.csstudio.opibuilder.widgets.linkingContainer")
        linkingContainer.setPropertyValue("opi_file", "tile.opi")
        linkingContainer.addMacro("ID", str(n))
        linkingContainer.setPropertyValue("resize_behaviour", 2)
        linkingContainer.setPropertyValue("border_style", 2)
        l = int(layer[n])
        ConsoleUtil.writeInfo(str(l) + "    " + str(wlayer))
        if l == wlayer:
            side = s * size[n]
            posx = (180 + s * xcoords[n])
            posy = (180 - s * ycoords[n])
            if size[n] == 1:
                posy = posy + s
            #ConsoleUtil.writeInfo(str(posx) + "    " + str(posy))
            linkingContainer.setPropertyValue("x", posx)
            linkingContainer.setPropertyValue("y", posy)
            linkingContainer.setPropertyValue("width", side)
            linkingContainer.setPropertyValue("height", side)
Ejemplo n.º 2
0
from org.csstudio.opibuilder.scriptUtil import PVUtil, ConsoleUtil

table = widget.getTable()

times = PVUtil.getDoubleArray(pvs[0])
codes = PVUtil.getDoubleArray(pvs[1])
mask = PVUtil.getDoubleArray(pvs[2])
ena = PVUtil.getDoubleArray(pvs[3])

N = min(len(times), len(codes), len(mask), len(ena))

while table.getRowCount() < N:
    table.insertRow(table.getRowCount())

while table.getRowCount() > N:
    table.deleteRow(table.getRowCount() - 1)

times, codes, mask, ena = times[:N], codes[:N], mask[:N], ena[:N]

for row, (T, C, M, EN) in enumerate(zip(times, codes, mask, ena)):
    table.setCellText(row, 0, str(T))
    table.setCellText(row, 1, "%d" % C)
    table.setCellText(row, 2, "%d" % M)
    table.setCellText(row, 3, "%d" % EN)
Ejemplo n.º 3
0
from org.csstudio.opibuilder.scriptUtil import PVUtil, DataUtil
import math

ref_orbit_pv = pvArray[0]
bpm_pos_pv   = pvArray[1]
orbit_pv     = pvArray[2]
y_pv         = pvArray[3]

try:
    bpm_pos   = PVUtil.getDoubleArray(bpm_pos_pv)
    ref_orbit = PVUtil.getDoubleArray(ref_orbit_pv)
    orbit     = PVUtil.getDoubleArray(orbit_pv)
    
    y = DataUtil.createDoubleArray(len(orbit))
    for i in range(len(orbit)):
        y[i] = orbit[i] - ref_orbit[i]
    
    y_pv.setValue(y)
    
    # Set y axis limits
    abs_y = [math.fabs(i) for i in y]
    default = 10
    maximum = max(abs_y) if len(abs_y) > 0 else default
    if maximum <= default:
        widget.setPropertyValue("axis_1_maximum",  default)
        widget.setPropertyValue("axis_1_minimum", -default)
    else:
        widget.setPropertyValue("axis_1_maximum",  maximum)
        widget.setPropertyValue("axis_1_minimum", -maximum)
except:
    pass
Ejemplo n.º 4
0
from org.csstudio.opibuilder.scriptUtil import PVUtil, DataUtil, ConsoleUtil
from math import sqrt

rms_pv = pvArray[1]
mean_pv = pvArray[2]
max_pv = pvArray[3]
min_pv = pvArray[4]

try:
        y = PVUtil.getDoubleArray(pvArray[0])
		
        rms_val = sqrt(sum([pow(y_i,2) for y_i in y])/len(y))
        mean_val = sum(y)/len(y)
        max_val = max(y)
        min_val = min(y)

        widget.getWidget("RMS").setPropertyValue("text", int(rms_val))
        widget.getWidget("Mean").setPropertyValue("text", int(mean_val))
        widget.getWidget("Max").setPropertyValue("text", int(max_val))
        widget.getWidget("Min").setPropertyValue("text", int(min_val))
except:
        pass
Ejemplo n.º 5
0
from org.csstudio.opibuilder.scriptUtil import PVUtil,WidgetUtil,ConsoleUtil
slot = PVUtil.getDoubleArray(pvArray[0])
chan = PVUtil.getDoubleArray(pvArray[1])
xarray = PVUtil.getDoubleArray(pvArray[3])

wlayer  = int(widget.getMacroValue("LAYER"))
#P       = widget.getMacroValue("P")

side=24

#ConsoleUtil.writeInfo(str(xcoords[5]))
for n in range(0,240):
        linkingContainer = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.linkingContainer") 
        linkingContainer.setPropertyValue("opi_file", "tile.opi")
        if(xarray[n]<900):
	       	linkingContainer.addMacro("ID", str(n).zfill(3))
    	    #linkingContainer.addMacro("ID", str(n).zfill(3))
        	linkingContainer.setPropertyValue("resize_behaviour", 2)
        	linkingContainer.setPropertyValue("border_style", 2)
        	s = int(slot[n])
        	c = int(chan[n])
        	print n," ",s," 	",c," ",str(n).zfill(3)
        	#ConsoleUtil.writeInfo(str(l) + "    " + str(wlayer))
        	posx=s*side - 40;
        	posy=c*side;
        	linkingContainer.setPropertyValue("x", posx)
        	linkingContainer.setPropertyValue("y", posy)
        	linkingContainer.setPropertyValue("width", str(side-1))
        	linkingContainer.setPropertyValue("height",str(side-1))
        	widget.addChild(linkingContainer)
Ejemplo n.º 6
0
from org.csstudio.opibuilder.scriptUtil import PVUtil, ConsoleUtil

table = widget.getTable()

times = PVUtil.getDoubleArray(pvs[0])
codes = PVUtil.getDoubleArray(pvs[1])

N = min(len(times), len(codes))

while table.getRowCount()<N:
	table.insertRow(table.getRowCount())

while table.getRowCount()>N:
	table.deleteRow(table.getRowCount()-1)

times, codes = times[:N], codes[:N]

for row,(T,C) in enumerate(zip(times, codes)):
	table.setCellText(row,0,str(T))
	table.setCellText(row,1,"%d"%C)
Ejemplo n.º 7
0
from org.csstudio.opibuilder.scriptUtil import PVUtil, DataUtil, FileUtil, ConsoleUtil

## Get Orbit Widgets Information
graph_orbit_x = display.getWidget("Graph Orbit X")
graph_orbit_y = display.getWidget("Graph Orbit Y")

orbit_x_pv = graph_orbit_x.getPV()
orbit_y_pv = graph_orbit_y.getPV()


## Save File
try:
    try:
        orbit_x = PVUtil.getDoubleArray(orbit_x_pv)
        orbit_y = PVUtil.getDoubleArray(orbit_y_pv)
        orbit_xy = orbit_x + orbit_y
    except:
        ConsoleUtil.writeError("Graphics PV must be defined. Choose a register first.")
        raise
    file = FileUtil.saveFileDialog(False)
    widget.setPropertyValue("label", file)

    orbit_xy_data = open(file, "w")
    for data in orbit_xy:
        orbit_xy_data.write("%s\n" % data)
    orbit_xy_data.close()
except:
    pass
Ejemplo n.º 8
0
from org.csstudio.opibuilder.scriptUtil import PVUtil,WidgetUtil,ConsoleUtil
import fnmatch
import nodeLoader
import array
import math

nodeLoader.readTree()                              #Read in the node tree
views=["B_SYS_HV"]                                 #list of possible views

topnode    = str(widget.getMacroValue("TOP"))      #Get the top node
rangemode  = str(widget.getMacroValue("SCALE"))    #Get the scale for the (= Whole or Part)
title      = str(widget.getMacroValue("TITLE"))    #Get the title
node       = PVUtil.getString(pvArray[0])          #Get the current node from local pv
rangepv    = PVUtil.getDoubleArray(pvArray[1])

if node.find(topnode) <0:                    #if the node doesn't contain topnode
	node = topnode                             #force to top
#ConsoleUtil.writeInfo("Node = "+node+"  Top = "+topnode)
view=-1                                            #init index of view
for n in range(len(views)):                        #find the vew for this node
        if node.find(views[n]) > -1:
                view=n
                
if view > -1:                                      #if it's a valid view 

 
        widget.setPropertyValue("axis_1_auto_scale","true")
        if node in nodeLoader.NodeIndex:           #check for node and get index
                #ConsoleUtil.writeInfo("Node = "+node+"  Top = "+topnode)
                index  =  int(nodeLoader.NodeIndex[node])
                erange = nodeLoader.ElementRange[index].strip("'")
Ejemplo n.º 9
0
from org.csstudio.opibuilder.scriptUtil import PVUtil,WidgetUtil,ConsoleUtil
import fnmatch
import nodeLoader
import array
import math

nodeLoader.readTree()                              #Read in the node tree
views=["B_SYS_HV","B_HW_HV"]                       #list of possible views

topnode    = str(widget.getMacroValue("TOP"))      #Get the top node
rangemode  = str(widget.getMacroValue("SCALE"))    #Get the scale for the (= Whole or Part)
title      = str(widget.getMacroValue("TITLE"))    #Get the title
node       = PVUtil.getString(pvArray[0])          #Get the current node from local pv
rangepv    = PVUtil.getDoubleArray(pvArray[1])

if node.find(topnode) <0:                    #if the node doesn't contain topnode
	node = topnode                             #force to top
#ConsoleUtil.writeInfo("Node = "+node+"  Top = "+topnode)
view=-1                                            #init index of view
for n in range(len(views)):                        #find the vew for this node
        if node.find(views[n]) > -1:
                view=n
                
if view > -1:                                      #if it's a valid view 

 
        widget.setPropertyValue("axis_1_auto_scale","true")
        if node in nodeLoader.NodeIndex:           #check for node and get index
                #ConsoleUtil.writeInfo("Node = "+node+"  Top = "+topnode)
                index  =  int(nodeLoader.NodeIndex[node])
                erange = nodeLoader.ElementRange[index].strip("'")
Ejemplo n.º 10
0
from org.csstudio.opibuilder.scriptUtil import PVUtil,WidgetUtil,ConsoleUtil
xcoords = PVUtil.getDoubleArray(pvArray[0])
ycoords = PVUtil.getDoubleArray(pvArray[1])
size    = PVUtil.getDoubleArray(pvArray[2])
layer   = PVUtil.getDoubleArray(pvArray[3])
wlayer  = int(widget.getMacroValue("LAYER"))
#P       = widget.getMacroValue("P")

s=16

#ConsoleUtil.writeInfo(str(xcoords[5]))
for n in range(0,232):
	if not size[n]==999:
		linkingContainer = WidgetUtil.createWidgetModel("org.csstudio.opibuilder.widgets.linkingContainer") 
		linkingContainer.setPropertyValue("opi_file", "tile.opi")
		#linkingContainer.addMacro("ID",str(n))
		linkingContainer.addMacro("ID", str(n).zfill(3))
		linkingContainer.setPropertyValue("resize_behaviour", 2)
		linkingContainer.setPropertyValue("border_style", 2)
                l = int(layer[n])
                ConsoleUtil.writeInfo(str(l) + "    " + str(wlayer))
                if l==wlayer:
                    side=s*size[n]
                    posx=(220+s*xcoords[n])
                    posy=(160-s*ycoords[n])
                    if size[n] ==1:
                        posy=posy+s
                    #ConsoleUtil.writeInfo(str(posx) + "    " + str(posy))
                    linkingContainer.setPropertyValue("x", posx)
                    linkingContainer.setPropertyValue("y", posy)
                    linkingContainer.setPropertyValue("width", side)
Ejemplo n.º 11
0
from org.csstudio.opibuilder.scriptUtil import PVUtil, ConsoleUtil

table = widget.getTable()

times = PVUtil.getDoubleArray(pvs[0])
codes = PVUtil.getDoubleArray(pvs[1])

N = min(len(times), len(codes))

while table.getRowCount() < N:
    table.insertRow(table.getRowCount())

while table.getRowCount() > N:
    table.deleteRow(table.getRowCount() - 1)

times, codes = times[:N], codes[:N]

for row, (T, C) in enumerate(zip(times, codes)):
    table.setCellText(row, 0, str(T))
    table.setCellText(row, 1, "%d" % C)