namespace PlaQui {
namespace Model {
-
+
+/** Tanque de Agua/Líquido
+ *
+ * Se modela un tanque con una entrada y una salida. La cantidad máxima
+ * de flujo entrante estará dada por la diferencia entre la capacidad
+ * y la cantidad actual de líquido en el tanque.
+ * La cantidad máxima de flujo que puede ofrecer a la salida está dada
+ * por la cantidad de líquido en el tanque.
+ */
class Tank:public Source, public Drain {
public:
+ /// Constructor
Tank(const std::string &_name);
+ /// Destructor
virtual ~Tank();
virtual bool get_output();
virtual void recieve_msg(int msg, IConector *who, void *data);
- virtual void update();
+ virtual void update(int dir=OUT);
virtual void simulate();
+
+ void set_litros(float l) { litros = l; }
+ void get_state_as_xml(std::stringstream &out);
protected:
- float litros;
- float actual_in_flow;
- float actual_out_flow;
+ float litros; ///< cantidad de líquido actual
+ float actual_in_flow; ///< flujo máximo a la entrada
+ float actual_out_flow; ///< flujo máximo de la salida
private:
- Tank():Drain("null"),Source("null"),Control("null") {}
+ Tank():Control("null"),Source("null"),Drain("null") {}
Tank &operator = (const Tank &) { return *this; }
};
}
#endif // _TANK_H_
+