253 {
return PACEMAKER_NEURON;}
257 Neuron::Copy(lpSource);
373 #pragma region DataAccesMethods
379 if(strType ==
"STEADYSTATEVOLTAGE")
382 if(strType ==
"INTERBURSTINTERVAL")
385 if(strType ==
"INTERBURSTTIMER")
398 if(strType ==
"VSSM")
400 Vssm(atof(strValue.c_str()));
406 Btl(atof(strValue.c_str()));
412 Mtl(atof(strValue.c_str()));
418 Th(atof(strValue.c_str()));
424 Il(atof(strValue.c_str()));
430 Ih(atof(strValue.c_str()));
436 THROW_PARAM_ERROR(Al_Err_lInvalidDataType, Al_Err_strInvalidDataType,
"Data Type", strDataType);
441 void PacemakerNeuron::QueryProperties(CStdPtrArray<TypeProperty> &aryProperties)
443 Neuron::QueryProperties(aryProperties);
445 aryProperties.Add(
new TypeProperty(
"SteadStateVoltage", AnimatPropertyType::Float, AnimatPropertyDirection::Get));
446 aryProperties.Add(
new TypeProperty(
"InterburstInterval", AnimatPropertyType::Float, AnimatPropertyDirection::Get));
447 aryProperties.Add(
new TypeProperty(
"InterburstTimer", AnimatPropertyType::Float, AnimatPropertyDirection::Get));
449 aryProperties.Add(
new TypeProperty(
"Vssm", AnimatPropertyType::Float, AnimatPropertyDirection::Set));
450 aryProperties.Add(
new TypeProperty(
"Btl", AnimatPropertyType::Float, AnimatPropertyDirection::Set));
451 aryProperties.Add(
new TypeProperty(
"Mtl", AnimatPropertyType::Float, AnimatPropertyDirection::Set));
452 aryProperties.Add(
new TypeProperty(
"Th", AnimatPropertyType::Float, AnimatPropertyDirection::Set));
453 aryProperties.Add(
new TypeProperty(
"Il", AnimatPropertyType::Float, AnimatPropertyDirection::Set));
454 aryProperties.Add(
new TypeProperty(
"Ih", AnimatPropertyType::Float, AnimatPropertyDirection::Set));
481 void PacemakerNeuron::Load(CStdXml &oXml)
487 Il(oXml.GetChildFloat(
"Il"));
488 Ih(oXml.GetChildFloat(
"Ih"));
489 Vssm(oXml.GetChildFloat(
"Vssm"));
490 Mtl(oXml.GetChildFloat(
"Mtl"));
491 Btl(oXml.GetChildFloat(
"Btl"));
492 Th(oXml.GetChildFloat(
"Th"));
float m_fltVss
The steady state voltage.
float Th()
Gets the time that the high current is active.
Firing rate neural module.
bool InactiveArray()
Gets the inactive array.
virtual float * GetDataPointer(const std::string &strDataType)
Returns a float pointer to a data item of interest in this object.
float Mtl()
Gets the slope used to calculate length of time that Il current remains active.
virtual float TimeStep()
Gets the time step for this moudle in time units.
float m_fltITime
Time that the current intrinsic current mode is active.
float m_fltBtl
The intercept of the linear function that is used to calculate the length of time that Il current rem...
unsigned char m_iIntrinsicType
Type of the intrinsic current that is active. (HI or LOW)
float m_fltVssm
A lower steady state threshold. If the steady state voltage of the neuron goes below this value then ...
virtual void StepSimulation()
Step the simulation for this object.
virtual void ResetSimulation()
Resets the simulation back to time 0.
PacemakerNeuron()
Default constructor.
virtual void ResetSimulation()
Resets the simulation back to time 0.
float Il()
Gets the low intrinsic current value.
virtual unsigned char NeuronType()
Gets the neuron type.
virtual ~PacemakerNeuron()
Destructor.
virtual bool SetData(const std::string &strDataType, const std::string &strValue, bool bThrowError=true)
Set a variable based on a string data type name.
float m_aryVn[2]
Current and next Membrane voltage. Vn.
virtual void StepSimulation()
Step the simulation for this object.
float m_fltInterburstInterval
The interburst interval.
virtual float * GetDataPointer(const std::string &strDataType)
Returns a float pointer to a data item of interest in this object.
float m_fltIntrinsicI
Intrinsic current.
float Ih()
Gets the high intrinsic current value.
float m_fltIl
The hyperpolarizing current that brings the membrane potential back down after it has been firing...
void LowCurrentOn(float fltVss)
Turns the low current on.
virtual bool SetData(const std::string &strDataType, const std::string &strValue, bool bThrowError=true)
Set a variable based on a string data type name.
virtual long CalculateSnapshotByteSize()
Calculates the snapshot byte size.
float m_fltTh
This is the length of time that the Ih current remains active.
virtual void SaveKeyFrameSnapshot(byte *aryBytes, long &lIndex)
Saves a key frame snapshot.
virtual float CalculateIntrinsicCurrent(FiringRateModule *lpModule, float fltInputCurrent)
Calculates the intrinsic current.
float Vssm()
Gets the lower steady state threshold.
Declares the synapse class.
void HighCurrentOn()
Turns the high current on.
float Btl()
Gets the intercept used to calculate length of time that Il current remains active.
float m_fltVth
Firing frequency voltage threshold.
Declares the firing rate module class.
Declares the pacemaker neuron class.
float m_fltMtl
The slope of the linear function that is used to calculate the length of time that Il current remains...
virtual void LoadKeyFrameSnapshot(byte *aryBytes, long &lIndex)
Loads a key frame snapshot.
bool ActiveArray()
Gets the active array.
Contains the classes for a firing rate neural model.
std::string Std_CheckString(std::string strVal)
Converts a string to upper case and trims it.
virtual void SaveKeyFrameSnapshot(byte *aryBytes, long &lIndex)
Saves a key frame snapshot.
virtual void LoadKeyFrameSnapshot(byte *aryBytes, long &lIndex)
Loads a key frame snapshot.
float m_fltGn
Membrane conductance.
virtual long CalculateSnapshotByteSize()
Calculates the snapshot byte size.
float ITime()
Gets the duration for the current mode.
unsigned char IntrinsicType()
Gets the intrinsic current type. (HI or LOW)
FiringRateModule * m_lpFRModule
Pointer to the parent FiringRateModule.
float m_fltIh
The slope of the linear function that is used to calculate the length of time that Il current remains...