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