neurenv/hoc/detectFire.hoc
2026-07-11 18:20:01 -04:00

55 lines
1.4 KiB
Plaintext

proc detectFire() { localobj savSCA
printf("detectFire entered\n")
savSCA = new File()
sprint(s,$s1)
savSCA.wopen(s)
fired = 0
firstfired = 0
firstunfired = 0
SCA = -20
SCA_t = SCA
SCA_b = SCA
nt = 100
for it = 1,nt {
printf("%d\n", it)
if (abs(SCA_t - SCA_b) >= 1e-2 || it == 1) {
setstim(DEL, DUR, SCA) // In stim.hoc
printf("Stim is set\n")
TMS_sim_simple()
printf("SCA = %f\tfired = %d\n", SCA, fired)
savSCA.printf("SCA = %f\tfired = %d\n", SCA, fired)
if (fired == 1 && firstunfired == 0) {
SCA_t = SCA
SCA = SCA/2
SCA_b = SCA
firstfired = 1
fired = 0
} else if (fired == 1 && firstunfired == 1) {
SCA_t = SCA
SCA = (SCA_t + SCA_b)/2
firstfired = 1
fired = 0
} else if (fired == 0 && firstfired == 0) {
SCA_b = SCA
SCA = SCA*2
SCA_t = SCA
firstunfired = 1
} else if (fired == 0 && firstfired == 1) {
SCA_b = SCA
SCA = (SCA_t + SCA_b)/2
firstunfired = 1
}
} else {
break
}
}
savSCA.close()
}