From: <pa...@rc...> - 2000-09-23 09:03:15
|
> BTW: David, I have to admit that I don't know very much about the > IEEE1284.4 protocol (I am familiar with SPP parports though). Could > you suggest a (desirably concise) source for reading? Hi, Burkhard. Despite the name, the hpoj software doesn't actually implement the IEEE 1284.4 transport protocol. It only implements HP's MLC protocol, on which 1284.4 is based. There's a link to the latest 1284.4 draft on the webpage (under "useful links"); you might want to save a copy of it in case it goes away. I'll send you and Damcha a copy of the MLC spec. IEEE 1284-1994 ("IEEE Standard Signaling Method for a Bidirectional Parallel Peripheral Interface for Personal Computers") may be ordered in hardcopy form from the IEEE. For that matter, you may be able to order 1284.4 as well by now. It was supposed to have been finished a long time ago. All I see in your 2.4 debug output is an open of the scan channel immediately followed by a close. I assume this output corresponds to the SANE+PTAL output you sent on September 20. In that case, we saw a successful open, and the write() of two bytes (the SCL "Esc-E" reset command) failed (returned -1), so the SANE backend had no choice but to give up and close the channel. I would suggest examining the code path taken by writes (see mlc_sendmsg()). Perhaps there's a mismatch in the mlc_proto_ops structure. You could also try hacking the PTAL_LOG_DEBUG statement around line 884 of ptal/ptal.c so it also prints the value of errno. Looking back at Damcha's original message reporting compile problems with 2.4, there were warnings about initializing mlc_proto_ops: > ieee12844.c:1541: warning: initialization from incompatible pointer type > ieee12844.c:1542: warning: initialization from incompatible pointer type > ieee12844.c:1545: warning: initialization from incompatible pointer type > ieee12844.c:1547: warning: excess elements in struct initializer > ieee12844.c:1547: warning: (near initialization for `mlc_proto_ops') Line 1542 is for mlc_sendmsg and 1543 is for mlc_recvmsg, so it's obviously a mismatch in this table that's causing writes to fail. David |