[sane-devel] Doubt about sane_get_devices
m. allan noah
kitno455 at gmail.com
Sat Apr 26 11:50:06 UTC 2008
well, it appears that the sanei_usb support library intentionally does
not re-gather the list of devices. This makes sense in the average
sane installation, cause dozens of backends each gather the list
within a fraction of a second, as the dll backend cycles thru them.
in your case, it is the wrong behaviour, since the long-running daemon
needs to know the list has changed. I think i can change the current
code to retry occasionally.
allan
> > On Thu, Apr 24, 2008 at 11:58 PM, m. allan noah <kitno455 at gmail.com> wrote:
> > > ahh, but you dont just query the list again, you call sane_exit and
> > > sane_init first. just call sane_get_devices, and see if that helps.
> > >
> > >
> > >
> > > allan
> > >
> > > On 4/24/08, tobias alarcon <extobias at gmail.com> wrote:
> > > > Nop, doesnt work. Maybe im doing something wrong.
> > > > I got this logs.
> > > >
> > > > Log 1
> > > >
> > > > ##Start the program with scanner disconnected
> > > > [sanei_debug] Setting debug level of fujitsu to 30.
> > > > [fujitsu] sane_init: start
> > > > [fujitsu] sane_init: fujitsu backend 1.1.59, from sane-backends 1.1.0-cvs
> > > > [fujitsu] sane_init: finish
> > > > [fujitsu] sane_get_devices: start
> > > > [fujitsu] find_scanners: start
> > > > [fujitsu] find_scanners: reading config file fujitsu.conf
> > > > [fujitsu] find_scanners: setting "buffer-size" to 65536
> > > > [fujitsu] find_scanners: looking for 'scsi FUJITSU'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1041'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1042'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1095'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1096'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1097'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ad'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ae'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10af'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e0'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e1'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e2'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e7'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10f2'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10fe'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1135'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x114d'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1155'
> > > > [fujitsu] find_scanners: found 0 scanner(s)
> > > > [fujitsu] find_scanners: finish
> > > > [fujitsu] sane_get_devices: finish
> > > > ##Connect scanner and wait a seconds, query list
> > > > [fujitsu] sane_exit: start
> > > > [fujitsu] sane_exit: finish
> > > > [sanei_debug] Setting debug level of fujitsu to 30.
> > > > [fujitsu] sane_init: start
> > > > [fujitsu] sane_init: fujitsu backend 1.1.59, from sane-backends 1.1.0-cvs
> > > > [fujitsu] sane_init: finish
> > > > [fujitsu] sane_get_devices: start
> > > > [fujitsu] find_scanners: start
> > > > [fujitsu] find_scanners: reading config file fujitsu.conf
> > > > [fujitsu] find_scanners: setting "buffer-size" to 65536
> > > > [fujitsu] find_scanners: looking for 'scsi FUJITSU'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1041'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1042'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1095'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1096'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1097'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ad'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ae'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10af'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e0'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e1'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e2'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e7'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10f2'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10fe'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1135'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x114d'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1155'
> > > > [fujitsu] find_scanners: found 0 scanner(s)
> > > > [fujitsu] find_scanners: finish
> > > > [fujitsu] sane_get_devices: finish
> > > > [fujitsu] sane_exit: start
> > > > [fujitsu] sane_exit: finish
> > > >
> > > > Log 2
> > > >
> > > > [doors at localhost ~]$ export SANE_DEBUG_FUJITSU=30
> > > > [doors at localhost ~]$ doors
> > > > [sanei_debug] Setting debug level of fujitsu to 30.
> > > > [fujitsu] sane_init: start
> > > > [fujitsu] sane_init: fujitsu backend 1.1.59, from sane-backends 1.1.0-cvs
> > > > [fujitsu] sane_init: finish
> > > > [fujitsu] sane_get_devices: start
> > > > [fujitsu] find_scanners: start
> > > > [fujitsu] find_scanners: reading config file fujitsu.conf
> > > > [fujitsu] find_scanners: setting "buffer-size" to 65536
> > > > [fujitsu] find_scanners: looking for 'scsi FUJITSU'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1041'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1042'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1095'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1096'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1097'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ad'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ae'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10af'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e0'
> > > > [fujitsu] attach_one: start
> > > > [fujitsu] attach_one: looking for 'libusb:003:003'
> > > > [fujitsu] connect_fd: start
> > > > [fujitsu] connect_fd: opening USB device
> > > > [fujitsu] wait_scanner: start
> > > > [fujitsu] do_usb_cmd: start
> > > > [fujitsu] cmd: writing 31 bytes, timeout 500
> > > > [fujitsu] cmd: >>
> > > > [fujitsu] 000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] 010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] cmd: wrote 31 bytes, retVal 0
> > > > [fujitsu] stat: reading 13 bytes, timeout 500
> > > > [fujitsu] stat: <<
> > > > [fujitsu] 000: 53 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] stat: read 13 bytes, retVal 0
> > > > [fujitsu] do_usb_cmd: finish
> > > > [fujitsu] wait_scanner: finish
> > > > [fujitsu] connect_fd: finish
> > > > [fujitsu] init_inquire: start
> > > > [fujitsu] do_usb_cmd: start
> > > > [fujitsu] cmd: writing 31 bytes, timeout 10000
> > > > [fujitsu] cmd: >>
> > > > [fujitsu] 000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] 010: 00 00 00 12 00 00 00 60 00 00 00 00 00 00 00
> > > > [fujitsu] cmd: wrote 31 bytes, retVal 0
> > > > [fujitsu] in: reading 96 bytes, timeout 10000
> > > > [fujitsu] in: retVal 0
> > > > [fujitsu] in: read 96 bytes
> > > > [fujitsu] in: <<
> > > > [fujitsu] 000: 06 00 02 02 5b 00 00 10 46 55 4a 49 54 53 55 20
> > > > [fujitsu] 010: 66 69 2d 35 31 32 30 43 64 6a 20 20 20 20 20 20
> > > > [fujitsu] 020: 30 45 30 30 00 00 00 00 00 00 00 00 03 0c 00 00
> > > > [fujitsu] 030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] 050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] stat: reading 13 bytes, timeout 10000
> > > > [fujitsu] stat: <<
> > > > [fujitsu] 000: 53 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] stat: read 13 bytes, retVal 0
> > > > [fujitsu] do_usb_cmd: finish
> > > > [fujitsu] init_inquire: Found FUJITSU scanner fi-5120Cdj version 0E00
> > > > at libusb:003:003
> > > > [fujitsu] inquiry options
> > > > [fujitsu] color offset: 0 lines
> > > > [fujitsu] long color scan: 1
> > > > [fujitsu] long gray scan: 1
> > > > [fujitsu] 3091 duplex: 0
> > > > [fujitsu] background front: 1
> > > > [fujitsu] background back: 1
> > > > [fujitsu] emulation mode: 0
> > > > [fujitsu] duplex offset: 0 lines
> > > > [fujitsu] init_inquire: finish
> > > > [fujitsu] init_vpd: start
> > > > [fujitsu] do_usb_cmd: start
> > > > [fujitsu] cmd: writing 31 bytes, timeout 10000
> > > > [fujitsu] cmd: >>
> > > > [fujitsu] 000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] 010: 00 00 00 12 01 f0 00 68 00 00 00 00 00 00 00
> > > > [fujitsu] cmd: wrote 31 bytes, retVal 0
> > > > [fujitsu] in: reading 104 bytes, timeout 10000
> > > > [fujitsu] in: retVal 0
> > > > [fujitsu] in: read 104 bytes
> > > > [fujitsu] in: <<
> > > > [fujitsu] 000: 06 f0 02 00 6b 02 58 02 58 11 02 58 02 58 00 32
> > > > [fujitsu] 010: 00 32 ff fc 00 00 14 c0 00 00 4f b0 8f 00 00 00
> > > > [fujitsu] 020: 92 0a 01 00 00 00 00 00 ef bf 00 04 00 00 00 00
> > > > [fujitsu] 030: 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] 040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] 050: 00 00 00 ff 00 00 41 01 a8 40 08 00 00 00 00 00
> > > > [fujitsu] 060: 00 00 02 00 01 78 01 78
> > > > [fujitsu] stat: reading 13 bytes, timeout 10000
> > > > [fujitsu] stat: <<
> > > > [fujitsu] 000: 53 00 00 00 00 00 00 00 00 00 00 00 00
> > > > [fujitsu] stat: read 13 bytes, retVal 0
> > > > [fujitsu] do_usb_cmd: finish
> > > > [fujitsu] init_vpd: length=6b
> > > > [fujitsu] standard options
> > > > ....
> > > > [fujitsu] init_vpd: finish
> > > > [fujitsu] init_ms: start
> > > > [fujitsu] prepick: 1
> > > > [fujitsu] sleep: 1
> > > > [fujitsu] duplex: 0
> > > > [fujitsu] rand: 0
> > > > [fujitsu] bg: 1
> > > > [fujitsu] df: 1
> > > > [fujitsu] dropout: 1
> > > > [fujitsu] buff: 0
> > > > [fujitsu] auto: 1
> > > > [fujitsu] lamp: 0
> > > > [fujitsu] jobsep: 0
> > > > [fujitsu] init_ms: finish
> > > > [fujitsu] init_model: start
> > > > [fujitsu] init_model: finish
> > > > [fujitsu] init_user: start
> > > > [fujitsu] init_user: finish
> > > > [fujitsu] init_options: start
> > > > [fujitsu] init_options: finish
> > > > [fujitsu] disconnect_fd: start
> > > > [fujitsu] disconnecting usb device
> > > > [fujitsu] disconnect_fd: finish
> > > > [fujitsu] attach_one: finish
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e1'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e2'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e7'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10f2'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10fe'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1135'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x114d'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1155'
> > > > [fujitsu] find_scanners: found scanner libusb:003:003
> > > > [fujitsu] find_scanners: found 1 scanner(s)
> > > > [fujitsu] find_scanners: finish
> > > > [fujitsu] sane_get_devices: finish
> > > > Name: fujitsu:libusb:003:003
> > > > ##disconnect scanner, wait a seconds. Connect and wait a seconds again
> > > > [fujitsu] sane_exit: start
> > > > [fujitsu] disconnect_fd: start
> > > > [fujitsu] disconnect_fd: finish
> > > > [fujitsu] sane_exit: finish
> > > > [sanei_debug] Setting debug level of fujitsu to 30.
> > > > [fujitsu] sane_init: start
> > > > [fujitsu] sane_init: fujitsu backend 1.1.59, from sane-backends 1.1.0-cvs
> > > > [fujitsu] sane_init: finish
> > > > [fujitsu] sane_get_devices: start
> > > > [fujitsu] find_scanners: start
> > > > [fujitsu] find_scanners: reading config file fujitsu.conf
> > > > [fujitsu] find_scanners: setting "buffer-size" to 65536
> > > > [fujitsu] find_scanners: looking for 'scsi FUJITSU'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1041'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1042'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1095'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1096'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1097'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ad'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ae'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10af'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e0'
> > > > [fujitsu] attach_one: start
> > > > [fujitsu] attach_one: looking for 'libusb:003:003'
> > > > [fujitsu] connect_fd: start
> > > > [fujitsu] connect_fd: opening USB device
> > > > [fujitsu] connect_fd: could not open device: 4
> > > > [fujitsu] connect_fd: finish
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e1'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e2'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e7'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10f2'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10fe'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1135'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x114d'
> > > > [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1155'
> > > > [fujitsu] find_scanners: found 0 scanner(s)
> > > > [fujitsu] find_scanners: finish
> > > > [fujitsu] sane_get_devices: finish
> > > >
> > > > From this line [fujitsu] attach_one: looking for 'libusb:003:003' , i
> > > > thing there is some value that is never cleaned. if this is a bug,
> > > > there something i can do? i REALLY need this work.
> > > > Well thanks like always
> > > >
> > > > Tobias
> > > >
> > > >
> > > > On Thu, Apr 24, 2008 at 6:21 PM, m. allan noah <kitno455 at gmail.com> wrote:
> > > > > it should, but i take it from your question that it does not? :)
> > > > >
> > > > >
> > > > > allan
> > > > >
> > > > > On 4/24/08, tobias alarcon <extobias at gmail.com> wrote:
> > > > > > So in the fujitsu backend should work?
> > > > > >
> > > > > > On Thu, Apr 24, 2008 at 3:43 PM, m. allan noah <kitno455 at gmail.com> wrote:
> > > > > >
> > > > > > > this depends entirely on the backend. i have tried to make sure that
> > > > > > > the backends i maintain will re-find scanners at every call, but other
> > > > > > > backends may not.
> > > > > > >
> > > > > > > allan
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On 4/24/08, tobias alarcon <extobias at gmail.com> wrote:
> > > > > > > > Hi all
> > > > > > > >
> > > > > > > > Im just wanna know if this function retrives the list of devices at
> > > > > > > > every moment.
> > > > > > > > Let me explain, i launch my program with the scanner disconected, then
> > > > > > > > i conect it and
> > > > > > > > call this function. Doc say "This function can be called repeatedly to
> > > > > > > > detect when
> > > > > > > > new devices become available" but this is not my case, i get a null pointer.
> > > > > > > >
> > > > > > > > thanks in advance
> > > > > > > > Tobias.
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > sane-devel mailing list: sane-devel at lists.alioth.debian.org
> > > > > > > > http://lists.alioth.debian.org/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"
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > >
> > > > > "The truth is an offense, but not a sin"
> > > > >
> > > >
> > >
> > >
> > > --
> > >
> > >
> > > "The truth is an offense, but not a sin"
> > >
> >
>
>
>
>
> --
>
> "The truth is an offense, but not a sin"
>
--
"The truth is an offense, but not a sin"
More information about the sane-devel
mailing list