I would try it, and see if the device_id is the same in both calls to sane_open. In either case, I think this is a bug in the backend. Sane standard says about sane_get_devices:
"The returned list is guaranteed to remain unchanged and valid until (a) another call to this function is performed or (b) a call to sane_exit() is performed." So, sane_close should not invalidate the device. allan On Tue, Jul 31, 2012 at 12:15 PM, Aleksandr Dezhin <me at dezhin.net> wrote: > Calling sane_get_devices() before each sane_open() something helps isolate > the problem? I am trying to develop a program that works a dozen devices at > the same time. Asurvey of all the devices at each operation seems to me > something strange. > > On 07/31/2012 06:23 PM, m. allan noah wrote: >> >> It is possible that this is a bug in that backend. perhaps you should >> call sane_get_devices again? >> >> allan >> >> On Tue, Jul 31, 2012 at 10:13 AM, Aleksandr Dezhin <me at dezhin.net> wrote: >>> >>> Hello, >>> >>> As I wrote, I'm trying to develop web interface for SANE. I am developing >>> it >>> using Python.I do not want to lock device so that other WSGI-proccess >>> instances can access it. Atypical code flow is as follows: >>> >>> sane_init() >>> sane_get_devices() >>> >>> // user selected device, showing page with capabilities >>> sane_open(device_id) >>> sane_get_option_description() >>> sane_close() >>> >>> // user requested to scan page >>> sane_open(device_id) >>> sane_control_option() >>> sane_start() >>> sane_read() >>> sane_cancel() >>> sane_close() >>> >>> // program exitting >>> sane_exit() >>> >>> Canon LiDE 210 with genesys backend or HPLIP works as expected, but >>> Mustek >>> Bearpaw 1200 CU Plus with gt68xx fails open_device() secondly, after >>> sane_close(). If I skip first open()/close() - second block works >>> correctly. >>> What is this? Bug or feature? >>> >>> Sorry I can not give an example of a simple program in C. If it helps I >>> can >>> send a link to the repository with my application. It contains some >>> modified >>> version of the python C extension from pysane. >>> >>> Thanks. >>> >>> -- >>> sane-devel mailing list: sane-devel at lists.alioth.debian.org >>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel >>> Unsubscribe: Send mail with subject "unsubscribe your_password" >>> to sane-devel-request at lists.alioth.debian.org >> >> >> > > > -- > sane-devel mailing list: sane-devel at lists.alioth.debian.org > http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/sane-devel > Unsubscribe: Send mail with subject "unsubscribe your_password" > to sane-devel-request at lists.alioth.debian.org -- "The truth is an offense, but not a sin"