00001 //=========================================================================== 00002 //= actuador.h Noviembre de 1998 = 00003 //=-------------------------------------------------------------------------= 00004 //= Definiciones de actuadores (toolkit NUKAK) = 00005 //=-------------------------------------------------------------------------= 00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO = 00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN = 00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES, = 00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO, = 00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO, = 00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA = 00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES = 00013 //= ("ACTIVIDADES DE ALGO RIESGO"). = 00014 //=-------------------------------------------------------------------------= 00015 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00016 //= 1997 - 2003, oscarchavarro@hotmail.com = 00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00020 //=========================================================================== 00021 00022 #ifndef __ACTUADOR__ 00023 #define __ACTUADOR__ 00024 00025 #include "jed_defs.h" // Incluir antes que nada, en ese modulo se definen 00026 // aspectos importantes para la portabilidad del sistema 00027 #include "toolkits/net/jed_udp.h" 00028 #include "core/control/variable.h" 00029 00030 class ACTUADOR : public ENTIDAD { 00031 protected: 00032 VARIABLE_DE_ESTADO *mi_variable_de_estado; 00033 public: 00034 ACTUADOR(); 00035 virtual int tipo(void) = 0; 00036 }; 00037 00038 class ACTUADOR_FLOAT : public ACTUADOR { 00039 public: 00040 ACTUADOR_FLOAT(VARIABLE_DE_ESTADO *var); 00041 virtual void actuar(double &new_val); 00042 int tipo(void); 00043 }; 00044 00045 class ACTUADOR_FLOAT_UDP : public ACTUADOR_FLOAT { 00046 private: 00047 CONEXION_UDP *Conexion; 00048 BOOLEAN activo; 00049 int id; 00050 char *_nombre_publico; 00051 void (*callback)(void *User_data); 00052 void *dato_callback; 00053 00054 void init(void); 00055 public: 00056 ACTUADOR_FLOAT_UDP(CONEXION_UDP *C, char *nombre_publico); 00057 virtual void actuar(double &new_val); 00058 int tipo(void); 00059 }; 00060 00061 class ACTUADOR_VECTOR : public ACTUADOR { 00062 private: 00063 public: 00064 ACTUADOR_VECTOR(VARIABLE_DE_ESTADO *var); 00065 virtual void actuar(VECTOR &new_val); 00066 int tipo(void); 00067 }; 00068 00069 class ACTUADOR_VECTOR_UDP : public ACTUADOR_VECTOR { 00070 private: 00071 CONEXION_UDP *Conexion; 00072 BOOLEAN activo; 00073 int id; 00074 char *_nombre_publico; 00075 void (*callback)(void *User_data); 00076 void *dato_callback; 00077 00078 void init(void); 00079 public: 00080 ACTUADOR_VECTOR_UDP(CONEXION_UDP *C, char *nombre_publico); 00081 virtual void actuar(VECTOR &new_val); 00082 int tipo(void); 00083 }; 00084 00085 class ACTUADOR_FUERZA : public ACTUADOR { 00086 private: 00087 public: 00088 //int tipo(void); 00089 }; 00090 00091 #endif // __ACTUADOR__ 00092 00093 //=========================================================================== 00094 //= EOF = 00095 //=========================================================================== 00096