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.No tienes permisos para adjuntar un archivo a esta página.