iSpike
2.1
Spike conversion library for robotics
|
00001 #ifndef JOINTINPUTCHANNEL_HPP_ 00002 #define JOINTINPUTCHANNEL_HPP_ 00003 00004 //iSpike includes 00005 #include <iSpike/Channel/InputChannel/InputChannel.hpp> 00006 #include <iSpike/NeuronSim/IzhikevichNeuronSim.hpp> 00007 00008 //Other includes 00009 #include <boost/math/distributions/normal.hpp> 00010 #include <string> 00011 #include <vector> 00012 #include <map> 00013 using namespace std; 00014 00015 namespace ispike { 00016 00018 class JointInputChannel : public InputChannel { 00019 public: 00020 JointInputChannel(); 00021 virtual ~JointInputChannel(); 00022 const vector<unsigned>& getFiring() { return neuronSim.getSpikes(); } 00023 void initialize(Reader* reader, map<string, Property>& properties); 00024 void setProperties(map<string, Property>& properties); 00025 void step(); 00026 00027 00028 private: 00029 //========================== VARIABLES ========================== 00031 AngleReader* reader; 00032 00034 double minAngle; 00035 00037 double maxAngle; 00038 00040 double standardDeviation; 00041 00043 vector<double> neuronAngles; 00044 00046 boost::math::normal_distribution<double> normalDistribution; 00047 00049 IzhikevichNeuronSim neuronSim; 00050 00052 double currentFactor; 00053 00055 double constantCurrent; 00056 00058 double peakCurrent; 00059 00060 //============================== METHODS ========================= 00061 void updateProperties(map<string, Property>& properties); 00062 00063 }; 00064 00065 } 00066 00067 #endif /* JOINTINPUTCHANNEL_HPP_ */