-- Main.!SvetlanaFedotova - 29 Jan 2020
CrySrcPulser
FESA class for pulsing of CRYRING ion source: generates triggers (5 V) upon Timing events for ion source pulsing and warming pulsing. In absence of timing generates warming pulses. User can switch warming pulses off/on, vary the width of the warming pulses and vary the time between the warming pulses ("WarmingPulseDelay").
When timing is available warming pulses run after the event CMD_SOURCE_STOP#274 + WarmingPulseDelay. They stop running untill the event CMD_SEQ_START#257 comes, so there is no warming pulses till next event CMD_SOURCE_STOP#274.
SVN:
https://www-acc.gsi.de/svn/fesa/device/class/CrySrcPulser
https://www-acc.gsi.de/svn/fesa/device/deploy-unit/CrySrcPulser_DU
Released on
scuxl0289, pro-environment
Instance (nomenclature):
YRT1IN1Z
Setting Property "WarmingPulses":
WarmingPulseON, WarmingPulseWidth, WarmingPulseDelay
Server actions:
WarmingPulsesSetAction : sets values for property “WarmingPulses”
WarmingPulsesGetAction: gets values for property “WarmingPulses”
RT-Actions:
EventTracker _RTAction: started by event CMD_SEQ_START#257 ; calls FESL method pulseOccured()
EventTracker2 _RTAction: started by event CMD_SOURCE_STOP#274 ; calls FESL method pulseOccured2()
StatusUpdateAction: timer OncePerSecond
RTDeviceClass:
initialize Hardware, calls FESL methods setPulse() and setGate()
FESL
SVN:
https://www-acc.gsi.de/svn/fesa/device/driver/feSupport/trunk/feSupport/device/ionSource/PulseGen.cpp
https://www-acc.gsi.de/svn/fesa/device/driver/feSupport/trunk/feSupport/device/ionSource/PulseGen.hpp
Hardware
scuxl0289
Card 901.011
Slave 11
Tag_Out register 2
Bits for Tags:
1 (SubD: Pin1) – ion source pulsing (including warming pulses)
2 (SubD: Pin2) – alternative option: gate for warming pulses
Namespace: FeSupport:TimingControl:class PulseGen
Methods and parameters
PRIVAT:
pulseTracker();
boost::mutex pulseTracker_mut_;
boost::condition_variable pulseTracker_cond_;
boost::thread pulseTracker_thread_;
uint32_t WARM_DELAY;
double Warm_Width
bool warmpulse_
PUBLIC:
pulseOccured
pulseOccured2
setWarmPulseOnOff (param const bool warmpulse)
getWarmPulseOnOff
setWarmingPulseWidth (param double width),
getWarmingPulseWidth()
setWarmingPulseDelay (param uint32_t delay) ,
getWarmingPulseDelay()
SetPulse
SetGate