diff --git a/Readme.md b/Readme.md index 563b907..2257909 100644 --- a/Readme.md +++ b/Readme.md @@ -324,15 +324,78 @@ FixTargetFrame -> paint -> _log.debug() Turn off jungfrau. no motion -> wait 1h constant up-dow motion code -> wait 1h - - ``` -``` + +05.12.23 deployment and tests (update) +-------------------------------------- + +Document to start SwissMX in cristallina environment: https://docs.google.com/document/d/1yEmV_DbRBKQKVCoovjXriNgSjNEBaz50WA0l3yA5jtg/edit#heading=h.z9io692b8tow + +``` +ssh zamofing_t@saresc-cons-03 +cd /sf/cristallina/applications/mx/zamofing_t/ESB_MX +git remote -v +psigithub git@git.psi.ch:epics_ioc_modules/ESB_MX.git +#git remote add psigithub git@git.psi.ch:epics_ioc_modules/ESB_MX.git + +cd /sf/cristallina/applications/mx/zamofing_t/ESB_MX/python/SwissMX +git remote -v +psigithub git@git.psi.ch:zamofing_t/SwissMX.git +#git remote add psigithub git@git.psi.ch:zamofing_t/SwissMX.git + +cd /sf/cristallina/applications/mx/zamofing_t/ESB_MX +chmod -R g+w * + +switch to latest test environment: +cd /sf/cristallina/applications/mx/zamofing_t/ESB_MX +git checkout master +cd /sf/cristallina/applications/mx/zamofing_t/ESB_MX/python/SwissMX +git checkout master ``` - try: #pv-monitor-func +sync and triggering +------------------- +``` +EVR output powerBrick register $(USR_FLAG_ID) +FrontUnivOut4 Gate3[1].Chan[0].UserFlag 5 acquisition start +FrontUnivOut5 Gate3[1].Chan[1].UserFlag 6 frame trigger +FrontUnivOut6 Gate3[1].Chan[2].UserFlag 7 unused + +-> Deltatau flags are inverted: FrontUnivOut6(Force Low) -> Gate3[1].Chan[2].UserFlag==1 + +FrontUnivOut4 <- Pulser 0 <- active low <- event 254 (not used any more) +FrontUnivOut5 <- Pulser 1 <- active low <- event 215 (cristallina frame trigger) +FrontUnivOut6 <- Force Low + +MXMotion.py -> setup_sync() + elif sync_mode in(1,2): + #frequence jitter 50Hz Swissgrid: + #https://www.swissgrid.ch/de/home/operation/grid-data/current-data.html# + flag0='Coord[{crdId}].Q[10]'.format(crdId=crdId) if sync_flag&1 else 'Gate3[1].Chan[0].UserFlag' + flag1='Coord[{crdId}].Q[11]'.format(crdId=crdId) if sync_flag&2 else 'Gate3[1].Chan[1].UserFlag' + +-> looks at Q10/Q11 for start and sync (in simulation) +-> looks at User-Flags from the EVR for start and sync (in real) + +s.a. ~/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/Readme.md -> EVR +``` + + + + + + + + + + + + + + + ----------------------------------- SCRATCH ----------------------------------- diff --git a/swissmx.py b/swissmx.py index 84bb8d3..bceb178 100755 --- a/swissmx.py +++ b/swissmx.py @@ -2431,11 +2431,10 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch) tw_fx = self.tweakers["fast_x"] tw_fy = self.tweakers["fast_y"] tw_cx = self.tweakers["base_x"] + tw_cy = self.tweakers["base_y"] tw_cz = self.tweakers["base_z"] - tw_ry = self.tweakers["omega"] try: p_fx, p_fy, p_cx, p_cz,=pos_gonio['pos_'+pos] - p_ry=0. except KeyError: raise ValueError("Goniometer position *{}* is not known!!") _log.info(f"moving goniometer {pos} to fx:{p_fx:.5g},fy:{p_fy:.5g},cx:{p_cx:.5g},cz_{p_cz:.5g},ry:{p_ry:.5g}") @@ -2444,14 +2443,12 @@ Author Thierry Zamofing (thierry.zamofing@psi.ch) tw_fy.move_abs(p_fy) tw_cx.move_abs(p_cx) tw_cz.move_abs(p_cz) - tw_ry.move_abs(p_ry) app_utils.assert_tweaker_positions([ (tw_fx, p_fx, 0.1), (tw_fy, p_fy, 0.1), (tw_cx, p_cx, 0.1), - (tw_cz, p_cz, 0.1), - (tw_ry, p_ry, 0.1), ], timeout=20.0, + (tw_cz, p_cz, 0.1), ], timeout=20.0, ) def move_post_tube(self, pos):