|
ACSSampObjImpl − |
|
#include <acssampObjImpl.h> |
|
Classes |
|
struct SampData |
|
Public Member Functions |
|
ACSSampObjImpl (const ACE_CString &_cobName, const ACE_CString &_propertyName, ACS::TimeInterval _sampFrequency, ACS::TimeInterval _sampReportRate, baci::BACIComponent *_m_cob, ACS::Property_var _genProperty, ACSSampImpl *_sampPtr) |
|
virtual ~ACSSampObjImpl () |
|
virtual void start () |
|
virtual void stop () |
|
virtual void destroy () |
|
virtual void suspend () |
|
virtual void resume () |
|
virtual void setFrequency (ACS::TimeInterval sFrequency) |
|
virtual void getFrequency (ACS::TimeInterval_out sFrequency) |
|
virtual void setRate (ACS::TimeInterval rRate) |
|
virtual void getRate (ACS::TimeInterval_out rRate) |
|
virtual void initialize () |
|
virtual void doSamp () |
|
virtual void flushSamp () |
|
ACS::TimeInterval getSampFrequency () const |
|
void setSampFrequency (const ACS::TimeInterval &_sampFrequency) |
|
ACS::TimeInterval getReportRate () const |
|
void setReportRate (const ACS::TimeInterval &_sampReportRate) |
|
CORBA::Object_ptr getCORBAReference () const |
|
virtual char * getChannelName () |
|
bool isInDestructState () const |
|
Private Attributes |
|
ACE_CString cobName |
|
ACE_CString propertyName |
|
ACE_CString sampObjName |
|
ACE_CString sampChannelName |
|
ACS::TimeInterval sampFrequency |
|
ACS::TimeInterval sampReportRate |
|
bool inDestructState |
|
baci::BACIComponent * cob_p |
|
SamplingThread< ACS_SAMP_TL > * controlLoop_p |
|
SamplingThreadFlush< ACS_SAMP_TL > * flush_p |
|
ACS::Property_var genProperty_p |
|
T_var propToSamp_p |
|
ACE_Message_Queue< ACE_SYNCH > * mq_p |
|
nc::SimpleSupplier * sampSupplier_p |
|
CORBA::Object_ptr reference_p |
|
ACSSampImpl * samp_p |
|
template<ACS_SAMP_C> class ACSSampObjImpl< ACS_SAMP_C > |
|
This class implements all methods used to sample a specific property. In particular, once a new sampling object is initialized, with user-defined parameters (like the sampling rate, the report rate etc.) it allows to start/stop/pause/continue the sampling. Moreover it expose methods to change these parametrs on-the-fly. All buffered data are delivered automatically to the notification channel; trough it a client could retrieve them, and subsequently plot them or perform the necessary kind of analysis. This class is a template. This because the type of the property could be RWdouble, RWlong etc. This class is meant to be used trough the factory class ACSSampImpl. |
|
template<ACS_SAMP_C > ACSSampObjImpl< ACS_SAMP_C >::ACSSampObjImpl (const ACE_CString & _cobName, const ACE_CString & _propertyName, ACS::TimeInterval _sampFrequency, ACS::TimeInterval _sampReportRate, baci::BACIComponent * _m_cob, ACS::Property_var _genProperty, ACSSampImpl * _sampPtr) Constructor It construct the sampling object, using the following parameters: |
|
Parameters: |
|
_cobName name of the component, which property is
to be sampled (e.g.LAMP1 ) |
|
template<ACS_SAMP_C > virtual ACSSampObjImpl< ACS_SAMP_C >::~ACSSampObjImpl () [virtual] Destructor |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::destroy () [virtual] Destroy the sampling object. Implementation of IDL destroy() interface (inherited from the ACS:Subscription interface). |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::doSamp () [virtual] Do the sampling. Retrieves data from the property using get_sync(). Data are stored in an internal array used as a buffer. |
|
Returns: |
|
void |
|
Referenced by SamplingThread< ACS_SAMP_TL >::runLoop(). |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::flushSamp () [virtual] Flush data from the internal array to the notification channel. |
|
Returns: |
|
void |
|
Referenced by SamplingThreadFlush< ACS_SAMP_TL >::runLoop(). |
|
template<ACS_SAMP_C > virtual char* ACSSampObjImpl< ACS_SAMP_C >::getChannelName () [virtual] Is the channel name of the notification channel onto which the data are delivered. The name is composed by concatenation of the following string: NC_ Component name_ Property name_ SampRate_ ReportRate_ (e.g. NC_LAMP1_brightness_1000000_10000000) |
|
Returns: |
|
channelName. |
|
template<ACS_SAMP_C > CORBA::Object_ptr ACSSampObjImpl< ACS_SAMP_C >::getCORBAReference () const [inline] Internal method to get the CORBA reference to the newly activated CORBA object (i.e. this sampling object). |
|
Returns: |
|
reference_p reference to the CORBA object. |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::getFrequency (ACS::TimeInterval_out sFrequency) [virtual] Gets the sampling frequency of an already activated sampling object. |
|
Parameters: |
|
sFrequency the current sampling frequency (units are 100ns; e.g. 1000000 means 10 sample per second) |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::getRate (ACS::TimeInterval_out rRate) [virtual] Gets the report rate of an already activated sampling object. |
|
Parameters: |
|
sFrequency the current report rate report rate (units are 100ns; e.g. 10000000 means collect data for 1 second) |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > ACS::TimeInterval ACSSampObjImpl< ACS_SAMP_C >::getReportRate () const [inline] Internal method to retrieve the report rate. |
|
Returns: |
|
sampReportRate |
|
template<ACS_SAMP_C > ACS::TimeInterval ACSSampObjImpl< ACS_SAMP_C >::getSampFrequency () const [inline] Internal method to retrieve the sampling frequency. |
|
Returns: |
|
sampFrequency |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::initialize () [virtual] Initialize (activate) the sampling object, with parameters passed in the constructor. |
|
Exceptions: |
|
ACSErrTypeCommon::OutOfBoundsExImpl |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > bool ACSSampObjImpl< ACS_SAMP_C >::isInDestructState () const [inline] Internal thread used to determine when the sampling object is to be destroyed. |
|
Returns: |
|
state 1 if is in a destruction state. |
|
Referenced by SamplingThreadFlush< ACS_SAMP_TL >::runLoop(), and SamplingThread< ACS_SAMP_TL >::runLoop(). |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::resume () [virtual] Resume the sampling. Implementation of IDL resume() interface (inherited from the ACS:Subscription interface). |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::setFrequency (ACS::TimeInterval sFrequency) [virtual] Sets the sampling frequency of an already activated sampling object. |
|
Parameters: |
|
sFrequency a new sampling frequency (units are 100ns; e.g. 1000000 means 10 sample per second) |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::setRate (ACS::TimeInterval rRate) [virtual] Sets the report rate of an already activated sampling object. |
|
Parameters: |
|
sFrequency a new report rate (units are 100ns; e.g. 10000000 means collect data for 1 second) |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > void ACSSampObjImpl< ACS_SAMP_C >::setReportRate (const ACS::TimeInterval & _sampReportRate) Internal method to set the report rate. |
|
Parameters: |
|
_sampReportRate. |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > void ACSSampObjImpl< ACS_SAMP_C >::setSampFrequency (const ACS::TimeInterval & _sampFrequency) Internal method to set the sampling frequency. |
|
Parameters: |
|
_sampFrequency. |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::start () [virtual] Starts the sampling. Implementation of IDL start() interface. |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::stop () [virtual] Stops the sampling. Implementation of IDL stop() interface. |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > virtual void ACSSampObjImpl< ACS_SAMP_C >::suspend () [virtual] Suspend the sampling. Implementation of IDL suspend() interface (inherited from the ACS:Subscription interface). |
|
Returns: |
|
void |
|
template<ACS_SAMP_C > baci::BACIComponent* ACSSampObjImpl< ACS_SAMP_C >::cob_p [private] BACI Component instance This is a reference to the factory CORBA object |
|
template<ACS_SAMP_C > ACE_CString ACSSampObjImpl< ACS_SAMP_C >::cobName [private] |
|
template<ACS_SAMP_C > SamplingThread<ACS_SAMP_TL>* ACSSampObjImpl< ACS_SAMP_C >::controlLoop_p [private] controlLoop_p is only started once the sampling object is initialized, through the call of method start. It determines the ticks, when the sampling actually occurs; the thread is destroyed when the method destroy is called. |
|
template<ACS_SAMP_C > SamplingThreadFlush<ACS_SAMP_TL>* ACSSampObjImpl< ACS_SAMP_C >::flush_p [private] flush_p is only started once the sampling object is initialized, through the call of method start. It determines the time, when the sampling are actually flushed on the NC; the thread is destroyed when the method destroy is called. |
|
template<ACS_SAMP_C > ACS::Property_var ACSSampObjImpl< ACS_SAMP_C >::genProperty_p [private] |
|
template<ACS_SAMP_C > bool ACSSampObjImpl< ACS_SAMP_C >::inDestructState [private] |
|
Referenced by ACSSampObjImpl< ACS_SAMP_TL >::isInDestructState(). |
|
template<ACS_SAMP_C > ACE_Message_Queue<ACE_SYNCH>* ACSSampObjImpl< ACS_SAMP_C >::mq_p [private] Internal buffer containing all data, before the delivering to the notification channel. |
|
template<ACS_SAMP_C > ACE_CString ACSSampObjImpl< ACS_SAMP_C >::propertyName [private] |
|
template<ACS_SAMP_C > T_var ACSSampObjImpl< ACS_SAMP_C >::propToSamp_p [private] |
|
template<ACS_SAMP_C > CORBA::Object_ptr ACSSampObjImpl< ACS_SAMP_C >::reference_p [private] |
|
Referenced by ACSSampObjImpl< ACS_SAMP_TL >::getCORBAReference(). |
|
template<ACS_SAMP_C > ACSSampImpl* ACSSampObjImpl< ACS_SAMP_C >::samp_p [private] |
|
template<ACS_SAMP_C > ACE_CString ACSSampObjImpl< ACS_SAMP_C >::sampChannelName [private] |
|
template<ACS_SAMP_C > ACS::TimeInterval ACSSampObjImpl< ACS_SAMP_C >::sampFrequency [private] |
|
Referenced by ACSSampObjImpl< ACS_SAMP_TL >::getSampFrequency(). |
|
template<ACS_SAMP_C > ACE_CString ACSSampObjImpl< ACS_SAMP_C >::sampObjName [private] |
|
template<ACS_SAMP_C > ACS::TimeInterval ACSSampObjImpl< ACS_SAMP_C >::sampReportRate [private] |
|
Referenced by ACSSampObjImpl< ACS_SAMP_TL >::getReportRate(). |
|
template<ACS_SAMP_C > nc::SimpleSupplier* ACSSampObjImpl< ACS_SAMP_C >::sampSupplier_p [private] |
|
Generated automatically by Doxygen for ACS-2016.2 C++ API from the source code. |