InterlockOperator Class
(Automation::InterlockOperator)The InterlockOperator overrides output to Set value if comparisson evaluates to true instead of input value. More...
Header: | #include <InterlockOperator.h> |
Inherits: | CDPOperator<T> |
Public Functions
InterlockOperator(const CDPPropertyBase &in) | |
virtual | ~InterlockOperator() |
Reimplemented Public Functions
virtual void | Configure(XMLPrimitive *pObjectXML) override |
virtual void | Create(const char *shortName, CDPBaseObject *parent) override |
virtual void | FillNodeChildren(CDP::StudioAPI::NodeStream &serializer) const override |
virtual unsigned int | Process() override |
- 18 public functions inherited from CDPOperator
- 17 public functions inherited from CDPOperatorBase
- 46 public functions inherited from CDPBaseObject
- 26 public functions inherited from CDP::StudioAPI::CDPNode
- 22 public functions inherited from CDP::StudioAPI::ICDPNode
Protected Functions
bool | isForced() const |
- 1 protected function inherited from CDP::StudioAPI::CDPNode
Additional Inherited Members
- 1 public variable inherited from CDPOperatorBase
- 1 static public member inherited from CDPBaseObject
- 8 protected variables inherited from CDPOperator
- 5 protected variables inherited from CDPOperatorBase
- 11 protected variables inherited from CDPBaseObject
Detailed Description
The InterlockOperator overrides output to Set value if comparisson evaluates to true instead of input value.
An InterlockOperator sets the output value depending on the 'Comparator' and CompareLeft/CompareRight values. It sets output value to Set value if CompareLeft and CompareRight comparisson expression is true
, otherwise it sets output value to input value.
Properties and Arguments
Name | Description |
---|---|
Comparator | Which comparator the interlock operator should use from selection |
In | The default input value. |
Out | The default output value. |
Set | The value to set into the output value when comparisson expression is true. |
CompareLeft | The compare value on the Left side of the Comparator |
CompareRight | The compare value on the right side of the Comparator |
When operator is used inside a signal its default input is automatically tied to signal's InternalValue or previous operator's output. Its default output is automatically tied to next operator's input or to signal's Value. See also CDP Operator Usage In CDP Signals.
Actual Processing Code of the InterlockOperator
unsigned int InterlockOperator<T>::Process() { if (!d->setValue || !d->compareLeft || !d->compareRight) return STATUS_ERROR; if(!isForced()) { this->m_output = static_cast<T>(this->m_input); return STATUS_OK; } else { this->m_output = static_cast<T>(*(d->setValue)); return STATUS_VALUE_FORCED; } }
See also Argument.
Member Function Documentation
InterlockOperator::InterlockOperator(const CDPPropertyBase &in)
Default constructs an instance of InterlockOperator.
[virtual]
InterlockOperator::~InterlockOperator()
Destructs the instance.
[override virtual]
void InterlockOperator::Configure(XMLPrimitive *pObjectXML)
Reimplemented from CDPBaseObject::Configure().
[override virtual]
void InterlockOperator::Create(const char *shortName, CDPBaseObject *parent)
Reimplemented from CDPBaseObject::Create().
[override virtual]
void InterlockOperator::FillNodeChildren(CDP::StudioAPI::NodeStream &serializer) const
Reimplemented from CDPNode::FillNodeChildren().
[override virtual]
unsigned int InterlockOperator::Process()
Reimplemented from CDPOperatorBase::Process().
Returns STATUS_VALUE_FORCED if comparisson expression is true
; otherwise returns STATUS_OK.
[protected]
bool InterlockOperator::isForced() const
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.