I'm trying to talk to a device over a USB serial device (/dev/ttyUSB0). I can send commands to it with write(), but I'm having problems with read().
When I set VMIN and VTIME, read fails with "Resource Temporarily Unavailable". Otherwise, it "succeeds" with 0 Bytes returned.
I have configured the serial device as such:
Code:
int fd, ret;
struct termios options;
/*fd = open(device, O_RDWR | O_NOCTTY | O_NDELAY);*/
fd = open(device, O_RDWR | O_NOCTTY);
cfsetispeed(&options, B1200);
cfsetospeed(&options, B1200);
options.c_cflag |= (CREAD | CLOCAL);
options.c_cflag &= ~CSIZE;
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
options.c_cflag |= CS8;
options.c_oflag &= ~OPOST;
options.c_iflag &= ~(IXON | IXOFF | IXANY);
options.c_iflag |= (IGNPAR);
/*
options.c_cc[VMIN] = 0;
options.c_cc[VTIME] = 1;
*/
ret = tcsetattr(fd, TCSANOW, &options);
Is this sufficient to read() input? Someone suggested I use poll(), but I haven't tried it yet.