56 lines
1.5 KiB
Plaintext
56 lines
1.5 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()
|
|
|
|
}
|