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

Adjunto 'comSerial.h'

Descargar

   1 /****************************************************************************/
   2 /* comSerial.h  (c++)                                                       */
   3 /*------------------------------------------------------------------------- */
   4 /* Licencia GPL                                                             */
   5 /* Libreria para comunicaciones serie.                                      */
   6 /****************************************************************************/
   7 /* Juan González. Agosto-2002                                               */
   8 /* Marco Alvarez Reyna. Mayo-2007 mail: marcoalrey@gmail.com                */
   9 /****************************************************************************/
  10 
  11 #include <stdio.h>
  12 #include <string.h>
  13 #include <unistd.h>
  14 #include <sys/ioctl.h>
  15 #include <termios.h>
  16 #include <fcntl.h>
  17 #include <sys/time.h>       /* Implementacion de timeouts */
  18 #include <linux/serial.h> 
  19 
  20 #ifndef COMSERIAL_H
  21 #define COMSERIAL_H
  22 
  23 #define COM1 0
  24 #define COM2 1
  25 
  26 #ifndef BYTE
  27 #define BYTE
  28   typedef unsigned char byte;
  29 #endif
  30 
  31 class ComSerial{
  32  private:
  33       int fd;         /* Descriptor del puerto serie abierto */
  34       int errno;      /* Reemplazar por "extern int errno" */
  35       struct termios oldtermios;
  36       int nerror;
  37 
  38  public:
  39       ComSerial(){};  /* Constructor */
  40       ~ComSerial(){}; /* Destructor  */
  41 
  42       int abrir_puerto_serie(int puerto);                                    
  43       int baudios(int vel);                                                  
  44       int vaciar_buffer_tx();                                                
  45       int vaciar_buffer_rx();                                                
  46       int enviar_bloque(char *cad, int tam);                                 
  47       int enviar_car(char car);                                              
  48       int enviar_break();                                                    
  49       int car_waiting();                                                     
  50       int wait_break(int plazo);                                             
  51       int bufftx_waiting();                                                  
  52       char leer_car();                                                       
  53       char leer_car_plazo(int plazo, int *timeout);                          
  54       
  55       int getdtr();                                                          
  56       int dtr_on();                                                          
  57       int dtr_off();                                                         
  58       
  59       int getrts();
  60       int rts_on();
  61       int rts_off();
  62       
  63       int getcts();
  64       int getdsr();
  65       
  66       int getserial_fd();                                                    
  67       char *getserial_error();                                               
  68       int setup_serial();
  69       void cerrar_puerto_serie();        
  70       
  71       int set_break_timeout(int);
  72       int cargar_ramint(byte *);
  73       void accion_rxcar();
  74       void accion_break();
  75 };
  76 
  77 /* --------------- DESCRIPCION DE LAS DEFINICIONES DE SEÑALES ------------ */
  78 /* 
  79    Hubicacion: /usr/include/bits/ioctl-types.h "modem lines" 
  80    #define TIOCM_LE	0x001
  81    #define TIOCM_DTR	0x002
  82    #define TIOCM_RTS	0x004
  83    #define TIOCM_ST	0x008
  84    #define TIOCM_SR	0x010
  85    #define TIOCM_CTS	0x020
  86    #define TIOCM_CAR	0x040
  87    #define TIOCM_RNG	0x080
  88    #define TIOCM_DSR	0x100
  89    #define TIOCM_CD	TIOCM_CAR
  90    #define TIOCM_RI	TIOCM_RNG
  91 */
  92 
  93 /* --------------- DESCRIPCION DE LAS FUNCIONES DE INTERFAZ ------------ */
  94 /*
  95    * int abrir_puerto_serie(int puerto); 
  96        Abrir el puerto serie. El parametro de entrada especifica el
  97       puerto a utilizar: COM1 o COM2. La funcion devuelve 0 en caso de
  98       producirse algun error.
  99       
 100    * int baudios(int vel);
 101       Cambiar la velocidad. Las velocidades que se pueden especificar son
 102      1200, 7680 y 9600 baudios. La funcion devuelve 0 en caso de error
 103      
 104    * int vaciar_buffer_tx(); ---> Vaciar el buffer de transmision
 105    * int vaciar_buffer_rx(); ---> Vaciar el buffer de recepcion
 106    * int enviar_bloque(char *cad, int tam);
 107       Enviar un bloque de datos por el puerto serie. El parametro tam indica
 108       la longitud del bloque a enviar.
 109    
 110    * enviar_car(char car); ---> Enviar un caracter.
 111    * enviar_break(); ---------> Enviar una señal de break;
 112    * car_waiting();  ---------> Devolver el numero de caracteres esperando
 113      en el buffer de recepcion
 114      
 115    * wait_break(int plazo); --> Esperar que se reciba una señal de BREAK 
 116      dentro del plazo establecido. El parametro plazo esta en microsegundos.
 117      La funcion devuelve 0 si ha transcurrido el plazo y no se ha recibido
 118      ninguna señal de BREAK;
 119      
 120    * bufftx_waiting(); ----> Devolver el numero de caracteres en el buffer
 121      de transmision pendientes de ser enviados.
 122      
 123    * char leer_car()(); ---> Leer un caracter del buffer de recepcion. La
 124      funcion se queda esperando hasta que haya algun caracter.
 125      
 126    * char leer_car_plazo(int plazo, int *timeout); ---> Leer un caracter del
 127      buffer de recepcion. Si no llega ningun caracter durante el plazo de
 128      tiempo especificado, el parametro timeout toma el valor 1.
 129      
 130    * int getdtr(); ----> Leer el estado del DTR. Se devuelve 0 en caso de
 131      error.
 132      
 133    * int dtr_on(); ---> Activar el DTR. Se devuelve 0 en caso de error.
 134    * int dtr_off(); --> Desactivar el DTR. Se devuelve 0 en caso de error.
 135    * char *getserial_error(); --> Devolver el ultimo mensaje de error 
 136      producido.
 137      
 138    * void cerrar_puerto_serie() --> Dejar de utilizar el puerto serie.
 139 */
 140       
 141 #endif //COMSERIAL_H
 142 
 143 			

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.