NDS3  1.0.0
API reference manual
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Naming policies

Enumerations

enum  nds::nodeType_t {
  nds::nodeType_t::generic, nds::nodeType_t::inputChannel, nds::nodeType_t::outputChannel, nds::nodeType_t::dataSourceChannel,
  nds::nodeType_t::dataSinkChannel, nds::nodeType_t::stateMachine
}
 Defines the nodes' roles in the tree structure: it is used to build the node's external name when using the Naming rules. More...
 
enum  nds::inputPvType_t { nds::inputPvType_t::generic, nds::inputPvType_t::getLocalState, nds::inputPvType_t::getGlobalState }
 Defines an input PV's role: this information is used to build the PV's external name when using the Naming rules. More...
 
enum  nds::outputPvType_t { nds::outputPvType_t::generic, nds::outputPvType_t::setLocalState }
 Defines an output PV's role: this information is used to build the PV's external name when using the Naming rules. More...
 

Functions

void nds::Base::setExternalName (const std::string &externalName)
 Set the string to pass to the naming rules in order to build the full node name as seen by the control system. More...
 
const std::string & nds::Base::getComponentName () const
 Return the node's name. More...
 
const std::string & nds::Base::getFullName () const
 Return the full node's name, prepending the parents' names if necessary (e.g. "ROOT-CHANNEL1-THISNODE") More...
 
const std::string & nds::Base::getFullExternalName () const
 Return the full node's name as seen by the control system clients. More...
 
const std::string & nds::Base::getFullNameFromPort () const
 Return the node's name as seen by the parent Port node (the node that communicates with the device). More...
 

Detailed Description

Each node or PV of a device has a "component name" that identifies the node within its siblings with the same parent, and a "full name" that uniquely identifies the node in the device.

The full name is calculated by prepending all the parents' names to the component name.

Let's consider the following structure of nodes (each line represents a node, the indentation shows the position in the tree structure):

The structure shows that there are two nodes with the name "Data", but their full name differs: the first node has the full name "rootNode-AcquisitionNode0-Data" while the second node has the full name "rootNode-AcquisitionNode1-Data".

Internally NDS always separates the component names with a dash ("-").

Warning
It is not possible to have two nodes with the same full name.

Each node can be exposed to the control system by using a name that is different from the internal name.

For each node you can set the external name via nds::Base::setExternalName(). The default value of the external name is the same as the component name.

The external name is also processed by the Naming rules in order to calculate the full name with which the node is exposed to the control system.

Enumeration Type Documentation

enum nds::inputPvType_t
strong

Defines an input PV's role: this information is used to build the PV's external name when using the Naming rules.

Enumerator
generic 

The PV's role is not specified.

getLocalState 

The PV is used to retrieve the local state of a state machine.

getGlobalState 

The PV is used to retrieve the global state.

enum nds::nodeType_t
strong

Defines the nodes' roles in the tree structure: it is used to build the node's external name when using the Naming rules.

Enumerator
generic 

The node's role is not specified.

inputChannel 

The node contains mainly input PVs.

outputChannel 

The node contains mainly output PVs.

dataSourceChannel 

The node contains a PV that pushes acquired data.

dataSinkChannel 

The node contains a PV that receives pushed data.

stateMachine 

The node implements a state machine.

enum nds::outputPvType_t
strong

Defines an output PV's role: this information is used to build the PV's external name when using the Naming rules.

Enumerator
generic 

The PV's role is not specified.

setLocalState 

The PV is used to change the local state of a state machine.

Function Documentation

const std::string& nds::Base::getComponentName ( ) const

Return the node's name.

Returns
the node's name.
const std::string& nds::Base::getFullExternalName ( ) const

Return the full node's name as seen by the control system clients.

The external name is calculated from the node's full name (see getFullName) by applying the rules specified in the naming rules.

Returns
the full node name as seen by the control system clients.
const std::string& nds::Base::getFullName ( ) const

Return the full node's name, prepending the parents' names if necessary (e.g. "ROOT-CHANNEL1-THISNODE")

Returns
the fully qualified node's name
const std::string& nds::Base::getFullNameFromPort ( ) const

Return the node's name as seen by the parent Port node (the node that communicates with the device).

For instance, for a record "TIME" contained in the channel "CH0" that is part of an Port named "DEVICE" the return value will be "CH0-TIME": node that the "DEVICE" part is missing.

Returns
the node's name relative to the Port that contains it.
void nds::Base::setExternalName ( const std::string &  externalName)

Set the string to pass to the naming rules in order to build the full node name as seen by the control system.

If this method is not called then the external name is the same as the node name.

Parameters
externalNamethe name of the node to pass to the naming rules