ToggleOperator Class
(Automation::ToggleOperator)The ToggleOperator toggles output value on input rising and/or falling edge(s). If configured edge is detected, output is changed to opposite value (from true
to false
or false
to true
correspondingly). More...
Header: | #include <ToggleOperator.h> |
Inherits: | CDPOperator<bool> |
Public Functions
ToggleOperator(const CDPPropertyBase &in) | |
virtual | ~ToggleOperator() |
Reimplemented Public Functions
virtual void | Create(const char *shortName, CDPBaseObject *parent) override |
virtual void | FillNodeChildren(CDP::StudioAPI::NodeStream &stream) const override |
virtual std::string | GetNodeTypeName() 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
Additional Inherited Members
- 1 public variable inherited from CDPOperatorBase
- 1 static public member inherited from CDPBaseObject
- 1 protected function inherited from CDP::StudioAPI::CDPNode
- 8 protected variables inherited from CDPOperator
- 5 protected variables inherited from CDPOperatorBase
- 11 protected variables inherited from CDPBaseObject
Detailed Description
The ToggleOperator toggles output value on input rising and/or falling edge(s). If configured edge is detected, output is changed to opposite value (from true
to false
or false
to true
correspondingly).
Properties
Property Name | Description |
---|---|
Edge | Specifies the edge type on which the signal is triggered. Possible types are:
|
NB! Input values can be routed from signals of another type. Then other type value is converted to boolean using C++ logic - zero values are converted to false
and other values are converted to true
.
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.
Example
Below is example plot with input boolean signal (cyan) with ToggleOperator(Edge=RisingEdge) applied (orange).
Actual Processing Code of the ToggleOperator
unsigned int ToggleOperator::Process() { if ((d->RisingEdgeToBeDetected() && d->RisingEdgeInInput((bool)m_input)) || (d->FallingEdgeToBeDetected() && d->FallingEdgeInInput((bool)m_input))) { m_output = !d->lastOutput; d->lastOutput = (bool)m_output; } else m_output = d->lastOutput; d->lastInput = (bool)m_input; return STATUS_OK; }
See also Argument.
Member Function Documentation
ToggleOperator::ToggleOperator(const CDPPropertyBase &in)
Constructs a ToggleOperator.
[virtual]
ToggleOperator::~ToggleOperator()
Destructs the ToggleOperator
[override virtual]
void ToggleOperator::Create(const char *shortName, CDPBaseObject *parent)
[override virtual]
void ToggleOperator::FillNodeChildren(CDP::StudioAPI::NodeStream &stream) const
[override virtual]
std::string ToggleOperator::GetNodeTypeName() const
[override virtual]
unsigned int ToggleOperator::Process()
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.