FilterWheel

NAME
SYNOPSIS
Detailed Description
Constructor & Destructor Documentation
Author

NAME

FilterWheel −

SYNOPSIS

#include <acsexmplFilterWheelImpl.h>

Inherits baci::CharacteristicComponentImpl, and baci::ActionImplementator.

Public Member Functions

FilterWheel (const ACE_CString &name, maci::ContainerServices *containerServices)

virtual ~FilterWheel ()

virtual void initialize ()

virtual void execute ()

virtual void cleanUp ()

virtual void aboutToAbort ()

virtual baci::ActionRequest invokeAction (int function, baci::BACIComponent *cob_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut)

virtual baci::ActionRequest moveFilterAction (baci::BACIComponent *cob_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut)

virtual baci::ActionRequest moveSlotAction (baci::BACIComponent *cob_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut)

virtual baci::ActionRequest adjustAction (baci::BACIComponent *cob_p, const int &callbackID, const CBDescIn &descIn, baci::BACIValue *value_p, Completion &completion, CBDescOut &descOut)

virtual void moveFilterInBeam (const char *, ACS::CBvoid_ptr, const ACS::CBDescIn &)

virtual void moveSlotInBeam (int, ACS::CBvoid_ptr, const ACS::CBDescIn &)

virtual void adjust (int, ACS::CBvoid_ptr, const ACS::CBDescIn &)

virtual CORBA::Long calibrateFilter (const char *name)

virtual CORBA::Long calibrateWheel (int slot)

virtual ACS::ROdouble_ptr position ()

virtual ACS::ROstring_ptr desc ()

virtual ACS::ROlong_ptr slots ()

Private Member Functions

void readConfiguration (Descriptor *descr)

void updateFilter (ACE_CString name, int delta)

void updateWheel (int slot, int step)

void operator= (const FilterWheel &)

Private Attributes

ACE_CString m_fullName

baci::SmartPropertyPointer< baci::ROdouble > m_position_sp

baci::SmartPropertyPointer< baci::ROstring > m_desc_sp

baci::SmartPropertyPointer< baci::ROlong > m_slots_sp

Descriptor * m_wheelConfiguration

Detailed Description

The class FilterWheel class simulates the behavior of a very simple filter wheel.

The configuration of the wheel is on the CDB. First of all the number of available slots of the wheel. This is read at startup. In the CDB there is a list of position of the slots. This is the step to rotate the wheel to have the center of the slot in the beam. The adjust method allows the user to move the wheel of some step in order to center the slot in the beam. When the center has been found, the calibrateWheel method store the position as the center for the selected slot.

In the CDB there is also the definition for each possible filter. For each filter there is its name, the slot where it is inserted in and the delta i.e. the deviation of the center of the filter in respect of the center of the slot (it could be a problem in building the filter for example, storing this number we could mount the filter in every slot) To found the center of the filter the operator uses again the adjust method. When the center is found the delta can be stored in the filter definition in the CDB using the calibrateFilter method.

The component reads the configuration of the wheel from the CDB at startup and stores number of the slots in the wheel, the position of the slots and the definition of each filter are together in the same array of structs (the number of the slot is represented by its position in the array). When one of the two calibrate methods is executed the internal data as well as the CDB values are updated.

Author:

Alessandro Caproni,

Version:

Constructor & Destructor Documentation

FilterWheel::FilterWheel (const ACE_CString & name, maci::ContainerServices * containerServices) Constructor

Parameters:

name component’s name. This is also the name that will be used to find the configuration data for the component in the Configuration Database.
containerService
The pointer to the container services

Author

Generated automatically by Doxygen for ACS-2015.2 C++ API from the source code.