/******************************************************* * * DESCRIPTION: QBG capacitor class * * AUTHOR: Mariana C. D'Abreu * * EMAIL: mdabreu@dc.uba.ar * ********************************************************/ #ifndef _QBG_CAPACITOR_FI_H #define _QBG_CAPACITOR_FI_H #include "atomic.h" #include "message.h" #include "fstream.h" #include "quantizer.h" #define QBG_CAPACITOR_FI_CLASS_NAME "QBGCapacitorFlowIn" class QBGCapacitorFlowIn : public Atomic { public: QBGCapacitorFlowIn( const string &name = QBG_CAPACITOR_FI_CLASS_NAME ); ~QBGCapacitorFlowIn(); virtual string className() const { return QBG_CAPACITOR_FI_CLASS_NAME;} static const RealValue DefaultCapacitance; static const RealValue DefaultInitialLoad; protected: Model &initFunction() ; Model &externalFunction( const ExternalMessage & ); Model &internalFunction( const InternalMessage & ); Model &outputFunction( const InternalMessage & ); private: Model &createQuantizer(); const Port &f1p; // Port de entrada de flow Port &e1p; // Port de salida de effort RealValue qValue; // ultimo valor cuantificado RealValue time; // tiempo de ultima emision RealValue der; RealValue flow; // ultimo flow recibido RealValue c; // carga del capacitor RealValue nc; RealValue C; // constante del capacitor RealValue initialLoad; // carga inicial del capacitor bool init; RealValue eps1, eps2; RealValue quantum; // quantum RealValue hystWindow; // ventana de hysteresis Quantizer *quantizer; ofstream outFile; // output file string outFileName; }; #endif