SIMLIB/C++  3.07
Classes | Public Member Functions | Protected Attributes | Private Member Functions | List of all members
simlib3::Delay Class Reference

continuous signal delay block More...

#include <delay.h>

Inheritance diagram for simlib3::Delay:
Inheritance graph
[legend]
Collaboration diagram for simlib3::Delay:
Collaboration graph
[legend]

Classes

struct  Buffer
 abstract base class for delayed signal samples storage More...
 

Public Member Functions

 Delay (Input i, double dt, double initvalue=0)
 initialize and register delay block More...
 
 ~Delay ()
 remove buffer and delay block from list More...
 
void Init ()
 initialize delay block More...
 
void Sample ()
 sample input (called automatically) More...
 
double Value () override
 output of continuous delay block More...
 
double Set (double newDT)
 change delay time (EXPERIMENTAL) More...
 
- Public Member Functions inherited from simlib3::aContiBlock1
 aContiBlock1 (Input i)
 constructor for blocks with single input More...
 
double InputValue ()
 
- Public Member Functions inherited from simlib3::aContiBlock
 aContiBlock ()
 
virtual void _Eval ()
 evaluate block (with loop detection) More...
 
- Public Member Functions inherited from simlib3::SimObject
bool TestAndSetFlag (bool new_value, unsigned n)
 internal method for flag manipulation is used for algebraic loop checking in continuous blocks More...
 
 SimObject ()
 constructor More...
 
virtual ~SimObject ()
 virtual destructor More...
 
void * operator new (size_t size)
 allocate object, set _flags More...
 
void operator delete (void *ptr)
 deallocate object More...
 
void * operator new[] (size_t size)=delete
 
void operator delete[] (void *ptr)=delete
 
bool isAllocated () const
 
virtual std::string Name () const
 get object name More...
 
bool HasName () const
 
void SetName (const std::string &name)
 assign the name More...
 
virtual void Output () const
 print object to default output More...
 

Protected Attributes

double last_time
 memory for delayed signal samples More...
 
double last_value
 last output value More...
 
Bufferbuffer
 memory for past values More...
 
double dt
 Parameter: delay time (should be > MaxStep) More...
 
double initval
 initial value (used at start) More...
 
- Protected Attributes inherited from simlib3::aContiBlock
bool isEvaluated
 
- Protected Attributes inherited from simlib3::SimObject
unsigned _flags
 bool flags for internal use (TODO bitfield?) More...
 

Private Member Functions

 Delay (const Delay &)
 
void operator= (const Delay &)
 

Additional Inherited Members

- Public Types inherited from simlib3::SimObject
enum  _Flags { _CLEAR_ALL_FLAGS = 0, _ALLOCATED_FLAG = 1<<0, _EVAL_FLAG = 1<<1, _HAS_NAME_FLAG = 1<<2 }
 

Detailed Description

continuous signal delay block

Definition at line 26 of file delay.h.

Constructor & Destructor Documentation

◆ Delay() [1/2]

simlib3::Delay::Delay ( const Delay )
private

◆ Delay() [2/2]

simlib3::Delay::Delay ( Input  i,
double  dt,
double  initvalue = 0 
)

initialize and register delay block

Definition at line 178 of file delay.cc.

References Dprintf, Init(), and simlib3::SIMLIB_Delay::Register().

◆ ~Delay()

simlib3::Delay::~Delay ( )

remove buffer and delay block from list

Definition at line 193 of file delay.cc.

References buffer, Dprintf, and simlib3::SIMLIB_Delay::UnRegister().

Member Function Documentation

◆ Init()

void simlib3::Delay::Init ( )

initialize delay block

initialize delay status

called automatically by Init(....) function initialize: buffer and last output value WARNING: does not change dt ### (maybe problem for multiple experiments) TODO: evaluate input expression of delay block?

Definition at line 207 of file delay.cc.

References buffer, simlib3::Delay::Buffer::clear(), initval, last_time, last_value, simlib3::Delay::Buffer::put(), and simlib3::Time.

Referenced by Delay().

◆ operator=()

void simlib3::Delay::operator= ( const Delay )
private

◆ Sample()

void simlib3::Delay::Sample ( )

sample input (called automatically)

sample input value

Definition at line 215 of file delay.cc.

References buffer, Dprintf, simlib3::aContiBlock1::InputValue(), simlib3::Delay::Buffer::put(), and simlib3::Time.

◆ Set()

double simlib3::Delay::Set ( double  newdelay)

change delay time (EXPERIMENTAL)

change delay time

TODO: EXPERIMENTAL — this should be used with care

Definition at line 239 of file delay.cc.

References dt, and simlib3::Time.

◆ Value()

double simlib3::Delay::Value ( )
overridevirtual

output of continuous delay block

get delayed output value

Implements simlib3::aContiBlock.

Definition at line 223 of file delay.cc.

References buffer, Dprintf, dt, simlib3::Delay::Buffer::get(), last_time, last_value, and simlib3::Time.

Member Data Documentation

◆ buffer

Buffer* simlib3::Delay::buffer
protected

memory for past values

Definition at line 45 of file delay.h.

Referenced by Init(), Sample(), Value(), and ~Delay().

◆ dt

double simlib3::Delay::dt
protected

Parameter: delay time (should be > MaxStep)

Definition at line 47 of file delay.h.

Referenced by Set(), and Value().

◆ initval

double simlib3::Delay::initval
protected

initial value (used at start)

Definition at line 48 of file delay.h.

Referenced by Init().

◆ last_time

double simlib3::Delay::last_time
protected

memory for delayed signal samples

last output time (for optimization)

Definition at line 40 of file delay.h.

Referenced by Init(), and Value().

◆ last_value

double simlib3::Delay::last_value
protected

last output value

Definition at line 44 of file delay.h.

Referenced by Init(), and Value().


The documentation for this class was generated from the following files: