-- 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
Topic revision: r1 - 29 Jan 2020, SvetlanaFedotova
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback