AnimatLab  2
Test
CsNeuralModule.h
1 
7 #pragma once
8 
9 #include "CsNeuronGroup.h"
10 #include "CsSynapseGroup.h"
11 #include "CsSynapseIndividual.h"
12 #include "CsConnectionGenerator.h"
13 
17 namespace AnimatCarlSim
18 {
35  class ANIMAT_CARL_SIM_PORT CsNeuralModule : public AnimatSim::Behavior::ThreadedModule, StepFeedback
36  {
37  protected:
39  CStdPtrArray<CsNeuronGroup> m_aryNeuronGroups;
40 
42  CStdPtrArray<CsSynapseGroup> m_arySynapses;
43 
46  CStdPtrMap<std::string, CsConnectionGenerator> m_aryGenerators;
47 
50 
53 
56 
59 
62 
63  CsNeuronGroup *LoadNeuronGroup(CStdXml &oXml);
64  CsSynapseGroup *LoadSynapse(CStdXml &oXml);
65  void LoadNetworkXml(CStdXml &oXml);
66 
67  virtual void StepThread();
68  virtual void CloseThread();
69 
70  virtual void SetCARLSimulation();
71 
72  virtual void WaitForPhysicsToCatchUp();
73  virtual void WaitForNeuralToCatchUp();
74 
75  public:
77  virtual ~CsNeuralModule();
78 
87  virtual std::string ModuleName();
88 
89  virtual CpuSNN *SNN() {return m_lpSNN;};
90 
91  virtual bool stepUpdate(CpuSNN* s, int step);
92  virtual void updateMonitors(CpuSNN* s, int step);
93 
94  virtual void SimMode(int iMode);
95  virtual int SimMode();
96 
97  virtual unsigned int SimulationStepInterval();
98 
99  virtual CsConnectionGenerator *FindConnectionGenerator(std::string strID, bool bThrowError = true);
100  virtual void AddConnectionGenerator(std::string strID, CsConnectionGenerator *lpGen);
101 
102  virtual void Kill(bool bState = true);
103  virtual void Initialize();
104  virtual void SimStarting();
105  virtual void SimStopping();
106  virtual void ResetSimulation();
107  virtual void StepSimulation();
108  virtual void Load(CStdXml &oXml);
109 
110 #pragma region DataAccesMethods
111  virtual bool SetData(const std::string &strDataType, const std::string &strValue, bool bThrowError = true);
112  virtual void QueryProperties(CStdPtrArray<TypeProperty> &aryProperties);
113  virtual bool AddItem(const std::string &strItemType, const std::string &strXml, bool bThrowError = true, bool bDoNotInit = false);
114  virtual bool RemoveItem(const std::string &strItemType, const std::string &strID, bool bThrowError = true);
115 #pragma endregion
116 
117  virtual void AddNeuronGroup(std::string strXml, bool bDoNotInit = false);
118  virtual void RemoveNeuronGroup(std::string strID, bool bThrowError = true);
119  virtual int FindNeuronGroupListPos(std::string strID, bool bThrowError = true);
120 
121  virtual CStdPtrArray<CsSynapseGroup> *GetSynapses();
130  virtual void AddSynapse(CsSynapseGroup *lpSynapse);
131  virtual void AddSynapse(std::string strXml, bool bDoNotInit);
132  virtual void RemoveSynapse(int iIndex);
133  virtual void RemoveSynapse(std::string strID, bool bThrowError = true);
134  virtual CsSynapseGroup *GetSynapse(int iIndex);
135  virtual int TotalSynapses();
136  virtual void ClearSynapses();
137  virtual int FindSynapseListPos(std::string strID, bool bThrowError = true);
138  };
139 
140 } //FiringRateSim
Contains the classes for a firing rate neural model.
Definition: CsAdapter.cpp:14
used for fine-grained control over the stepping behavior during a runNetwork execution ...
Definition: snn.h:206
Declares the CsNeuronGroup class.
A Threaded neural module base class.
CStdPtrArray< CsSynapseGroup > m_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...
Firing rate synapse model.
Firing rate neural module.
Declares the synapse class.
float m_fltNeuralTime
The current time of the neural simulation.
Firing Rate Neuron model.
Definition: CsNeuronGroup.h:28
int m_iSimMode
The mode of the simulation. GPU vs CPU.
CpuSNN * m_lpSNN
Pointer to the CARLsim simulator.
CStdPtrMap< std::string, CsConnectionGenerator > m_aryGenerators
bool m_bWaitingForPhysicsToCatchUp
True if the neural simulation has finished and is waiting on the physics sim to catch up...
CStdPtrArray< CsNeuronGroup > m_aryNeuronGroups
The array of neuron groups in this module.
Contains all of CARLsim's core functionality.
Definition: snn.h:619