I am programming an RS232 interface on Solaris x86. The first problem was
that tcsendbreak() only allows you to send a break for one duration,
between 0.25 and 0.5 seconds. My interface spec specifically says to send
it for 1.5 seconds. No can do, why the heck did they place this weird
restriction? I have programmed an embedded UART on an inhouse PCI board
in Solaris x86 and it was trivial to add a user defined timeout. So, I
guess I have to live with it.
My next problem is that the receiving device is supposed to return a line
break. I have this running on OS/2 and it sends and detects line breaks just
fine. However, I do not see the returned line break on Solaris x86, just
the character that comes next. I have IGNBREAK and BRKINT both cleared so
I should see the break as a 0x0 NULL character, but I don't. Is there
anything else that I need to do to see the break character, or is there
another method I can use (ioctl?) to check for it?