Thanks to:
Ed Romascan <ed@magma.COM>
My original question:
>Solaris 2.5.1 & 2.6, SS20, Zilog 8530 serial port driver (zs),
>Litronic Argus 210.
>
>I am porting some code from Windows 95 and NT which talks to a
>serially-interfaced smartcard reader. This reader uses the state of
>the DTR line to control its LED. The code toggles the LED on and off
>around I/O's to give the familiar blinking LED when I/O is occurring.
>
>This can be done under Solaris using either:
>
> bits = TIOCM_DTR;
> ioctl(fd, TIOCMBIS, &bits);
> ioctl(fd, TIOCMBIC, &bits);
>
>or
>
> ioctl(fd, TIOCSDTR, NULL);
> ioctl(fd, TIOCCDTR, NULL);
>
>I have tried both, with the same results: the LED works properly, but
>state changes to it (on or off) take over one second! If I turn it on
>repeatedly, but never off, or vice versa, it runs quickly - only real
>changes take so long. I timed a loop of ten repetitions, once on and
>once off each time through the loop, and it took 29 seconds of real
>time, but 0 user time and 0 system time.
>
>Is there any way to speed this up? A driver patch/hack? Third party
>serial ports and driver? Anything???
Ed's response:
> When you toggle DTR from active to inactive the line must stay inactive for
> some minimum period to reset all those old modems out there.
> The period on our Magma cards is set to 250ms. I would guess that Sun's
> setting is longer.
> You could try one of our two port boards, our LC2+1Sp costs $275.
> Take a look at www.magma.com
---
David L. Markowitz Director, UNIX Software
David.Markowitz@litronic.com Litronic Industries
http://intra.litronic.com/davem http://www.litronic.com/