openDAQ
Open data acquisition platform
GenericFunctionBlockPtr< InterfaceType > Class Template Reference

Function blocks perform calculations on inputs/generate data, outputting new data in its output signals as packets. More...

+ Inheritance diagram for GenericFunctionBlockPtr< InterfaceType >:
+ Collaboration diagram for GenericFunctionBlockPtr< InterfaceType >:

Detailed Description

template<typename InterfaceType>
class GenericFunctionBlockPtr< InterfaceType >

Function blocks perform calculations on inputs/generate data, outputting new data in its output signals as packets.

Each function block describes its behaviour and identifiers in its FunctionBlockType structure. It provides a list of input ports that can be connected to signals that the input port accepts, as well as a list of output signals that carry the function block's output data.

Additionally, as each function block is a property object, it can define its own set of properties, providing user-configurable settings. In example, a FFT function block would expose a blockSize property, defining the amount of samples to be used for calculation in each block.

Function blocks also provide a status signal, through which a status packet is sent whenever a connection to a new input port is formed, or when the status changes.

Public Member Functions

daq::FunctionBlockTypePtr getFunctionBlockType () const
 Gets an information structure contain metadata of the function block type. More...
 
daq::ListPtr< daq::IInputPort > getInputPorts (const daq::SearchFilterPtr &searchFilter=nullptr) const
 Gets a list of the function block's input ports. More...
 
daq::ListPtr< daq::ISignal > getSignals (const daq::SearchFilterPtr &searchFilter=nullptr) const
 Gets the list of the function block's output signals. More...
 
daq::ListPtr< daq::ISignal > getSignalsRecursive (const daq::SearchFilterPtr &searchFilter=nullptr) const
 Gets the list of the function block's visible output signals including signals from visible child function blocks. More...
 
daq::SignalPtr getStatusSignal () const
 Gets the function block's status signal. More...
 
daq::ListPtr< daq::IFunctionBlock > getFunctionBlocks (const daq::SearchFilterPtr &searchFilter=nullptr) const
 Gets a list of sub-function blocks. More...
 
daq::DictPtr< daq::IString, daq::IFunctionBlockType > getAvailableFunctionBlockTypes () const
 Gets all nested function block types that are supported, containing their description. More...
 
daq::FunctionBlockPtr addFunctionBlock (const daq::StringPtr &typeId, const daq::PropertyObjectPtr &config=nullptr) const
 Creates and adds a function block as the nested of current function block with the provided unique ID and returns it. More...
 
void removeFunctionBlock (const daq::FunctionBlockPtr &functionBlock) const
 Removes the function block provided as argument, disconnecting its signals and input ports. More...
 
- Public Member Functions inherited from GenericFolderPtr< InterfaceType >
daq::ListPtr< daq::IComponent > getItems (const daq::SearchFilterPtr &searchFilter=nullptr) const
 Gets the list of the items in the folder. More...
 
daq::Bool isEmpty () const
 Returns True if the folder is empty. More...
 
daq::Bool hasItem (const daq::StringPtr &localId) const
 Returns True if the folder has an item with local ID. More...
 
daq::GenericComponentPtr< daq::IComponent > getItem (const daq::StringPtr &localId) const
 Gets the item component with the specified localId. More...
 
- Public Member Functions inherited from GenericComponentPtr< InterfaceType >
daq::StringPtr getLocalId () const
 Gets the local ID of the component. More...
 
daq::StringPtr getGlobalId () const
 Gets the global ID of the component. More...
 
daq::Bool getActive () const
 Returns true if the component is active; false otherwise. More...
 
void setActive (daq::Bool active) const
 Sets the component to be either active or inactive. Also recursively sets the active field of all child components if component is a folder. More...
 
daq::ContextPtr getContext () const
 Gets the context object. More...
 
daq::ComponentPtr getParent () const
 Gets the parent of the component. More...
 
daq::StringPtr getName () const
 Gets the name of the component. More...
 
void setName (const daq::StringPtr &name) const
 Sets the name of the component. More...
 
daq::StringPtr getDescription () const
 Gets the description of the component. More...
 
void setDescription (const daq::StringPtr &description) const
 Sets the description of the component. More...
 
daq::TagsPtr getTags () const
 Gets the tags of the component. More...
 
daq::Bool getVisible () const
 Gets visible metadata state of the component. More...
 
void setVisible (daq::Bool visible) const
 Sets visible attribute state of the component. More...
 
daq::ListPtr< daq::IString > getLockedAttributes () const
 Gets a list of the component's locked attributes. The locked attributes cannot be modified via their respective setters. More...
 
daq::Event< daq::ComponentPtr, daq::CoreEventArgsPtr > getOnComponentCoreEvent () const
 Gets the Core Event object that triggers whenever a change to this component happens within the openDAQ core structure. More...
 
daq::ComponentStatusContainerPtr getStatusContainer () const
 Gets the container of Component statuses. More...
 
daq::ComponentPtr findComponent (const daq::StringPtr &id) const
 Finds the component (signal/device/function block) with the specified (global) id. More...
 
daq::OperationModeType getOperationMode () const
 Gets the operation mode of the device. More...
 
- Public Member Functions inherited from GenericPropertyObjectPtr< InterfaceType >
daq::StringPtr getClassName () const
 Gets the name of the class the Property object was constructed with. More...
 
void setPropertyValue (const daq::StringPtr &propertyName, const daq::BaseObjectPtr &value) const
 Sets the value of the Property with the given name. More...
 
daq::BaseObjectPtr getPropertyValue (const daq::StringPtr &propertyName) const
 Gets the value of the Property with the given name. More...
 
daq::BaseObjectPtr getPropertySelectionValue (const daq::StringPtr &propertyName) const
 Gets the selected value of the Property, if the Property is a Selection property. More...
 
void clearPropertyValue (const daq::StringPtr &propertyName) const
 Clears the Property value from the Property object. More...
 
daq::Bool hasProperty (const daq::StringPtr &propertyName) const
 Checks if the Property object contains a property named propertyName. More...
 
daq::PropertyPtr getProperty (const daq::StringPtr &propertyName) const
 Gets the Property with the given propertyName. More...
 
void addProperty (const daq::PropertyPtr &property) const
 Adds the property to the Property object. More...
 
void removeProperty (const daq::StringPtr &propertyName) const
 Removes the Property named propertyName from the Property object. More...
 
daq::Event< daq::PropertyObjectPtr, daq::PropertyValueEventArgsPtr > getOnPropertyValueWrite (const daq::StringPtr &propertyName) const
 Gets the Event that is triggered whenever a Property value is written to the Property named propertyName. More...
 
daq::Event< daq::PropertyObjectPtr, daq::PropertyValueEventArgsPtr > getOnPropertyValueRead (const daq::StringPtr &propertyName) const
 Gets the Event that is triggered whenever a Property value of a Property named propertyName is read. More...
 
daq::Event< daq::PropertyObjectPtr, daq::PropertyValueEventArgsPtr > getOnAnyPropertyValueWrite () const
 Gets the Event that is triggered whenever any Property value is written. The event is triggered after the specific Property event. More...
 
daq::Event< daq::PropertyObjectPtr, daq::PropertyValueEventArgsPtr > getOnAnyPropertyValueRead () const
 Gets the Event that is triggered whenever any Property value is read.The event is triggered after the specific Property event. More...
 
daq::ListPtr< daq::IProperty > getVisibleProperties () const
 Returns a list of visible properties contained in the Property object. More...
 
daq::ListPtr< daq::IProperty > getAllProperties () const
 Returns a list of all properties contained in the Property object. More...
 
void setPropertyOrder (const daq::ListPtr< daq::IString > &orderedPropertyNames) const
 Sets a custom order of properties as defined in the list of property names. More...
 
void beginUpdate () const
 Begins batch configuration of the object. More...
 
void endUpdate () const
 Ends batch configuration of the object. More...
 
daq::Bool getUpdating () const
 Returns the state of batch configuration. More...
 
daq::Event< daq::PropertyObjectPtr, daq::EndUpdateEventArgsPtr > getOnEndUpdate () const
 Gets the Event that is triggered whenever the batch configuration is applied. More...
 
daq::PermissionManagerPtr getPermissionManager () const
 Gets the permission manager of property object. More...
 

Member Function Documentation

◆ addFunctionBlock()

daq::FunctionBlockPtr addFunctionBlock ( const daq::StringPtr &  typeId,
const daq::PropertyObjectPtr &  config = nullptr 
) const
inline

Creates and adds a function block as the nested of current function block with the provided unique ID and returns it.

Returns
The added function block.
Parameters
typeIdThe unique ID of the function block. Can be obtained from its corresponding Function Block Info object.
configA config object to configure a function block with custom settings specific to that function block type.

◆ getAvailableFunctionBlockTypes()

daq::DictPtr<daq::IString, daq::IFunctionBlockType> getAvailableFunctionBlockTypes ( ) const
inline

Gets all nested function block types that are supported, containing their description.

Returns
A dictionary of available function block types.

◆ getFunctionBlocks()

daq::ListPtr<daq::IFunctionBlock> getFunctionBlocks ( const daq::SearchFilterPtr &  searchFilter = nullptr) const
inline

Gets a list of sub-function blocks.

Parameters
searchFilterProvides optional parameters such as "recursive" and "visibleOnly" to modify the search pattern.
Returns
The list of sub-function blocks.

If searchFilter is not provided, the returned list contains only visible function blocks and does not include those of child function blocks.

◆ getFunctionBlockType()

daq::FunctionBlockTypePtr getFunctionBlockType ( ) const
inline

Gets an information structure contain metadata of the function block type.

Returns
The Function block type object.

◆ getInputPorts()

daq::ListPtr<daq::IInputPort> getInputPorts ( const daq::SearchFilterPtr &  searchFilter = nullptr) const
inline

Gets a list of the function block's input ports.

Parameters
searchFilterProvides an optional filter that filters out unwanted components and allows for recursion.
Returns
The list of input ports.

If searchFilter is not provided, the returned list contains only visible input ports and does not include those of child function blocks.

◆ getSignals()

daq::ListPtr<daq::ISignal> getSignals ( const daq::SearchFilterPtr &  searchFilter = nullptr) const
inline

Gets the list of the function block's output signals.

Parameters
searchFilterProvides an optional filter that filters out unwanted components and allows for recursion.
Returns
The list of output signals.

If searchFilter is not provided, the returned list contains only visible signals and does not include those of child function blocks.

◆ getSignalsRecursive()

daq::ListPtr<daq::ISignal> getSignalsRecursive ( const daq::SearchFilterPtr &  searchFilter = nullptr) const
inline

Gets the list of the function block's visible output signals including signals from visible child function blocks.

Parameters
searchFilterProvides an optional filter that filters out unwanted components and allows for recursion.
Returns
The list of output signals.

◆ getStatusSignal()

daq::SignalPtr getStatusSignal ( ) const
inline

Gets the function block's status signal.

Returns
The status signal.

The status signal sends out a status event packet every time it is connected to an input port. Additionally, a status event packet is sent whenever the status of the function block changes.

◆ removeFunctionBlock()

void removeFunctionBlock ( const daq::FunctionBlockPtr &  functionBlock) const
inline

Removes the function block provided as argument, disconnecting its signals and input ports.

Parameters
functionBlockThe function block to be removed.