/******************************************************* * * DESCRIPTION: QBG serial junction class * * AUTHOR: Mariana C. D'Abreu * * EMAIL: mdabreu@dc.uba.ar * ********************************************************/ #ifndef _QBG_SERIAL_JUNC_H #define _QBG_SERIAL_JUNC_H #include "atomic.h" #include "message.h" #define QBG_SERIAL_JUNC_CLASS_NAME "QBGSerialJunction" class QBGSerialJunction : public Atomic { public: QBGSerialJunction( const string &name = QBG_SERIAL_JUNC_CLASS_NAME ); ~QBGSerialJunction(); virtual string className() const { return QBG_SERIAL_JUNC_CLASS_NAME;} protected: Model &initFunction(); Model &externalFunction( const ExternalMessage & ); Model &internalFunction( const InternalMessage & ); Model &outputFunction( const InternalMessage & ); bool updateEffort( const string &, const RealValue & ); void resetEfforts(); void getPortValueAndSign( const string &, RealValue &, int & ); void setPortValue( const string &, const RealValue & ); void getPortInfo( const string &, string &, int &, string & ); private: const Port &f1p; // Port de entrada de flow positivo const Port &f1n; // Port de entrada de flow negativo const Port &e2p, &e3p, &e4p, &e5p, &e6p; // Ports de entrada de effort positivos const Port &e2n, &e3n, &e4n, &e5n, &e6n; // Ports de entrada de effort negativos Port &e1p; // Port de salida de effort positivo Port &e1n; // Port de salida de effort negativo Port &f2p, &f3p, &f4p, &f5p, &f6p; // Ports de salida de flow positivos Port &f2n, &f3n, &f4n, &f5n, &f6n; // Ports de salida de flow negativos RealValue *efforts; // Valor del effort de cada port RealValue flow; RealValue effortP; RealValue effortN; bool init; }; #endif