00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <sys/signal.h>
00011 #include <termios.h>
00012
00013 #define _POSIX_SOURCE 1
00014 #define SERCOM_DEFAULT_DEV "/dev/ttyS0"
00015 #define SERCOM_DEVNAME_LEN 80
00016
00017 struct sercom_data {
00018 char devname[SERCOM_DEVNAME_LEN];
00019 unsigned int baudrate;
00020 unsigned char parity;
00021 unsigned char databits;
00022 unsigned char stopbits;
00023 struct termios oldtio;
00024 struct termios newtio;
00025 struct sigaction saio;
00026 int fd, len;
00027 };
00028
00029 enum {
00030 SERCOM_PARNONE = 0,
00031 SERCOM_PARODD,
00032 SERCOM_PAREVEN,
00033 };
00034
00038 long sercom_get_baudrate(unsigned int baudrate);
00039 long sercom_get_databits(int databits);
00040 long sercom_get_stopbits(int stopbits);
00041 long sercom_get_parity(int parity);
00042 void sercom_open(struct sercom_data *sercom);
00043 ssize_t sercom_read(struct sercom_data *sercom, char *buf, ssize_t buflen);
00044 void sercom_close(struct sercom_data *sercom);