COMMENT ipulse3.mod Generates a current pulse when it receives an input event. User specifies dur (pulse duration) and amp (pulse amplitude). Ignores events that arrive during an ongoing pulse. version 1.0 NTC author: Ted Carnevale ENDCOMMENT NEURON { POINT_PROCESS Ipulse3 RANGE dur, amp, i ELECTRODE_CURRENT i } UNITS { (nA) = (nanoamp) } PARAMETER { dur (ms) <0, 1e9> : duration of ON phase amp (nA) : how big } ASSIGNED { ival (nA) i (nA) on } INITIAL { on = 0 i = 0 ival = 0 } BREAKPOINT { i = ival } NET_RECEIVE (w) { if (flag == 0) { : not a self event if (on == 0) { : turn it on ival = amp on = 1 : prepare to turn it off net_send(dur, 1) } } else { : a self event : turn it off ival = 0 on = 0 } }