ICF 3.1.1.10
Technical documentation of ICF Libraries
CPulseParamsComp.h
Go to the documentation of this file.
1/********************************************************************************
2** This file is part of the ICF Framework. Copyright (C) Witold Gantzke & Kirill Lepskiy
3** ICF Framework may be used under the terms of the LGPL License v. 2.1 by the Free Software Foundation.
4********************************************************************************/
5
6#pragma once
7
8
9// ICF includes
10#include <imath/CVarVector.h>
12#include <isig/IPulseParams.h>
14
15
16namespace isig
17{
18
19
25 virtual public isig::IPulseParams
26{
27public:
29
30 I_BEGIN_COMPONENT(CPulseParamsComp);
31 I_REGISTER_INTERFACE(isig::IPulseParams);
32 I_REGISTER_INTERFACE(iser::ISerializable);
33 I_REGISTER_INTERFACE(istd::IChangeable);
34 I_ASSIGN(m_pulseConstraintsCompPtr, "Constraints", "Description of strobe parameter limits", false, "Constraints");
35 I_ASSIGN(m_delayTimeAttrPtr, "DelayTime", "Delay time from trigger to pulse, it is in seconds", true, 0);
36 I_ASSIGN(m_pulseDurationAttrPtr, "PulseDuration", "Duration of signal puls in seconds", true, 0);
37 I_ASSIGN(m_relaxingTimeAttrPtr, "RelaxingTime", "Relaxing time before new trigger is accepted after pulse", true, 0);
38 I_END_COMPONENT;
39
41
42 // reimplemented (isig::IPulseParams)
43 const IPulseConstraints* GetPulseConstraints() const override;
44 double GetDelayTime() const override;
45 void SetDelayTime(double time) override;
46 double GetPulseDuration() const override;
47 void SetPulseDuration(double time) override;
48 double GetRelaxingTime() const override;
49 void SetRelaxingTime(double time) override;
50
51 // reimplemented (iser::ISerializable)
52 bool Serialize(iser::IArchive& archive) override;
53
54protected:
55 // reimplemented (icomp::CComponentBase)
56 void OnComponentCreated() override;
57
58private:
59 I_REF(IPulseConstraints, m_pulseConstraintsCompPtr);
60 I_ATTR(double, m_delayTimeAttrPtr);
61 I_ATTR(double, m_pulseDurationAttrPtr);
62 I_ATTR(double, m_relaxingTimeAttrPtr);
63
64 double m_delayTime;
65 double m_pulseDuration;
66 double m_relaxingTime;
67};
68
69
70} // namespace isig
71
72
Base class for component implementation.
Represent input/output persistence archive.
Definition IArchive.h:34
Common class for all classes which objects can be archived or restored from archive.
Simple component implementation of IPulseParams interface.
void SetRelaxingTime(double time) override
Get relaxing time period after pulse ends needed to accept new begin.
void SetDelayTime(double time) override
Set delay time from begin (for example trigger edge) to pulse begin.
void SetPulseDuration(double time) override
Set pulse duration time.
double GetDelayTime() const override
Get delay time from begin (for example trigger edge) to pulse begin.
bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
double GetRelaxingTime() const override
Get relaxing time period after pulse ends needed to accept new begin.
icomp::CComponentBase BaseClass
double GetPulseDuration() const override
Get pulse duration time.
const IPulseConstraints * GetPulseConstraints() const override
Get access to constraits of this parameters.
void OnComponentCreated() override
Constraits of signal pulse paramters (isig::IPulseParams).
Parammeters of single signal pulse.
Common interface for data model objects, which can be changed.
Definition IChangeable.h:32
Contains interfaces and implementations of signal processing.

© Witold Gantzke and Kirill Lepskiy