IntegralOperator Class
(Automation::IntegralOperator)The Integral operator calculates the mathematical integral (ie. time weighted cumulative sum) of the input value. More...
Header: | #include <IntegralOperator.h> |
Inherits: | CDPOperator<T> |
Public Functions
IntegralOperator(const CDPPropertyBase &in) |
Reimplemented Public Functions
virtual void | Create(const char *shortName, CDPBaseObject *parent) override |
virtual void | FillNodeChildren(CDP::StudioAPI::NodeStream &stream) 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 Integral operator calculates the mathematical integral (ie. time weighted cumulative sum) of the input value.
Arguments and Properties
Name | Description |
---|---|
In | The default input value. |
Out | The default output value (the integral of the input). |
Reset | Resets Integral calculation. When toggled from 0 to 1 integrated value will be reset (zeroed). |
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.
Note: This operator can't be used in I/O Servers / CDPChannels because it requires to be run with a constant period. I/O Servers can't always guarantee periodic running since they may be in Offline state, or they can send/receive on change.
Example
Below is example plot with Sine signal (cyan) and the same signal with Integral operator applied (orange):
Actual Processing Code of the IntegralOperator
unsigned int IntegralOperator<T>::Process() { if (m_reset) { m_output = 0; m_reset = false; } m_output = static_cast<T>(m_output) + static_cast<T>(m_input) * CDPOperator<T>::GetOperatorPeriod(); return STATUS_OK; }
See also Argument.
Member Function Documentation
IntegralOperator::IntegralOperator(const CDPPropertyBase &in)
Default constructs an instance of IntegralOperator.
[override virtual]
void IntegralOperator::Create(const char *shortName, CDPBaseObject *parent)
[override virtual]
void IntegralOperator::FillNodeChildren(CDP::StudioAPI::NodeStream &stream) const
[override virtual]
unsigned int IntegralOperator::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.