cups cupsBackChannelRead

velupillai kalyani.vel at
Fri Jan 25 08:30:11 PST 2008


Thanks for your response.
It is the standard usb backend which is used.
We are working for the manufacturer of the USB Printer.
We have developed driver (The printing is working -- But we cannot receive the status)
To Get the status we have to send a request. We do that directly in the data flow.
The Printer sends a response (one byte) which is received by the backEnd
(trace "Received 1 bytes of back-channel data!")
We see in the sources that the Backend call "CupsBackchannelWrite"
(this function write in fd=3)

In our process (ijsserver) we try to get the status Byte by calling
_bytes = cupsBackChannelRead(_buffer,1, 0.0)) which return -1

That is the problem !!


We also investigate in Cups sources.
We saw that all processes used for printing (filter, backend, and so on) are started by cupsdstartprocess function with parameters.
(file process.c in scheduler directory)
The seventh parameter is the bakchannelfd which is supposed to be equal to 3
If backfd is different the file fd=3 is closed.

In all the source files, We never see any call to cupsdstartprocess with the 7th parameter set to 3

Isn't it the problem ?

Remark : most of the cupsdstartprocess calls are done in job.c in the scheduler directory and the 7th parameter is set to -1 or job->back_pipe.
In our environement, the value of job->back_pipe are 13, and 14

> velupillai wrote:
> > i use mandriva 2007 and i used usb and serial backend.
> I don't know if they use the standard USB backend, but serial should
> work.
> BTW, what is the manufacturer of the USB device?
> > i have the same failure of cupsBackChannelRead for both backend.
> How are you calling cupsBackChannelRead?
> --
> ______________________________________________________________________
> Michael R Sweet                        Senior Printing System Engineer

More information about the cups-devel mailing list