// zapstimu.hoc, based on zapstim.hoc
/* The stimulus is generated by an instance of the Fzap class 
(a point process that produces a sine wave of user-specified duration and
amplitude, that sweeps over a range of frequencies at a constant rate).
For each section that has the xtra mechanism, this waveform 
is used to drive is_xtra.
The transfer resistance rx_xtra takes care of the 
amplitude and sign of the local extracellular field.
*/

// default values
DEL = 2000  // ms
DUR = 4000  // ms
F0 = 50  // Hz
F1 = 50 // Hz
// AMP = 1  // nA
AMP = 500  // V/m


objref fz
fz = new Fzap(0.5)
// setpointer fz.x, is_xtra(0.5)
// setpointer fz.x, is_xtra
setpointer fz.x, E_xtrau

proc setstim() {
  fz.del = $1
  fz.dur = $2
  fz.f0 = $3
  fz.f1 = $4
  fz.amp = $5
}

setstim(DEL, DUR, F0, F1, AMP)
/*
print "Use setstim(DEL, DUR, F0, F1, AMP) to change latency (ms), duration (ms),"
print "start and end frequency (Hz), and amplitude (V/m) of applied electrical field."

xpanel("Applied Electrical Field", 0)
  xvalue("del (ms)", "DEL", 1, "setstim(DEL,DUR,F0,F1,AMP)", 0, 1)
  xvalue("dur (ms)", "DUR", 1, "setstim(DEL,DUR,F0,F1,AMP)", 0, 1)
  xvalue("start f (Hz)", "F0", 1, "setstim(DEL,DUR,F0,F1,AMP)", 0, 1)
  xvalue("end f (Hz)", "F1", 1, "setstim(DEL,DUR,F0,F1,AMP)", 0, 1)
  xvalue("amp (V/m)", "AMP", 1, "setstim(DEL,DUR,F0,F1,AMP)", 0, 1)
xpanel(73,497)*/