SFELPHOTON-1356: wip
This commit is contained in:
@@ -22,7 +22,8 @@ SATES30-ARES:MOT_JFRY.RBV # jungfrau detector angle:
|
||||
SATES30-ARES:MOT_2TRY.RBV # 2thetha angle: foc.mirror Diode2 Diode3
|
||||
SATES30-ARES:MOT_DRY.RBV # detector angle: Diode1 Mirror
|
||||
SATES30-ARES:MOT_SRY.RBV # sample rotation
|
||||
|
||||
SATES30-MCS001:MOT_6 # Parabola TX
|
||||
SATES30-ACSFM:MOT_TZ # Foc. Mirror TZ
|
||||
|
||||
bitmask for simulation:
|
||||
0x01: EPICS motors
|
||||
@@ -117,7 +118,10 @@ class ARESdevice():
|
||||
'aJFr':140, # angle detector
|
||||
'a2Th':116, # angle 2thetha
|
||||
'aDet':100, # angle detector
|
||||
'aTrg':10, # angle target
|
||||
'aTrg':10, # angle target
|
||||
'txPar':0, # parabola translation x
|
||||
'tyPar':50.8,# parabola translation y
|
||||
'tzFM':10, # focussing mirror translation z
|
||||
|
||||
'sclTrf':(2**(6/2), 2**(-2/2)), # scaling transfformation [angle, distance]
|
||||
}
|
||||
@@ -192,6 +196,11 @@ class ARESdevice():
|
||||
aJFr=p['aJFr']
|
||||
aDet=p['aDet']
|
||||
aTrg=p['aTrg']
|
||||
|
||||
txPar=-p['txPar'] #opposite direction
|
||||
tyPar=p['tyPar']
|
||||
tzFM =p['tzFM']
|
||||
|
||||
sclTrf=p['sclTrf']
|
||||
#x=p.get('x',0)
|
||||
#y=p.get('y',0)
|
||||
@@ -338,9 +347,9 @@ class ARESdevice():
|
||||
qp.setBrush(QColor(0,255,0,192))
|
||||
|
||||
#mirror:310x30mm, 10-40mm dist, 40mm outside 2th
|
||||
qp.translate(20,-r2Th-40);qp.rotate(2)
|
||||
qp.translate(20,-r2Th-40);qp.rotate(2);qp.translate(0,tzFM)
|
||||
qp.drawRect(0, 0, 30, 310) # foc. mirror 1
|
||||
qp.setTransform(tf2Th);qp.translate(-20,-r2Th-40);qp.rotate(-2)
|
||||
qp.setTransform(tf2Th);qp.translate(-20,-r2Th-40);qp.rotate(-2);qp.translate(0,tzFM)
|
||||
qp.drawRect(-30, 0, 30, 310) # foc. mirror 2
|
||||
|
||||
qp.setTransform(tf2Th);qp.rotate(54);qp.translate(-diW/2,-r2Th);
|
||||
@@ -364,7 +373,7 @@ class ARESdevice():
|
||||
qp.drawLine(0,-rDet,0,-rDet+tickL) #tick
|
||||
qp.setPen(penBk)
|
||||
qp.setBrush(QColor(0,0,255,192))
|
||||
qp.setTransform(tfDet);qp.rotate(165.4);qp.translate(-diW/2,-rDet);
|
||||
qp.setTransform(tfDet);qp.rotate(165.4);qp.translate(-diW/2,-rDet)
|
||||
qp.drawRect(0, 0, diW, diH) # diode1
|
||||
qp.setTransform(tfDet);qp.rotate(181);qp.translate(0,-rDet+miW/2);qp.rotate(-45)
|
||||
qp.drawRect(-int(miW/2), 0, miW, miH) # mirror1
|
||||
@@ -378,29 +387,29 @@ class ARESdevice():
|
||||
qp.setBrush(QColor(0,255,255,192))
|
||||
qp.drawRect(int(-(tgW/2)), -tgH, tgW, tgH) # target mount sample
|
||||
|
||||
# --- fixed objects ---
|
||||
#parabola mirror
|
||||
# --- parabola mirror ---
|
||||
qp.setTransform(tf0)
|
||||
qp.setPen(penBk)
|
||||
qp.setBrush(QColor(192,192,0,192))
|
||||
a,b=50.8,12
|
||||
#x,x0,y,y0=3*50.8,3*12,3*50.8,3*12
|
||||
x,x0,y,y0=50.8,12,50.8,4
|
||||
qp.translate(txPar-x/2, tyPar)
|
||||
path=QPainterPath()
|
||||
path.moveTo(-b-a/2,a)
|
||||
path.lineTo(-b-a/2,2*a)
|
||||
path.lineTo( a/2,2*a)
|
||||
path.lineTo( a/2,2*a)
|
||||
path.cubicTo(a/2-20,2*a, -a/2,a+20, -a/2,a)
|
||||
path.lineTo(-b-a/2,a)
|
||||
path.moveTo(0,0)
|
||||
path.cubicTo(0,y/2,x/2,y,x,y)
|
||||
path.lineTo(x,y+y0)
|
||||
path.lineTo(-x0,y+y0)
|
||||
path.lineTo(-x0,0)
|
||||
path.lineTo(0,0)
|
||||
qp.drawPath(path)
|
||||
#qp.drawPolygon(QPolygonF([QPointF(-b-a/2,a),
|
||||
# QPointF(-b-a/2,2*a),
|
||||
# QPointF( a/2,2*a),
|
||||
# QPointF( -a/2,a),]))
|
||||
qp.drawLine(x/2,y+y0,x/2,0)
|
||||
|
||||
# --- parabola beam path ---
|
||||
qp.setPen(penBl)
|
||||
qp.drawLine(0 ,0 ,int(a/2) ,int(2*a))
|
||||
qp.drawLine(int(rArm),int(2*a),int(a/2) ,int(2*a))
|
||||
qp.drawLine(0 ,0 ,int(-a/2),int(a ))
|
||||
qp.drawLine(int(rArm),int(a) ,int(-a/2),int(a ))
|
||||
qp.drawLine(0,0,int(x/2),int(-tyPar))
|
||||
qp.drawLine(0,0,int(rArm+x/2-txPar),0)
|
||||
qp.drawLine(x,y,int(x/2),int(-tyPar))
|
||||
qp.drawLine(x,y,int(rArm+x/2-txPar),y)
|
||||
|
||||
|
||||
class WndVisualize(QWidget):
|
||||
@@ -409,7 +418,9 @@ class WndVisualize(QWidget):
|
||||
'SATES30-ARES:MOT_2TRY.RBV':'a2Th',
|
||||
'SATES30-ARES:MOT_JFRY.RBV':'aJFr',
|
||||
'SATES30-ARES:MOT_DRY.RBV' :'aDet',
|
||||
'SATES30-ARES:MOT_SRY.RBV' :'aTrg'
|
||||
'SATES30-ARES:MOT_SRY.RBV' :'aTrg',
|
||||
'SATES30-MCS001:MOT_6.RBV' :'txPar',
|
||||
'SATES30-ACSFM:MOT_TZ.RBV' :'tzFM',
|
||||
}
|
||||
|
||||
def __init__(self):
|
||||
@@ -428,12 +439,15 @@ class WndVisualize(QWidget):
|
||||
lg=QGridLayout(w)
|
||||
pDev=dev._paint
|
||||
for key, rng, tk in (
|
||||
('aArm',(0,360,), 30), # angle ARES sliding seal
|
||||
('a2Th',(0,360,), 30), # angle 2thetha
|
||||
('aJFr' ,(0,360,), 30), # angle Jungfrau
|
||||
('aDet',(0,360,), 30), # angle detector
|
||||
('aTrg',(0,360,), 30), # angle target
|
||||
('sclA', ( -8, 8), 1),
|
||||
('aArm' ,( 0,360,), 30), # angle ARES sliding seal
|
||||
('a2Th' ,( 0,360,), 30), # angle 2thetha
|
||||
('aJFr' ,( 0,360,), 30), # angle Jungfrau
|
||||
('aDet' ,( 0,360,), 30), # angle detector
|
||||
('aTrg' ,( 0,360,), 30), # angle target
|
||||
('txPar',(-50, 50,), 10), # parabola translation x
|
||||
('tzFM' ,(-50, 50,), 10), # focussing mirror translation z
|
||||
|
||||
('sclA', (-8, 8), 1),
|
||||
('sclD', (-8, 8), 1),
|
||||
#('x', (-100, 100), 10),
|
||||
#('y', (-100, 100), 10),
|
||||
@@ -616,14 +630,13 @@ class WndVisualize(QWidget):
|
||||
return
|
||||
wGrp=self._wdGrpDraw
|
||||
#if wGrp.underMouse(): #draging sliders?
|
||||
#if wGrp.geometry().contains(mousePos):
|
||||
# self.liveView()
|
||||
# self._mouseDrag={'obj':wGrp, 'start':mousePos}
|
||||
# return
|
||||
dev=app._dev
|
||||
if dev.containsPoint(mousePos):
|
||||
self._devSel=dev
|
||||
self._mouseDrag={'obj':dev,'start':(mousePos,dev._paint['ofs'])}
|
||||
if wGrp.geometry().contains(mousePos):
|
||||
self._mouseDrag={'obj':wGrp, 'start':mousePos}
|
||||
else:
|
||||
dev=app._dev
|
||||
if dev.containsPoint(mousePos):
|
||||
self._devSel=dev
|
||||
self._mouseDrag={'obj':dev,'start':(mousePos,dev._paint['ofs'])}
|
||||
try:
|
||||
_log.info(f'{self._mouseDrag}')
|
||||
except AttributeError:
|
||||
|
||||
2
Makefile
2
Makefile
@@ -18,7 +18,7 @@ install:
|
||||
@echo "- /EsfRixsApps/.git/\n- /EsfRixsApps/scratch/\n- /**/__pycache__/\n- /**.ipynb*" >/tmp/rsync.filt
|
||||
@cat /tmp/rsync.filt
|
||||
rsync -vai --filter='. /tmp/rsync.filt' $(SRC) $(REMOTE):$(APP)
|
||||
-ssh $(REMOTE) 'for A in ARESvis RIXSconfig spectrumProc; do $(APP)/EsfRixsApps/AppTemplate.py -b /sf/furka -a $$A -p EsfRixsApps ;done'
|
||||
-ssh $(REMOTE) 'for A in ARESvis ESF_RIXS spectrumProc; do $(APP)/EsfRixsApps/AppTemplate.py -b /sf/furka -a $$A -p EsfRixsApps ;done'
|
||||
# -ssh $(REMOTE) 'for A in ARESvis RIXSconfig spectrumProc; do ln -sF $(APP)/EsfRixsApps/$$A/$$A.py $(BIN)/$$A;done'
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user