Bienvenido: Ingresar
location: attachment:rhino.h de Robotica/ProyectoRhino

Adjunto 'rhino.h'

Descargar

   1 /****************************************************************************/
   2 /* rhino.h  (c++)                                                           */
   3 /*------------------------------------------------------------------------- */
   4 /* Licencia GPL                                                             */
   5 /* Archivo de cabecera de la Clase Rhino                                    */
   6 /* Clase para la gestion del estado del controlador del Servo Robot XR4     */
   7 /*                             RHINO                                        */
   8 /****************************************************************************/
   9 /* Marco Alvarez Reyna                                                      */
  10 /* CIII UTN-FRC Argentina                                                   */
  11 /* Mayo 2007 / Abril 2008                                                   */
  12 /* mail: marcoalrey@gmail.com                                               */
  13 /****************************************************************************/
  14 
  15 #include <stdio.h>
  16 #include <string.h>
  17 #include <stdlib.h>
  18 
  19 #include "errdef.h"
  20 #include "cmddef.h"
  21 #include "statusdef.h"
  22 
  23 #ifndef RHINO_H
  24 #define RHINO_H
  25 
  26 #define MAX_LOG_LEVEL 3 // Maximo nivel de logueo
  27 
  28 #define MAX_RB_ERROR_CODES 128 // Max Rhino Controller Error Codes
  29 #define MAX_RC_ERROR_CODES 32  // Max Rhino Class Error Codes
  30 
  31 #define MSG_LENGTH 256 // Max Messages Length
  32 
  33 /*
  34 Por implementar:
  35 -Cargar los mensajes de error y de estado desde un archivo.
  36  (sacarlos del codigo fuente)
  37 -Renombrar las variables globales bajo un mismo criterio.
  38 -Renombrar las variables locales bajo un mismo criterio.
  39 -Homogeneizar un idioma para los nombres de funciones
  40  (o ingles o castellano)
  41 -Implementar la funcion CALLBACK.
  42 -Terminar de codificar el proceso de los comandos restantes.
  43 -Separar en capas lasdistintas tareas:
  44              *Eliminar de la clase toda impresion en pantalla.
  45              *Eliminar de la clase toda escritura en HD.
  46 
  47 Marco AR, 18/04/2008
  48 */
  49 
  50 // CLASE RHINO: Gestion de estado del controlador del Servo Robot XR4 - RHINO
  51 class Rhino{
  52  private:
  53     unsigned int uiLogLevel; // Nivel de logueo
  54     unsigned int uiErrorCode; // Codigo de error
  55     unsigned int uiStatusCode; // Codigo de estado
  56 
  57     // Contenedor de los ultimos datos enviados y recibidos
  58     struct {
  59 	unsigned int uiLastCommandtoRhino; // Enum. del ultimo comando enviado
  60 	char         LastCommandtoRhino[MSG_LENGTH]; // Cadena enviada
  61 	char         LastMessageFromRhino[MSG_LENGTH]; // Cadena recibida
  62     }LastCmdAndMsg;
  63 
  64     FILE *pFile; // Puntero al archivo para el logueo de datos
  65 
  66     char RhinoBotErrorMsg[MAX_RB_ERROR_CODES][MSG_LENGTH]; // Msgs de error 
  67     char RhinoClassErrorMsg[MAX_RC_ERROR_CODES][MSG_LENGTH]; // Msgs de error
  68 
  69     char RhinoBotStatusMsg[MAX_RB_STATUS_CODES][MSG_LENGTH]; // Msgs de estado
  70     char RhinoClassStatusMsg[MAX_RC_STATUS_CODES][MSG_LENGTH]; // Msgs de estado
  71 
  72     char RhinoMessages[MSG_LENGTH]; // Contenedores auxiliares
  73     char cErrorMessage[MSG_LENGTH]; // Contenedores auxiliares
  74     char cStatusMessage[MSG_LENGTH]; // Contenedores auxiliares
  75 
  76     // Tipo de logueo seleccionado
  77     enum {
  78 	LMODisplay, //Visualiza el mensage en el display
  79 	LMOFile,    //Almacena el mensage en un archivo 
  80 	LMOCBk      //Pasa el mensaje de error por el CallBack
  81     }logType;
  82 
  83     // Para el transpaso de mensajes a la aplicacion principal
  84     struct {
  85 	bool bNewMsg; // Indicador de nuevo mensaje
  86 	char sCBkMessage[MSG_LENGTH]; // Mensaje
  87     }CallBack;
  88 
  89 
  90     int ProcessErrorMsg(unsigned int); // Procesa codigos de error
  91     int ProcessStatusMsg(unsigned int); // Procesa codigos de estado
  92 
  93  public:
  94     Rhino(); // Constructor
  95     ~Rhino(); // Destructor
  96 
  97     int InitMessageVectors(char [MAX_RB_ERROR_CODES][MSG_LENGTH], char [MAX_RC_ERROR_CODES][MSG_LENGTH], char [MAX_RB_STATUS_CODES][MSG_LENGTH], char [MAX_RC_STATUS_CODES][MSG_LENGTH]); // Inicializa los mensajes del sistema
  98     
  99     int set_LogLevel(unsigned int); // Setea el niven de logueo
 100     int get_LogLevel(unsigned int *); // Devuelve el nivel de logueo
 101 
 102     int get_ErrorMsg(char *); // Devuelve el ultimo mensaje de error
 103     int get_ErrorMsg(unsigned int, char *); // Devuelve el mensaje de error para el argumento pasado
 104     int get_ErrorCode(unsigned int *); // Devuelve el ultimo codigo de error
 105 
 106     int get_StatusMsg(char *); // Devuelve el ultimo mensaje de estado
 107     int get_StatusMsg(unsigned int, char *); // Devuelve el mensaje de estado para el argumento pasado
 108     int get_StatusCode(unsigned int *); // Devuelve el ultimo codigo de estado
 109 
 110     int ProcessCommandToRhino(char *); // Procesa los comando enviado al controlador
 111     int ProcessMessageFromRhino(char *); // Procesa los mensajes devueltos por el controlador
 112     int ProcessCommandToRhino(char *, unsigned int *); // Procesa los comando enviado al controlador y devuelve su codigo
 113     int ProcessMessageFromRhino(unsigned int, char *, unsigned int *, char *); // Procesa los mensajes devueltos por el controlador y devuelve el mensaje correspondiente
 114 
 115     int CBkMsg(void); // Indica que hay un mensaje nuevo para la alicacion principal
 116     int get_CBkMsg(char *); // Devuelve el mensaje correspondiente
 117 
 118     int LogMessage(int, char *); // Loguea mensajes
 119 
 120     int DisplayAllErrorMessages(void); // Visualiza todos los mensajes de error
 121 };
 122       
 123 #endif //RHINO_H
 124 

Archivos adjuntos

Para referirse a los adjuntos de una página, usa attachment:nombredelarchivo, como se muestra abajo en la lista de archivos. NO uses la URL del enlace [get], ya que puede cambiar fácilmente y dejar de funcionar.
  • [obtener | ver] (2010-05-19 15:03:32, 0.4 KB) [[attachment:ChangeLog.txt]]
  • [obtener | ver] (2010-05-19 15:03:33, 76.3 KB) [[attachment:ClienteRhinoVisu.png]]
  • [obtener | ver] (2010-05-19 15:03:33, 4.6 KB) [[attachment:DemoVisu.png]]
  • [obtener | ver] (2010-05-19 15:03:33, 30.9 KB) [[attachment:DiagramaServidorRhino.png]]
  • [obtener | ver] (2010-05-19 15:03:33, 28.2 KB) [[attachment:Diagramas_De_Flujo_Servidor_V3.0.zip]]
  • [obtener | ver] (2010-05-19 15:03:33, 0.9 KB) [[attachment:Dir-Info.txt]]
  • [obtener | ver] (2010-05-19 15:03:33, 423.4 KB) [[attachment:DocClaseRhinoStatus.zip]]
  • [obtener | ver] (2010-05-19 15:03:34, 4.1 KB) [[attachment:EstructuraDirectoriosDesarrollo.png]]
  • [obtener | ver] (2010-05-19 15:03:34, 2.2 KB) [[attachment:HistoricoDeCambios.txt]]
  • [obtener | ver] (2010-05-19 15:03:34, 0.8 KB) [[attachment:Makefile]]
  • [obtener | ver] (2010-05-19 15:03:34, 688.7 KB) [[attachment:Proyecto-Rhino.pdf]]
  • [obtener | ver] (2010-05-19 15:03:37, 5622.6 KB) [[attachment:Rhino-AGV_Fotos.zip]]
  • [obtener | ver] (2010-05-19 15:03:42, 0.2 KB) [[attachment:RhinoLog.txt]]
  • [obtener | ver] (2010-05-19 15:03:42, 364.8 KB) [[attachment:ServidorRhinoVisu.png]]
  • [obtener | ver] (2010-05-19 15:03:43, 0.5 KB) [[attachment:_Makefile]]
  • [obtener | ver] (2010-05-19 15:03:43, 3.8 KB) [[attachment:_terminal.cpp]]
  • [obtener | ver] (2010-05-19 15:03:43, 1.0 KB) [[attachment:change_log.txt]]
  • [obtener | ver] (2010-05-19 15:03:43, 4.6 KB) [[attachment:cmddef.h]]
  • [obtener | ver] (2010-05-19 15:03:43, 11.4 KB) [[attachment:comSerial.cpp]]
  • [obtener | ver] (2010-05-19 15:03:43, 5.5 KB) [[attachment:comSerial.h]]
  • [obtener | ver] (2010-05-19 15:03:43, 5.8 KB) [[attachment:errdef.h]]
  • [obtener | ver] (2010-05-19 15:03:43, 0.5 KB) [[attachment:rc_error_log.txt]]
  • [obtener | ver] (2010-05-19 15:03:43, 30.6 KB) [[attachment:rhino.cpp]]
  • [obtener | ver] (2010-05-19 15:03:43, 5.2 KB) [[attachment:rhino.h]]
  • [obtener | ver] (2010-05-19 15:03:43, 2.5 KB) [[attachment:statusdef.h]]
  • [obtener | ver] (2010-05-19 15:03:43, 0.7 KB) [[attachment:terminal.cpp]]
  • [obtener | ver] (2010-05-19 15:03:43, 0.5 KB) [[attachment:utilities.txt]]
 All files | Selected Files: delete move to page copy to page

No tienes permisos para adjuntar un archivo a esta página.