This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Canonical serial input


  I have a GPS receiver on com3.  The GPS messages
from the receiver have EOL characters, but setting
canonical line input ignores these EOL characters. 
Non-canonical input works and this is what I may use,
but has anyone had any success in using canonical
serial input with cygwin.  It is possibly
unimplemented/broken?


#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <termios.h>

#define DO_LINE

int main (void) {

    char buffer[255];
    struct termios options;
    ssize_t nbytes;
    int fd;


    fd = open ("/dev/com3", O_RDONLY | O_NOCTTY);

    tcgetattr (fd, &options);

    options.c_cc[VEOL] = '\r';
    options.c_cc[VEOL2] = '\n';

    options.c_cflag |= CLOCAL | CREAD;
    options.c_oflag &= ~OPOST;

    options.c_cflag &= ~CSIZE;
    options.c_cflag |= CS8;        /* 8 data bits     
     */
    cfsetispeed (&options, B4800); /* set input line
speed  */
    cfsetospeed (&options, B4800); /* set output line
speed */
    options.c_cflag &= ~PARENB;    /* no parity       
     */
    options.c_cflag &= ~CSTOPB;    /* one stop bit    
     */

#ifdef DO_LINE
    options.c_lflag = ICANON;
    options.c_iflag |= IGNPAR;
#else
    options.c_lflag &= ~( ICANON | ECHO | ISIG );
#endif

    tcflush (fd, TCIFLUSH);
    tcsetattr (fd, TCSANOW, &options);

    nbytes = read (fd, buffer, 255);
    buffer[nbytes] = '\0';
    printf ("%s", buffer);

    return 0;
}

This is the output.  I was expecting 'read' to return
on the first crlf.

~/>od -a test
0000000   $   G   P   G   G   A   ,   2   2   4   8  
1   8   .   9   9
0000020   9   ,   3   0   3   1   .   2   1   4   5  
,   N   ,   0   8
0000040   9   4   0   .   6   4   5   5   ,   W   ,  
0   ,   0   0   ,
0000060   0   .   0   ,   -   1   2   .   6   ,   M  
,   ,   ,   ,   0
0000100   0   0   0   *   0   C  cr  nl   $   G   P  
G   S   A   ,   A
0000120   ,   1   ,   ,   ,   ,   ,   ,   ,   ,   ,  
,   ,   ,   ,   0
0000140   .   0   ,   0   .   0   ,   0   .   0   *  
3   0  cr  nl   $
0000160   G   P   R   M   C   ,   2   2   4   8   1  
8   .   9   9   9
0000200   ,   V   ,   3   0   3   1   .   2   1   4  
5   ,   N   ,   0
0000220   8   9   4   0   .   6   4   5   5   ,   W  
,   ,   ,   1   3
0000240   1   0   0   2   ,   ,   *   0   F  cr  nl  
$   G   P   G   G
0000260   A   ,   2   2   4   8   1   9   .   9   9  
9   ,   3   0   3
0000300   1   .   2   1   4   5   ,   N   ,   0   8  
9   4   0   .   6
0000320   4   5   5   ,   W   ,   0   ,   0   0   ,  
0   .   0   ,   -
0000340   1   2   .   6   ,   M   ,   ,   ,   ,   0  
0   0   0   *   0
0000360   D  cr  nl   $   G   P   G   S   A   ,   A  
,   1   ,   ,
0000377



__________________________________________________
Do you Yahoo!?
Faith Hill - Exclusive Performances, Videos & More
http://faith.yahoo.com

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]