00001 #ifndef SIMPLESCALINGSPIKINGSYNAPSE_H_ 00002 #define SIMPLESCALINGSPIKINGSYNAPSE_H_ 00003 00004 #include "SimObject.h" 00005 #include "SimNetwork.h" 00006 00007 class SimpleScalingSpikingSynapse : public SimObject 00008 { 00009 SIMOBJECT( SimpleScalingSpikingSynapse, AdvancePhase::SpikeDriven ) 00010 public: 00011 const static int exc; 00012 const static int inh; 00013 const static int currExc; 00014 const static int currInh; 00015 const static int condExc; 00016 const static int condInh; 00017 00018 00019 SimpleScalingSpikingSynapse(int targetID = 1, float W = 1e-9f, float delay = 2e-4f); 00020 00021 virtual ~SimpleScalingSpikingSynapse(); 00022 00024 float W; 00025 00027 00031 float delay; 00032 00033 virtual double getManagedDelay() const; 00034 00035 virtual int spikeHit( spikeport_t port, SpikeEvent const& spike ); 00036 00037 virtual int advance(AdvanceInfo const &ai); 00038 00039 virtual SimObject * getChainedObject(); 00040 00042 virtual void outgoing(SimObject *receiver); 00043 00044 virtual int nSpikeInputPorts() const; 00045 00046 virtual int nSpikeOutputPorts() const; 00047 00048 virtual int nAnalogInputPorts() const; 00049 00050 virtual int nAnalogOutputPorts() const; 00051 00052 virtual PortType inputPortType(port_t i) const; 00053 00054 protected: 00055 SimObject *target; 00056 int target_id; 00057 00058 }; 00059 00060 #endif /*SIMPLELINEARSPIKINGSYNAPSE_H_*/