EdgeTriggerOperator Class
(Automation::EdgeTriggerOperator)The EdgeTriggerOperator triggers default output value on rising and/or falling edge(s). More...
Header: | #include <EdgeTriggerOperator.h> |
Inherits: | CDPOperator<T> |
Public Types
enum | Edge { eRisingEdge, eFallingEdge, eRisingAndFallingEdge } |
Public Functions
EdgeTriggerOperator(const CDPPropertyBase &in) | |
virtual | ~EdgeTriggerOperator() |
Edge | GetEdge() const |
T | GetThreshold() const |
void | SetEdge(Edge edge) |
void | SetThreshold(T threshold) |
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
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 EdgeTriggerOperator triggers default output value on rising and/or falling edge(s).
An EdgeTriggerOperator triggers its output value for one process period if the edge of the default input is greater or equal to threshold.
Properties and Arguments
Name | Description |
---|---|
Edge | Specifies the edge on which the signal is triggered. |
In | The default input value. |
Out | The default output value. |
Threshold | Specifies the threshold on which the signal is triggered. |
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 EdgeTriggerOperator
unsigned int EdgeTriggerOperator<T>::Process() { if (!d->threshold) return STATUS_ERROR; bool risingEdgeDetected = d->DetectRisingEdge(); bool fallingEdgeDetected = d->DetectFallingEdge(); m_output = (d->TestEdgeFlag(eRisingEdge) && risingEdgeDetected) || (d->TestEdgeFlag(eFallingEdge) && fallingEdgeDetected); return STATUS_OK; }
See also Argument.
Member Type Documentation
enum EdgeTriggerOperator::Edge
This enum specifies the edge of a input value to detect.
Constant | Value | Description |
---|---|---|
Automation::EdgeTriggerOperator::eRisingEdge | 0x01 | Rising edge of the input value. |
Automation::EdgeTriggerOperator::eFallingEdge | 0x02 | Falling edge of the input value. |
Automation::EdgeTriggerOperator::eRisingAndFallingEdge | eRisingEdge | eFallingEdge | Rising and falling edge of input value. |
Member Function Documentation
EdgeTriggerOperator::EdgeTriggerOperator(const CDPPropertyBase &in)
Constructs an EdgeTriggerOperator with input in.
[virtual]
EdgeTriggerOperator::~EdgeTriggerOperator()
Destructs the instance.
[override virtual]
void EdgeTriggerOperator::Configure(XMLPrimitive *pObjectXML)
Reimplemented from CDPBaseObject::Configure().
[override virtual]
void EdgeTriggerOperator::Create(const char *shortName, CDPBaseObject *parent)
Reimplemented from CDPBaseObject::Create().
[override virtual]
void EdgeTriggerOperator::FillNodeChildren(CDP::StudioAPI::NodeStream &serializer) const
Reimplemented from CDPNode::FillNodeChildren().
Edge EdgeTriggerOperator::GetEdge() const
Returns the edge on which the signal is triggered.
T EdgeTriggerOperator::GetThreshold() const
Returns the threshold on which the signal is triggered.
[override virtual]
unsigned int EdgeTriggerOperator::Process()
Reimplemented from CDPOperatorBase::Process().
Returns STATUS_OK.
void EdgeTriggerOperator::SetEdge(Edge edge)
Sets the edge on which the signal is triggered.
void EdgeTriggerOperator::SetThreshold(T threshold)
Sets the threshold on which the signal is triggered. The threshold argument must be positive, otherwise calling this function has no effect. If the threshold argument is equal to 0 then the signal is triggered on every change.
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.