]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/sercom/sercom.h
8a515363c4e31cda57cd61c2a0bdd2cdc140abe3
[eurobot/public.git] / src / sercom / sercom.h
1 /*
2  * @(#)sercom.h       07/07/28
3  * 
4  * Description  : Library to simplify the serial communication.
5  *
6  * License      : GNU GPL v.2
7  * Contacts     : Tran Duy Khanh (www.tran.cz)
8  */
9
10 #ifndef SERCOM_H
11 #define SERCOM_H
12
13 #include <sys/signal.h>
14 #include <termios.h>
15 #include <sys/types.h>
16
17 #define _POSIX_SOURCE           1       /* POSIX compliant source */
18 #define SERCOM_DEFAULT_DEV      "/dev/ttyS0"
19 #define SERCOM_DEVNAME_LEN      80
20
21 struct sercom_data {
22         char devname[SERCOM_DEVNAME_LEN];
23         unsigned int baudrate;
24         unsigned char parity;
25         unsigned char databits;
26         unsigned char stopbits;
27         struct termios oldtio;
28         struct termios newtio;
29         struct sigaction saio;
30         int fd, len;
31         int mode;
32         void (*sighandler)(int);
33 };
34
35 enum {
36         SERCOM_PARNONE = 0,
37         SERCOM_PARODD,
38         SERCOM_PAREVEN,
39 };
40
41 /**
42  * FUNCTION PROTOTYPES
43  */
44 long sercom_get_baudrate(unsigned int baudrate);
45 long sercom_get_databits(int databits);
46 long sercom_get_stopbits(int stopbits);
47 long sercom_get_parity(int parity);
48 int sercom_open(struct sercom_data *sercom);
49 ssize_t sercom_read(struct sercom_data *sercom, char *buf, ssize_t buflen);
50 void sercom_close(struct sercom_data *sercom);
51
52 #endif