00001 //=========================================================================== 00002 //= lego9751.h Agosto de 1998 = 00003 //=-------------------------------------------------------------------------= 00004 //= Definiciones de la clase para el control de la interface LEGO9751 = 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 //= Con la colaboracion de Harold Cruz ha-cruz@uniandes.edu.co = 00021 //=========================================================================== 00022 00023 #ifndef __LEGO9751__ 00024 #define __LEGO9751__ 00025 00026 #include "jed_defs.h" 00027 00028 #include "toolkits/media/jed_serial.h" 00029 #include "toolkits/media/dispositivo.h" 00030 #ifdef UNIX_ENABLED 00031 #include <unistd.h> 00032 #include "toolkits/media/_unix_io.h" 00033 #endif 00034 00035 class LEGO9751 : public DISPOSITIVO { 00036 private: 00037 BYTE input_state[19]; 00038 BYTE data_state[19]; 00039 int accum; 00040 PUERTO_SERIAL *Com; 00041 00042 void actualizar(void); 00043 void enviar_latido(void); 00044 BOOLEAN busque_controlador(void); 00045 friend void leer_lego_callback(void *User_data, int accion); 00046 00047 public: 00048 //- Operaciones standard de DISPOSITIVO AQUYNZA ------------------------- 00049 LEGO9751(); 00050 virtual ~LEGO9751(); 00051 00052 BOOLEAN 00053 consultar_variable(const char *nombre_variable, int &tipo, void **ref); 00054 00055 //- Operaciones particulares de la clase LEGO9751 ----------------------- 00056 BOOLEAN inicialice(char *nombre_puerto); // Servicios basicos 00057 void cerrar(void); 00058 00059 WORD lea_sensor(int num_sensor); // Manejo de sensores 00060 00061 void encendido(int actuador); // Manejo de actuadores 00062 void apagado(int actuador); 00063 void fpotencia(int actuador, int potencia); 00064 void fderecha(int actuador); 00065 void fizquierda(int actuador); 00066 }; 00067 00068 #endif // __LEGO9751__ 00069 00070 //=========================================================================== 00071 //= EOF = 00072 //=========================================================================== 00073