Sorry, but it seems I misled you. I found additional call to get_devices in pysane library used to get device model and manufacturer before open. So in terms of the standard all looks correctly.
Now I am unable to check the situation without this call. But I will check it and write about the results. On 07/31/2012 08:27 PM, m. allan noah wrote: > 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 > >
