def checkForResets(neuronIndex, ADDSObj, dendObj, somaDirectObj, timeAndRefrac):
if ADDSObj.v2[neuronIndex] == 10*mV:
ADDSObj.v2[neuronIndex] = 0*mV
elif ADDSObj.v[neuronIndex] != -0.002 * mV:
ADDSObj.v2[neuronIndex] = ADDSObj.v[neuronIndex]
#if somaDirectObj.v2[neuronIndex] == 10*mV:
# somaDirectObj.v2[neuronIndex] = 0*mV
if (timeAndRefrac.beginRefrac[neuronIndex] == 1*mV) and (timeAndRefrac.relRefracTimeActivated[neuronIndex] == False):
timeAndRefrac.beginRefrac[neuronIndex] = 0*mV
timeAndRefrac.absRefracTime[neuronIndex] = timeAndRefrac.time
timeAndRefrac.relRefracTime[neuronIndex] = timeAndRefrac.time
timeAndRefrac.absRefracTimeActivated[neuronIndex] = True
timeAndRefrac.relRefracTimeActivated[neuronIndex] = True
# Absolute refrac
if timeAndRefrac.absRefracTimeActivated[neuronIndex] == True:
if timeAndRefrac.time >= (timeAndRefrac.absRefracTime[neuronIndex] + timeAndRefrac.absRefracTimeDuration):
timeAndRefrac.absRefracTimeActivated[neuronIndex] = False
# Relative refrac
if timeAndRefrac.relRefracTimeActivated[neuronIndex] == True:
if timeAndRefrac.time >= (timeAndRefrac.relRefracTime[neuronIndex] + timeAndRefrac.relRefracTimeDuration):
timeAndRefrac.relRefracTimeActivated[neuronIndex] = False
return ADDSObj.v2, somaDirectObj.v2, timeAndRefrac