Sunday, August 10, 2008

read the port




Read data from a serial port in C++:


1> open the port:

fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1)
{
/*
* Could not open the port.
*/

2> read the port:
while ((nbytes = read(fd, bufptr, buffer + sizeof(buffer) - bufptr - 1)) > 0)
{
bufptr += nbytes;
if (bufptr[-1] == '\n' || bufptr[-1] == '\r')
break;
}

3> writing the port:
if (write(fd, "AT\r", 3) < 3)
continue;