00001 #ifndef BIASHOMEOSTASISMECHANISM_H_
00002 #define BIASHOMEOSTASISMECHANISM_H_
00003
00004 #include "EvSimObject.h"
00005 #include "EvSimObjectTypeUtils.h"
00006
00007 class BiasHomeostasisMechanism : public EvSimObject {
00008
00009 EV_SIM_OBJECT( BiasHomeostasisMechanism )
00010
00011 public:
00012 BiasHomeostasisMechanism(float eta = 1e-5,
00013 float rTarget = 20,
00014 bool isActive = true)
00015 {
00016 this->eta = eta;
00017 this->rTarget = rTarget;
00018 this->isActive = isActive;
00019 }
00020
00021 float eta;
00022
00023 float rTarget;
00024
00025 bool isActive;
00026
00027 virtual ~BiasHomeostasisMechanism();
00028
00029 virtual void postMountAsMountedObj(EvSimNetwork &net, EvSimObject::ID self, EvSimObject::ID mountpoint);
00030
00031 virtual void reset(SimContext &sim_ctxt);
00032
00033 virtual void eventHit(SimContext & sim_ctxt, Time time, port_id_t port);
00034
00035
00036 protected:
00037 float *bias_ptr;
00038 double last_update_time;
00039 };
00040
00041 #endif