On Wed, May 14, 2003 at 12:01:30AM -0700, Jason Majors wrote:
> Very cool! I started reading up on libieee1284. I think
> ieee1284_wait_status() will do exactly what I need.
That's certainly one way of doing it. Note that the current
implementation isn't smart enough to realise that if it's just nAck
you're after then it can wait for an interrupt. For that optimisation
you'll have to explicitly select() on the file descriptor from
> If I read the man page correctly, it should sit until either tv.tv_sec
> seconds pass or the appropriate pin goes high, but they're coming back
Well, what's the return value? Take a look which one it is and what
the man page says about it. There are error returns possible.
Perhaps you forgot to call ieee1284_claim first?
You could use ieee1284_read_status to find out the current values of
those pins, of course.
> Also, which pin is associated with which enum value?
As described in the man page:
There are five status lines, one of which is usually inverted on PC-
style ports. Where they differ, libieee1284 operates on the IEEE 1284
values, not the PC-style inverted values. The status lines are repre-
sented by the following enumeration:
S1284_NFAULT = 0x08,
S1284_SELECT = 0x10,
S1284_PERROR = 0x20,
S1284_NACK = 0x40,
S1284_BUSY = 0x80,
/* To convert those values into PC-style register values, use this: */
S1284_INVERTED = S1284_BUSY,
In other words, if you have an unsigned char val from libieee1284 that
you want to convert from IEEE 1284 values to PC-style values (where
some pins are inverted), do this:
unsigned char pc = val ^ S1284_INVERTED;
-- To unsubscribe, send mail to: firstname.lastname@example.org --
-- with the single word "unsubscribe" in the body of the message. --
This archive was generated by hypermail 2b29 : Wed May 14 2003 - 05:07:48 EDT