Files
PBSwissMX/src/triggerSync/Readme.md

4.2 KiB

triggerSync

samples: root@:/opt/ppmac#
 /tmp/triggerSync 40 11           trigger all 40 ms, simulated start, use real frame triggers, verbose
 /tmp/triggerSync 40 14           trigger all 40 ms, simulated start and frame triggers, no sync, verbose
 /tmp/triggerSync 40 15           trigger all 40 ms, simulated start and frame triggers, with sync, verbose
 /tmp/triggerSync 40 7            trigger all 40 ms, simulated start and frame triggers, with sync, minimal verbose


//Simulated triggers uses Q variables
#define  SIMFLAG0 (pshm->Coord[1].Q[10])
#define  SIMFLAG1 (pshm->Coord[1].Q[11])
//real triggers, uses inputsfrom the EVR-card
//  s.a. Power PMAC Software Reference Manual.pdf Gate3[i].Chan[j].Status -> page 919 UserFlag
#define  FLAG0 (gate3_1->Chan[0].Status&0x800)
#define  FLAG1 (gate3_1->Chan[1].Status&0x800)

work of triggerSync program:
 - wait for [SIM]FLAG0 (arm trigger)
 - once armed, each [SIM]FLAG1 trigger is a frame trigger.

the EVR flags are set in;
caqtdm -attach -macro SYS=SAR-EXPMX,DEVICE=EVR0,FF=PCIe G_EVR_main.ui

event 214 is set with the CTA. For tests one can set manually 
caput SAR-EXPMX-EVR0:FrontUnivOut4-Src-Scale-SP 9 # Force High(0) -> arm event, before start motion
caput SAR-EXPMX-EVR0:FrontUnivOut4-Src-Scale-SP 8 # Force Low(1)  -> trigger motion
caput SAR-EXPMX-EVR0:FrontUnivOut4-Src-Pulse-SP 0 # set back to Pulser 0 -> reset for CTA usage

Here values as they were set (??.10.24):
caget SAR-EXPMX-EVR0:FrontUnivOut4-Src-Pulse-RB SAR-EXPMX-EVR0:FrontUnivOut5-Src-Pulse-RB \
SAR-EXPMX-EVR0:Pul0-Polarity-Sel SAR-EXPMX-EVR0:Pul0-Delay-RB SAR-EXPMX-EVR0:Pul0-Width-RB \
SAR-EXPMX-EVR0:Pul1-Polarity-Sel SAR-EXPMX-EVR0:Pul1-Delay-RB SAR-EXPMX-EVR0:Pul1-Width-RB \
SAR-EXPMX-EVR0:Pul0-Evt-Trig0-SP SAR-EXPMX-EVR0:Pul1-Evt-Trig0-SP

SAR-EXPMX-EVR0:FrontUnivOut4-Src-Pulse-RB "Pulser 0"
SAR-EXPMX-EVR0:FrontUnivOut5-Src-Pulse-RB "Pulser 1"
SAR-EXPMX-EVR0:Pul0-Polarity-Sel "Active Low"
SAR-EXPMX-EVR0:Pul0-Delay-RB 0.000 us
SAR-EXPMX-EVR0:Pul0-Width-RB 5000.000 us
SAR-EXPMX-EVR0:Pul1-Polarity-Sel "Active Low"
SAR-EXPMX-EVR0:Pul1-Delay-RB 750.000 us
SAR-EXPMX-EVR0:Pul1-Width-RB 5000.000 us
SAR-EXPMX-EVR0:Pul0-Evt-Trig0-SP 214 
SAR-EXPMX-EVR0:Pul1-Evt-Trig0-SP 40 

testing simulated start triggers

Gather.Enable=1  // else triggerSync stops if value is 0
Coord[1].Q[0]=-3 // simulate motion  ready
Coord[1].Q[10]=0 // turn off simulated start event

root@:/opt/ppmac# 
LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/triggerSync 14 10 0  #  trigger all 10 ms, simulated start and frame triggers   , no sync  , verbose
LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/triggerSync 15 10 0  #  trigger all 10 ms, simulated start and frame triggers   , with sync, verbose
LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/triggerSync 11 10 0  #  trigger all 10 ms, simulated start, real frame triggers , with sync, verbose
LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/triggerSync 7  10 0  #  trigger all 10 ms, simulated start and frame triggers   , with sync, minimal verbose

....
Coord[1].Q[10]=1 # turn on simulated start event
.s.s.s.s.
Coord[1].Q[10]=0 # turn off simulated start event
....
Coord[1].Q[10]=1 # turn on simulated start event
.s.s.s.s.
Coord[1].Q[0]=0 # simulate ready at start position
.s.s.s.x.........
Gather.Enable=0 # end triggerSync

testing real start triggers

Gather.Enable=1  // else triggerSync stops if value is 0
Coord[1].Q[0]=0  // simulate motion not ready (!=-3)

caget SAR-EXPMX-EVR0:FrontUnivOut4-Src-Pulse-RB
->SAR-EXPMX-EVR0:FrontUnivOut4-Src-Pulse-RB "Pulser 0"

# set start EVT to value 0 (=Force Hi)
caput SAR-EXPMX-EVR0:FrontUnivOut4-Src-Scale-SP 9

root@:/opt/ppmac# 
LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/triggerSync 9  10 0  #  trigger all 10 ms, real start and frame triggers, with sync, verbose
LD_LIBRARY_PATH=/opt/ppmac/libppmac/ /tmp/triggerSync 1  10 0  #  trigger all 10 ms, real start and frame triggers, with sync, minimal verbose

Coord[1].Q[0]=-3 // simulate motion  ready

Coord[1].Q[0] // changed to -2 to indicate 'wait for start EVT

# set start EVT to value 1 (=Force Lo)
caput SAR-EXPMX-EVR0:FrontUnivOut4-Src-Scale-SP 8
# reset EVT default value (Pulser 0)
caput SAR-EXPMX-EVR0:FrontUnivOut4-Src-Pulse-SP 0

Gather.Enable=0 # end triggerSync