18 "Sends out a trigger for an event.");
28 "Handles process call",
31 "Handles reinit call",
34 static Finfo* processShared[] =
40 "Shared message to receive Process message from scheduler",
41 processShared,
sizeof( processShared ) /
sizeof(
Finfo* ) );
47 "Handles Vm message coming in from compartment",
55 "Spiking threshold, must cross it going up",
65 "Absolute refractory time. Synonym for refractT.",
70 "True if SpikeGen has just fired",
74 "When edgeTriggered = 0, the SpikeGen will fire an event in each "
75 "timestep while incoming Vm is > threshold and at least abs_refract"
76 "time has passed since last event. This may be problematic if the "
77 "incoming Vm remains above threshold for longer than abs_refract. "
78 "Setting edgeTriggered to 1 resolves this as the SpikeGen generates"
79 "an event only on the rising edge of the incoming Vm and will "
80 "remain idle unless the incoming Vm goes below threshold.",
85 static Finfo* spikeGenFinfos[] =
101 "Author",
"Upi Bhalla",
102 "Description",
"SpikeGen object, for detecting threshold crossings."
103 "The threshold detection can work in multiple modes.\n "
104 "If the refractT < 0.0, then it fires an event only at the rising "
105 "edge of the input voltage waveform"
111 spikeGenFinfos,
sizeof( spikeGenFinfos ) /
sizeof(
Finfo* ),
114 sizeof(doc)/
sizeof(
string)
222 #include "../shell/Shell.h"
268 cout <<
"." << flush;
void setThreshold(double threshold)
bool getEdgeTriggered() const
Id doCreate(string type, ObjId parent, string name, unsigned int numData, NodePolicy nodePolicy=MooseBlockBalance, unsigned int preferredNode=1)
static const Cinfo * spikeGenCinfo
static const Cinfo * initCinfo()
double getThreshold() const
static SrcFinfo1< double > * spikeOut()
void process(const Eref &e, ProcPtr p)
void handleVm(double val)
void setEdgeTriggered(bool yes)
static const Cinfo * initCinfo()
void reinit(const Eref &e, ProcPtr p)
double getRefractT() const
void setRefractT(double val)