18 "Sends out tabulated data according to lookup parameters."
30 "Start time used when table is emitting values. For lookup"
31 "values below this, the table just sends out its zero entry."
32 "Corresponds to zeroth entry of table.",
39 "Time to stop emitting values."
40 "If time exceeds this, then the table sends out its last entry."
41 "The stopTime corresponds to the last entry of table.",
48 "If looping, this is the time between successive cycle starts."
49 "Defaults to the difference between stopTime and startTime, "
50 "so that the output waveform cycles with precisely the same "
51 "duration as the table contents."
52 "If larger than stopTime - startTime, then it pauses at the "
53 "last table value till it is time to "
55 "If smaller than stopTime - startTime, then it begins the next "
56 "cycle even before the first one has reached the end of the "
64 "Increment in lookup (x) value on every timestep. If it is"
65 "less than or equal to zero, the StimulusTable uses the current time"
66 "as the lookup value.",
73 "Current value of lookup (x) value."
74 "If stepSize is less than or equal to zero, this is set to"
75 "the current time to use as the lookup value.",
82 "Flag: Should it loop around to startTime once it has reached"
83 "stopTime. Default (zero) is to do a single pass.",
93 "Handles process call, updates internal time stamp.",
96 "Handles reinit call.",
101 static Finfo* procShared[] = {
105 "Shared message for process and reinit",
106 procShared,
sizeof( procShared ) /
sizeof(
const Finfo* )
109 static Finfo* stimulusTableFinfos[] = {
125 sizeof( stimulusTableFinfos ) /
sizeof (
Finfo* ),
139 : start_( 0 ), stop_( 1 ), loopTime_( 1 ),
140 stepSize_( 0 ), stepPosition_( 0 ),
206 cout <<
"StimulusTable::setLoopTime: Warning: Cannot set to " <<
207 v <<
" as this value is below zero. Left unchanged at " <<
double getStopTime() const
double interpolate(double x, double xmin, double xmax) const
double getStartTime() const
void setStopTime(double v)
void setOutputValue(double val)
bool doubleEq(double x, double y)
void setStepPosition(double v)
void setStepSize(double v)
static const Cinfo * initCinfo()
static const Cinfo * initCinfo()
void setStartTime(double v)
static const Cinfo * stimulusTableCinfo
static SrcFinfo1< double > * output()
void process(const Eref &e, ProcPtr p)
void setLoopTime(double v)
void reinit(const Eref &e, ProcPtr p)
double getStepPosition() const
double getStepSize() const
double getLoopTime() const