I've tyred various combinations of ioctl(fd, TCSBRKP, x) and tcsendbreak(fd, x), where x is 2, 5, 10, 20 and 200.Could be.
One thing I did notice is that no mater what the value I use, it always finishes very quickly, there does not appear to be any duration.
take porttest.c:
#include <sys/fcntl.h>
#include <sys/ioctl.h>
main(int argc, char ** argv) {
int fd = open(argv[1], O_RDWR|O_NOCTTY);
ioctl(fd, TCSBRKP, 20);
close(fd);
}
$ time ./porttest /dev/ttyS0
real 0m2.001s
user 0m0.001s
sys 0m0.000s
A standard serial port with a 2 second break (20*100ms), takes as expected just over 2 seconds.
$ time ./porttest /dev/ttyUSB1
real 0m0.004s
user 0m0.000s
sys 0m0.001s
However with the USB converter instead, it takes 5 ms to complete. Much shorter than expected.
Is it a driver issue?