#ifndef READOUTREWARDGEN_H_
#define READOUTREWARDGEN_H_
#include "SimObject.h"
class ReadoutRewardGen : public SimObject {
SIMOBJECT( ReadoutRewardGen, AdvancePhase::One )
public:
ReadoutRewardGen()
{};
virtual ~ReadoutRewardGen();
virtual int reset(double dt);
virtual int advance( AdvanceInfo const& );
virtual int spikeHit( spikeport_t port, SpikeEvent const& spike );
virtual void setAnalogInput(double value, analog_port_id_t port = 0);
virtual double getAnalogOutput(analog_port_id_t port = 0) const;
virtual int nSpikeInputPorts() const;
virtual int nAnalogOutputPorts() const;
virtual PortType outputPortType(port_t p) const;
virtual PortType inputPortType(port_t p) const;
//! The generated reward [readonly; range=(-1e6,1e6);]
double reward;
//! Scale factor of the incoming spikes
double scale;
private:
bool hadSpike;
};
#endif /*READOUTREWARDGEN_H_*/