AnimatLab  2
Test
AnimatCarlSim::CsNeuralModule Class Reference

Firing rate neural module. More...

#include <CsNeuralModule.h>

+ Inheritance diagram for AnimatCarlSim::CsNeuralModule:
+ Collaboration diagram for AnimatCarlSim::CsNeuralModule:

Public Member Functions

 CsNeuralModule ()
 Default constructor. More...
 
virtual ~CsNeuralModule ()
 Destructor. More...
 
virtual void AddConnectionGenerator (std::string strID, CsConnectionGenerator *lpGen)
 
virtual bool AddItem (const std::string &strItemType, const std::string &strXml, bool bThrowError=true, bool bDoNotInit=false)
 Adds a new object to this parent. More...
 
virtual void AddNeuronGroup (std::string strXml, bool bDoNotInit=false)
 Adds a neuron to the module. More...
 
virtual void AddSynapse (CsSynapseGroup *lpSynapse)
 Adds a synapse to this module. More...
 
virtual void AddSynapse (std::string strXml, bool bDoNotInit)
 Adds a synapse using an xml packet. More...
 
virtual void ClearSynapses ()
 Clears the synapses list. More...
 
virtual CsConnectionGeneratorFindConnectionGenerator (std::string strID, bool bThrowError=true)
 Searches for an item with the specified ID and sets its index in the array. More...
 
virtual int FindNeuronGroupListPos (std::string strID, bool bThrowError=true)
 Searches for the neuron with the specified ID and returns its position in the list. More...
 
virtual int FindSynapseListPos (std::string strID, bool bThrowError=true)
 Searches for a synapse with the specified ID and returns its position in the list. More...
 
virtual CsSynapseGroupGetSynapse (int iIndex)
 Gets a synapse by its index in the array. More...
 
virtual CStdPtrArray< CsSynapseGroup > * GetSynapses ()
 Gets a pointer to the synapses array. More...
 
virtual void Initialize ()
 Initializes this object. More...
 
virtual void Kill (bool bState=true)
 Kills. More...
 
virtual void Load (CStdXml &oXml)
 
virtual std::string ModuleName ()
 Gets the module name. More...
 
virtual void QueryProperties (CStdPtrArray< TypeProperty > &aryProperties)
 
virtual bool RemoveItem (const std::string &strItemType, const std::string &strID, bool bThrowError=true)
 Removes a child item from this parent. More...
 
virtual void RemoveNeuronGroup (std::string strID, bool bThrowError=true)
 Removes the neuron with the specified ID. More...
 
virtual void RemoveSynapse (int iIndex)
 Removes the synapse described by iIndex. More...
 
virtual void RemoveSynapse (std::string strID, bool bThrowError=true)
 Removes the synapse by the GUID ID. More...
 
virtual void ResetSimulation ()
 Resets the simulation back to time 0. More...
 
virtual bool SetData (const std::string &strDataType, const std::string &strValue, bool bThrowError=true)
 Set a variable based on a string data type name. More...
 
virtual void SimMode (int iMode)
 
virtual int SimMode ()
 
virtual void SimStarting ()
 When the simulation is starting we need to configure our NN and start our processing thread. More...
 
virtual void SimStopping ()
 Called just before the simulation stops. More...
 
virtual unsigned int SimulationStepInterval ()
 Tells the number of simulation steps that other components, like stimuli, will need to use for their step interval. More...
 
virtual CpuSNNSNN ()
 
virtual void StepSimulation ()
 Step the simulation for this object. More...
 
virtual bool stepUpdate (CpuSNN *s, int step)
 
virtual int TotalSynapses ()
 Gets the total number of synapses. More...
 
virtual void updateMonitors (CpuSNN *s, int step)
 
- Public Member Functions inherited from AnimatSim::Behavior::ThreadedModule
 ThreadedModule (void)
 Default constructor. More...
 
virtual ~ThreadedModule (void)
 Destructor. More...
 
virtual float * GetDataPointer (const std::string &strDataType)
 Returns a float pointer to a data item of interest in this object. More...
 
virtual void PauseThread (bool bVal)
 
virtual bool PauseThread ()
 
virtual void QueryProperties (CStdPtrArray< TypeProperty > &aryProperties)
 Queries this object for a list of properties that can be changed using SetData. More...
 
virtual void SetupThread ()
 This method is called after all connections to whatever control board have been made. It calls each parts SetupIO method. For example, We connect to a Firmata microcontroller like an Arduino, and then do a setup that could take some time. We should not attempt to setup any of the pins until after the board itself has been setup. After that we need to loop through and setup all the parts. More...
 
virtual void ShutdownThread ()
 This method is called just before the IO thread is closed down. It gives the IO objects a chance to do any required cleanup. More...
 
virtual float StepThreadDuration ()
 Gets the time duration required to perform one step of the thread for all parts in this control. More...
 
virtual bool ThreadPaused ()
 
- Public Member Functions inherited from AnimatSim::Behavior::NeuralModule
 NeuralModule ()
 Default constructor. More...
 
virtual ~NeuralModule ()
 Destructor. More...
 
virtual void AddExternalSynapse (AnimatSim::Link *lpSynapse)
 
virtual void AddExternalSynapse (std::string strXml, bool bDoNotInit)
 Adds a synapse using an xml packet. More...
 
virtual void AttachSourceAdapter (Adapter *lpAdapter)
 Attaches a source adapter. More...
 
virtual void AttachTargetAdapter (Adapter *lpAdapter)
 Attaches a target adapter. More...
 
virtual IStdClassFactoryClassFactory ()
 Gets the class factory. More...
 
virtual void ClassFactory (IStdClassFactory *lpFactory)
 
virtual int FindExternalSynapseListPos (std::string strID, bool bThrowError=true)
 Searches for a synapse with the specified ID and returns its position in the list. More...
 
OrganismGetOrganism ()
 Gets the organism. More...
 
SimulatorGetSimulator ()
 Gets the simulator. More...
 
virtual bool NeedToStep (bool bIncrement)
 Tells whether this NeuralModule needs to call StepSimulation. More...
 
virtual void RemoveExternalSynapse (std::string strID, bool bThrowError=true)
 Removes the synapse by the GUID ID. More...
 
virtual void RemoveSourceAdapter (Adapter *lpAdapter)
 Removes a source adapter. More...
 
virtual void RemoveTargetAdapter (Adapter *lpAdapter)
 Removes a target adapter. More...
 
virtual void ResetStepCounter ()
 
virtual void SetSystemPointers (Simulator *lpSim, Structure *lpStructure, NeuralModule *lpModule, Node *lpNode, bool bVerify)
 Sets the system pointers. More...
 
virtual void StepAdapters ()
 Step adapters. More...
 
virtual float TimeStep ()
 Gets the time step for this moudle in time units. More...
 
virtual void TimeStep (float fltVal)
 Sets the Time step for this moudle in time units. More...
 
virtual short TimeStepInterval ()
 Gets the time step interval. More...
 
virtual void TimeStepInterval (short iVal)
 Sets ime step interval. More...
 
virtual void VerifySystemPointers ()
 Verify that system pointers have been set correctly. More...
 
- Public Member Functions inherited from AnimatSim::AnimatBase
 AnimatBase ()
 Constructs an AnimatBase object. More...
 
virtual ~AnimatBase ()
 Destroys the AnimatBase object.. More...
 
virtual void AfterResetSimulation ()
 Called after a simulation reset for some objects. More...
 
virtual long CalculateSnapshotByteSize ()
 Calculates the snapshot byte size. More...
 
virtual void Copy (CStdSerialize *lpSource)
 
virtual void Enabled (bool bVal)
 Tells whether this item is enabled or not. This is not actually used for all objects, only specific ones. I am putting it in the base class though to prevent numerous duplications. More...
 
virtual bool Enabled ()
 Tells whether this item is enabled or not. This is not actually used for all objects, only specific ones. I am putting it in the base class though to prevent numerous duplications. More...
 
virtual NeuralModuleGetNeuralModule ()
 Gets the neural module. More...
 
virtual NodeGetNode ()
 Gets the node. More...
 
virtual StructureGetStructure ()
 Gets the structure for this node. More...
 
virtual bool HasProperty (const std::string &strName)
 Queries this object if it has a property with the given name. More...
 
virtual std::string ID ()
 Gets the unique GUID ID of this object. More...
 
virtual void ID (std::string strValue)
 Sets the unique GUID ID of the object. More...
 
virtual void Load (StdUtils::CStdXml &oXml)
 Loads the item using an XML data packet. More...
 
virtual void LoadKeyFrameSnapshot (byte *aryBytes, long &lIndex)
 Loads a key frame snapshot. More...
 
virtual std::string Name ()
 Gets the name of this object. More...
 
virtual void Name (std::string strValue)
 Sets the name of the object. Blank is acceptable. More...
 
virtual AnimatPropertyType PropertyType (const std::string &strName)
 
virtual void ReInitialize ()
 Re-initialize this object. More...
 
virtual void Reset ()
 Resets this object. More...
 
virtual void RigidBodyAdded (std::string strID)
 
virtual void RigidBodyRemoved (std::string strID)
 
virtual void SaveKeyFrameSnapshot (byte *aryBytes, long &lIndex)
 Saves a key frame snapshot. More...
 
virtual bool Selected ()
 Tells if this items is selected or not. More...
 
virtual void Selected (bool bValue, bool bSelectMultiple)
 Selects this object. More...
 
virtual bool SetData (const std::string &strDataType, const float fltValue, bool bThrowError=true)
 Set a variable based on a string data type name. More...
 
virtual bool SetData (const std::string &strDataType, const long lValue, bool bThrowError=true)
 Set a variable based on a string data type name. More...
 
virtual void SetSystemPointers (Simulator *lpSim, Structure *lpStructure, NeuralModule *lpModule, Node *lpNode, bool bVerify)
 Sets the system pointers. More...
 
virtual void SimPausing ()
 Called just before the simulation pauses. More...
 
virtual void TimeStepModified ()
 Notification method that the time step modified has been modified. Objects should recalculate any slice times as needed. More...
 
virtual std::string Type ()
 returns the string type name of this object. More...
 
virtual void Type (std::string strValue)
 Sets the class type for this object. More...
 
virtual void VisualSelectionModeChanged (int iNewMode)
 Visual selection mode changed. More...
 

Protected Member Functions

virtual void CloseThread ()
 
void LoadNetworkXml (CStdXml &oXml)
 Loads the network configuration. More...
 
CsNeuronGroupLoadNeuronGroup (CStdXml &oXml)
 Loads a neuron. More...
 
CsSynapseGroupLoadSynapse (CStdXml &oXml)
 Loads a synapse. More...
 
virtual void SetCARLSimulation ()
 
virtual void StepThread ()
 This method is called from within the IO thread. It calls StepIO for each part. More...
 
virtual void WaitForNeuralToCatchUp ()
 
virtual void WaitForPhysicsToCatchUp ()
 
- Protected Member Functions inherited from AnimatSim::Behavior::ThreadedModule
virtual void ExitPause ()
 This method is waits until the m_bIOPaused flag is set back to false. More...
 
virtual void ExitThread ()
 
virtual void ProcessThread ()
 
virtual void StartPause ()
 This method is waits until the m_bIOPaused flag is set to true. More...
 
virtual void StartThread ()
 
virtual void WaitForThreadNotifyReady ()
 
virtual void WaitTillPaused ()
 This method is waits until the m_bIOPaused flag is set to true. More...
 
virtual void WaitWhilePaused ()
 This method is waits until the m_bPauseIO flag is set back to false. More...
 
- Protected Member Functions inherited from AnimatSim::Behavior::NeuralModule
virtual int FindAdapterListIndex (CStdArray< Adapter * > aryAdapters, std::string strID, bool bThrowError=true)
 
virtual AnimatSim::LinkLoadExternalSynapse (CStdXml &oXml)
 Loads an external synapse. More...
 
virtual void LoadExternalSynapses (CStdXml &oXml)
 Loads external synapses. More...
 

Protected Attributes

CStdPtrMap< std::string, CsConnectionGeneratorm_aryGenerators
 
CStdPtrArray< CsNeuronGroupm_aryNeuronGroups
 The array of neuron groups in this module.
 
CStdPtrArray< CsSynapseGroupm_arySynapses
 The array of synapses in this module.
 
bool m_bWaitingForNeuralToCatchUp
 True if the physics simulation has finished and is waiting on the neural sim to catch up.
 
bool m_bWaitingForPhysicsToCatchUp
 True if the neural simulation has finished and is waiting on the physics sim to catch up.
 
float m_fltNeuralTime
 The current time of the neural simulation.
 
int m_iSimMode
 The mode of the simulation. GPU vs CPU.
 
CpuSNNm_lpSNN
 Pointer to the CARLsim simulator.
 
- Protected Attributes inherited from AnimatSim::Behavior::ThreadedModule
bool m_bPauseThread
 Set to true to pause the thread processing. Set back to false to resume it.
 
bool m_bSetupComplete
 Set to true once the thread is setup correctly.
 
bool m_bSetupStarted
 Set to true once the thread begins its setup.
 
bool m_bStopThread
 Flags the thread processing loop to exit.
 
bool m_bThreadPaused
 Is set to true once the thread loop is paused.
 
bool m_bThreadProcessing
 True while the io thread processing loop is going on.
 
bool m_bWaitingForThreadNotify
 Used to signal to the IO thread that we are waiting for their return signal.
 
float m_fltStepThreadDuration
 The time it takes to perform a step of the IO for all parts in this control.
 
boost::thread m_Thread
 Thread responsible for doing IO processing.
 
boost::interprocess::interprocess_condition m_WaitForSetupCond
 Condition used to determine when the IO is setup.
 
boost::interprocess::interprocess_mutex m_WaitForSetupMutex
 Mutex responsible for waiting until the IO is finished setting up.
 
- Protected Attributes inherited from AnimatSim::Behavior::NeuralModule
CStdPtrArray< AnimatSim::Linkm_aryExternalSynapses
 An array of external synapses connected to nodes within this module.
 
CStdArray< Adapter * > m_arySourceAdapters
 An array of source adapters for this module.
 
CStdArray< Adapter * > m_aryTargetAdapters
 An array of target adapters for this module.
 
float m_fltTimeStep
 The DT time step for this neural module in seconds.
 
short m_iTargetAdapterCount
 Number of target adapters.
 
short m_iTimeStepCount
 Count variable that keeps track of how many slices have occured since the last StepSimulation.
 
short m_iTimeStepInterval
 
IStdClassFactorym_lpClassFactory
 The pointer to the class factory for this module.
 
Organism * m_lpOrganism
 The pointer to the organism.
 
std::string m_strNeuralNetworkFile
 The string neural network file name.
 
std::string m_strProjectPath
 Full pathname of the string project file for this module.
 
- Protected Attributes inherited from AnimatSim::AnimatBase
bool m_bEnabled
 Tells if this item is enabled or not. If it is not enabled then it is not run.
 
bool m_bSelected
 Tells whether the object is selected or not.
 
AnimatSim::Behavior::NeuralModulem_lpModule
 The pointer to this items parentNeuralModule. If this is not relevant for this object then this is NULL.
 
Nodem_lpNode
 The pointer to this items parent Node. If this is not relevant for this object then this is NULL.
 
Simulatorm_lpSim
 The pointer to a Simulation.
 
AnimatSim::Environment::Structurem_lpStructure
 The pointer to this items parent Structure. If this is not relevant for this object then this is NULL.
 
std::string m_strID
 The unique Id for this object.
 
std::string m_strName
 The name for this object.
 
std::string m_strType
 The type for this object. Examples are Box, Plane, Neuron, etc..
 

Additional Inherited Members

- Static Public Member Functions inherited from AnimatSim::Behavior::ThreadedModule
static ThreadedModuleCastToDerived (AnimatBase *lpBase)
 
- Static Public Member Functions inherited from AnimatSim::Behavior::NeuralModule
static NeuralModuleCastToDerived (AnimatBase *lpBase)
 

Detailed Description

Firing rate neural module.

This neural module implements a firing rate neural model. The firing rate model is a more abstract representation of the neuron than an integrate and fire system. This type of model assumes that there is a linear relationship between cell depolarization and firing rate. After the neuron has depolarized beyond its threshold its firing rate increases linearly between 0 and 1 relative to the membrane potential and a gain value. Synapses inject current into post-synaptic neurons based on the firing rate. The synaptic weight is the amount of current to inject, and this is multiplied by the firing rate of the pre-synaptic neuron. this model also has modulatory and gated synapses.
Another feature of this model is that there are a few different types of neruons. These primarily differ based on how they implement intrinsic currents. Intrinsic currents are currents that are internal to the neuron. An exmample of this is the pacemaker neuron that generates currents internally to model bursting behavior.

Author
dcofer
Date
3/29/2011

Definition at line 35 of file CsNeuralModule.h.

Constructor & Destructor Documentation

AnimatCarlSim::CsNeuralModule::CsNeuralModule ( )
AnimatCarlSim::CsNeuralModule::~CsNeuralModule ( )
virtual

Destructor.

Author
dcofer
Date
3/29/2011

Definition at line 37 of file CsNeuralModule.cpp.

References m_aryNeuronGroups, m_arySynapses, and StdUtils::Std_TraceMsg().

+ Here is the call graph for this function:

Member Function Documentation

bool AnimatCarlSim::CsNeuralModule::AddItem ( const std::string &  strItemType,
const std::string &  strXml,
bool  bThrowError = true,
bool  bDoNotInit = false 
)
virtual

Adds a new object to this parent.

Generic method to add a new child item to this parent by specifying a string item type descriptor and an xml packet that can be used to load in the new object. The GUI uses this method to create new items that were added with the user interface. The item type lets the method determine what type of item is being created, like synapse, neuron, body part, etc.. It then gets the modulename, classname, and type from the xml and calls CreateObject to create the appropriate type of object. Then it passes in the xml packet to the new objects load method and does any needed initialization and adds it to the parent.

Author
dcofer
Date
2/22/2011
Parameters
strItemTypeString descriptor of the type of item that is being created.
strXmlXML packet that is used to create and load the new item.
bThrowErrorIf true then throw an error if there is a problem, otherwise return false.
Returns
true if it succeeds, false if it fails.

Reimplemented from AnimatSim::AnimatBase.

Definition at line 552 of file CsNeuralModule.cpp.

References AddNeuronGroup(), AddSynapse(), and StdUtils::Std_CheckString().

+ Here is the call graph for this function:

void AnimatCarlSim::CsNeuralModule::AddNeuronGroup ( std::string  strXml,
bool  bDoNotInit = false 
)
virtual

Adds a neuron to the module.

Author
dcofer
Date
3/29/2011
Parameters
strXmlThe xml to use when loading the neuron.

Definition at line 393 of file CsNeuralModule.cpp.

References AnimatCarlSim::CsNeuronGroup::Initialize(), and LoadNeuronGroup().

Referenced by AddItem().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void AnimatCarlSim::CsNeuralModule::AddSynapse ( CsSynapseGroup lpSynapse)
virtual

Adds a synapse to this module.

Author
dcofer
Date
9/28/2014
Parameters
[in,out]lpSynapsePointer to the synapse to add.

Definition at line 432 of file CsNeuralModule.cpp.

References m_arySynapses.

Referenced by AddItem(), and LoadSynapse().

+ Here is the caller graph for this function:

void AnimatCarlSim::CsNeuralModule::AddSynapse ( std::string  strXml,
bool  bDoNotInit 
)
virtual

Adds a synapse using an xml packet.

Author
dcofer
Date
3/29/2011
Parameters
strXmlThe xml of the synapse to add.

Definition at line 447 of file CsNeuralModule.cpp.

References AnimatCarlSim::CsSynapseGroup::Initialize(), and LoadSynapse().

+ Here is the call graph for this function:

void AnimatCarlSim::CsNeuralModule::ClearSynapses ( )
virtual

Clears the synapses list.

Author
dcofer
Date
3/29/2011

Definition at line 549 of file CsNeuralModule.cpp.

References m_arySynapses.

CsConnectionGenerator * AnimatCarlSim::CsNeuralModule::FindConnectionGenerator ( std::string  strID,
bool  bThrowError = true 
)
virtual

Searches for an item with the specified ID and sets its index in the array.

Author
dcofer
Date
10/2/2014
Parameters
strIDID of item to find.
bThrowErrortrue to throw error if not found.
Returns
If bThrowError is false and item is not found it returns NULL, otherwise if it is found then it returns pointer to the item.
Exceptions
IfbThrowError is true and no item with the specified ID is found then an exception is thrown.

Definition at line 92 of file CsNeuralModule.cpp.

References m_aryGenerators, and StdUtils::Std_CheckString().

+ Here is the call graph for this function:

int AnimatCarlSim::CsNeuralModule::FindNeuronGroupListPos ( std::string  strID,
bool  bThrowError = true 
)
virtual

Searches for the neuron with the specified ID and returns its position in the list.

Author
dcofer
Date
3/29/2011
Parameters
strIDGUID ID of the neruon to find.
bThrowErrortrue to throw error if nothing found.
Returns
The found neuron list position.

Definition at line 134 of file CsNeuralModule.cpp.

References AnimatSim::AnimatBase::ID(), m_aryNeuronGroups, StdUtils::Std_ToUpper(), and StdUtils::Std_Trim().

Referenced by RemoveNeuronGroup().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int AnimatCarlSim::CsNeuralModule::FindSynapseListPos ( std::string  strID,
bool  bThrowError = true 
)
virtual

Searches for a synapse with the specified ID and returns its position in the list.

Author
dcofer
Date
3/29/2011
Parameters
strIDGUID ID of the synapse to find.
bThrowErrortrue to throw error if no synapse is found.
Returns
The found synapse list position.

Definition at line 517 of file CsNeuralModule.cpp.

References AnimatSim::AnimatBase::ID(), m_arySynapses, StdUtils::Std_ToUpper(), and StdUtils::Std_Trim().

Referenced by RemoveSynapse().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

CsSynapseGroup * AnimatCarlSim::CsNeuralModule::GetSynapse ( int  iIndex)
virtual

Gets a synapse by its index in the array.

Author
dcofer
Date
3/29/2011
Parameters
iIndexZero-based index of the synaspe to return.
Returns
null if it fails, else the synapse.

Definition at line 499 of file CsNeuralModule.cpp.

References m_arySynapses.

CStdPtrArray< CsSynapseGroup > * AnimatCarlSim::CsNeuralModule::GetSynapses ( )
virtual

Gets a pointer to the synapses array.

Author
dcofer
Date
3/29/2011
Returns
Pointer to the synapses.

Definition at line 428 of file CsNeuralModule.cpp.

References m_arySynapses.

void AnimatCarlSim::CsNeuralModule::Initialize ( )
virtual

Initializes this object.

After an object is loaded in it must be initialized before it can be used. This allows the object to retrieve any pointers or setup memory that it will need during execution. Each object is responsible for initializing any of its child objects, so you simply need to call this method on the containing class to init all child objects. It also calls VerifySystemPointers to make sure that the system pointers have been setup correctly.

Author
dcofer
Date
3/1/2011

Reimplemented from AnimatSim::Behavior::NeuralModule.

Definition at line 322 of file CsNeuralModule.cpp.

References m_aryNeuronGroups, m_arySynapses, and AnimatSim::AnimatBase::m_lpStructure.

void AnimatCarlSim::CsNeuralModule::Kill ( bool  bState = true)
virtual

Kills.

Called to kill the organism, nervous system, neurons, and body parts. All neural items are disabled to prevent any further neural activity, and all joints are disabled to allow free rotation, and all biomechancical components are disabled so they can no longer produce forces. This method is only relevant to these types of objects, but I am putting the definition in the base class because a variety of different types of classes all need this method and I want it consolidated. Those classes that do not need it do not have to call it or do anything when it is called.

Author
dcofer
Date
3/3/2011
Parameters
bStatetrue to state.

Reimplemented from AnimatSim::AnimatBase.

Definition at line 115 of file CsNeuralModule.cpp.

References m_aryNeuronGroups.

void AnimatCarlSim::CsNeuralModule::LoadNetworkXml ( CStdXml &  oXml)
protected
CsNeuronGroup * AnimatCarlSim::CsNeuralModule::LoadNeuronGroup ( CStdXml &  oXml)
protected

Loads a neuron.

Author
dcofer
Date
3/29/2011
Parameters
[in,out]oXmlThe xml to load for the neuron.
Returns
Pointer to the loaded neuron.

Definition at line 682 of file CsNeuralModule.cpp.

References AnimatSim::Simulator::CreateObject(), m_aryNeuronGroups, AnimatSim::AnimatBase::m_lpSim, and AnimatSim::AnimatBase::m_lpStructure.

Referenced by AddNeuronGroup(), and LoadNetworkXml().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

CsSynapseGroup * AnimatCarlSim::CsNeuralModule::LoadSynapse ( CStdXml &  oXml)
protected

Loads a synapse.

Author
dcofer
Date
3/29/2011
Parameters
[in,out]oXmlThe xml to load.
Returns
Pointer to the created synapse.

Definition at line 728 of file CsNeuralModule.cpp.

References AddSynapse(), AnimatSim::Simulator::CreateObject(), AnimatSim::AnimatBase::m_lpSim, and AnimatSim::AnimatBase::m_lpStructure.

Referenced by AddSynapse(), and LoadNetworkXml().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::string AnimatCarlSim::CsNeuralModule::ModuleName ( )
virtual

Gets the module name.

Author
dcofer
Date
3/29/2011
Returns
.

Implements AnimatSim::Behavior::NeuralModule.

Definition at line 49 of file CsNeuralModule.cpp.

bool AnimatCarlSim::CsNeuralModule::RemoveItem ( const std::string &  strItemType,
const std::string &  strID,
bool  bThrowError = true 
)
virtual

Removes a child item from this parent.

This is a generic method that is used to delete a child object from this parent. The GUI uses this method to remove objects from the simulation that have been deleted in the UI. The item type lets the method determine what type of item is being deleted, like synapse, neuron, body part, etc.. The ID is then used to delete that specific item.

Author
dcofer
Date
2/22/2011
Parameters
strItemTypeString descriptor of the type of item that is being created.
strIDUnique ID of the item that will be removed.
bThrowErrorIf true then throw an error if there is a problem, otherwise return false.
Returns
true if it succeeds, false if it fails.

Reimplemented from AnimatSim::AnimatBase.

Definition at line 575 of file CsNeuralModule.cpp.

References RemoveNeuronGroup(), RemoveSynapse(), and StdUtils::Std_CheckString().

+ Here is the call graph for this function:

void AnimatCarlSim::CsNeuralModule::RemoveNeuronGroup ( std::string  strID,
bool  bThrowError = true 
)
virtual

Removes the neuron with the specified ID.

Author
dcofer
Date
3/29/2011
Parameters
strIDGUID ID for the neuron.
bThrowErrortrue to throw error if neuron found.

Definition at line 414 of file CsNeuralModule.cpp.

References FindNeuronGroupListPos(), and m_aryNeuronGroups.

Referenced by RemoveItem().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void AnimatCarlSim::CsNeuralModule::RemoveSynapse ( int  iIndex)
virtual

Removes the synapse described by iIndex.

Author
dcofer
Date
3/29/2011
Parameters
iIndexZero-based index of the synapse in the array.

Definition at line 467 of file CsNeuralModule.cpp.

References m_arySynapses.

Referenced by RemoveItem().

+ Here is the caller graph for this function:

void AnimatCarlSim::CsNeuralModule::RemoveSynapse ( std::string  strID,
bool  bThrowError = true 
)
virtual

Removes the synapse by the GUID ID.

Author
dcofer
Date
3/29/2011
Parameters
strIDGUID ID for the synapse to remove.
bThrowErrortrue to throw error if synaspe not found.

Definition at line 483 of file CsNeuralModule.cpp.

References FindSynapseListPos(), and m_arySynapses.

+ Here is the call graph for this function:

void AnimatCarlSim::CsNeuralModule::ResetSimulation ( )
virtual

Resets the simulation back to time 0.

This method calls the ResetSimulation method on all subitems in order to reset the simulation back to the beginning.

Author
dcofer
Date
3/1/2011

Reimplemented from AnimatSim::Behavior::NeuralModule.

Definition at line 303 of file CsNeuralModule.cpp.

References m_aryNeuronGroups, m_arySynapses, m_fltNeuralTime, and AnimatSim::Behavior::ThreadedModule::ShutdownThread().

+ Here is the call graph for this function:

bool AnimatCarlSim::CsNeuralModule::SetData ( const std::string &  strDataType,
const std::string &  strValue,
bool  bThrowError = true 
)
virtual

Set a variable based on a string data type name.

This is a generic method that can be used to set any variable in an AnimatBase object by specifying the name of the variable and a string representation of that data. The GUI uses this method to set data into variables in the simulation when the user changes them in the UI. The value string can be as simple as a float or int, or as complex as an xml packet. It is the developers responsibilty to know what type of data is needed and to process it accordingly.

Author
dcofer
Date
2/22/2011
Parameters
strDataTypestring name of the data type to set.
strValueThe string value of the data. It is up to the developer to determine what this should be. For example, in most cases it is simply a float and you just have to convert it to a float and make the appropriate mutator method call. However, it can be any type of string, including an entire xml packet. It is the developers responsibility to know how to set and process the data as required.
bThrowErrortrue to throw error if there is a problem. If false then it will not return an error, just return false.
Returns
true if it succeeds, false if it fails.

Reimplemented from AnimatSim::AnimatBase.

Definition at line 351 of file CsNeuralModule.cpp.

References StdUtils::Std_CheckString(), and AnimatSim::Behavior::NeuralModule::TimeStep().

+ Here is the call graph for this function:

void AnimatCarlSim::CsNeuralModule::SimStarting ( )
virtual

When the simulation is starting we need to configure our NN and start our processing thread.

When the simulation starts we need to re-run our configuration to setup the neural network in CARLsim and then start our processing loop.

Author
dcofer
Date
10/1/2014

Reimplemented from AnimatSim::AnimatBase.

Definition at line 280 of file CsNeuralModule.cpp.

References m_arySynapses, and AnimatSim::Behavior::ThreadedModule::m_bThreadProcessing.

void AnimatCarlSim::CsNeuralModule::SimStopping ( )
virtual

Called just before the simulation stops.

This method is called on each AnimatBase object when the simulation stops. It allows it to perform any intialization prior to the stop of the simulation that is needed.

Author
dcofer
Date
3/1/2011

Reimplemented from AnimatSim::AnimatBase.

Definition at line 296 of file CsNeuralModule.cpp.

References AnimatSim::Behavior::ThreadedModule::ShutdownThread().

+ Here is the call graph for this function:

unsigned int AnimatCarlSim::CsNeuralModule::SimulationStepInterval ( )
virtual

Tells the number of simulation steps that other components, like stimuli, will need to use for their step interval.

Author
dcofer
Date
10/11/2014
Returns
Step interval for the UpdateSteps of this module.

Definition at line 69 of file CsNeuralModule.cpp.

References AnimatSim::AnimatBase::m_lpSim.

void AnimatCarlSim::CsNeuralModule::StepSimulation ( )
virtual

Step the simulation for this object.

This is called on an object each time it is stepped in the simulation. this is where its simulation code is processed. However, StepSimulation is not necessarily called every single time that the simulation as a whole is stepped. A good example of this is that neural modules can have different integration time steps. So a firing rate module may have a DT of 0.5 ms, while an integrate and fire model may have one of 0.1 ms. So the firing rate module would only get its StepSimulation method called every 5th time that the other module was called. This is all handed in the StepSimulation method of the Simulator and NervousSystem.

Author
dcofer
Date
3/1/2011

Reimplemented from AnimatSim::Behavior::NeuralModule.

Definition at line 341 of file CsNeuralModule.cpp.

References AnimatSim::Behavior::ThreadedModule::m_bThreadProcessing, and m_bWaitingForPhysicsToCatchUp.

void AnimatCarlSim::CsNeuralModule::StepThread ( )
protectedvirtual

This method is called from within the IO thread. It calls StepIO for each part.

Author
dcofer
Date
5/2/2014

Reimplemented from AnimatSim::Behavior::ThreadedModule.

Definition at line 258 of file CsNeuralModule.cpp.

References m_iSimMode, m_lpSNN, and CpuSNN::runNetwork().

+ Here is the call graph for this function:

bool AnimatCarlSim::CsNeuralModule::stepUpdate ( CpuSNN s,
int  step 
)
virtual
Attention
The virtual method should never be called directly

Reimplemented from StepFeedback.

Definition at line 190 of file CsNeuralModule.cpp.

References AnimatSim::Behavior::ThreadedModule::m_bPauseThread, AnimatSim::Behavior::ThreadedModule::m_bStopThread, AnimatSim::Behavior::ThreadedModule::m_bThreadPaused, AnimatSim::AnimatBase::m_lpSim, and AnimatSim::Simulator::Paused().

+ Here is the call graph for this function:

int AnimatCarlSim::CsNeuralModule::TotalSynapses ( )
virtual

Gets the total number of synapses.

Author
dcofer
Date
3/29/2011
Returns
The total number of synapses.

Definition at line 540 of file CsNeuralModule.cpp.

References m_arySynapses.

Member Data Documentation

CStdPtrMap<std::string, CsConnectionGenerator> AnimatCarlSim::CsNeuralModule::m_aryGenerators
protected

This is a list of connection generators for building individual connections between populations of neurons.

Definition at line 46 of file CsNeuralModule.h.

Referenced by FindConnectionGenerator().


The documentation for this class was generated from the following files: