[sane-devel] Sane API
Alexander Pevzner
pzz at apevzner.com
Thu Oct 22 13:39:18 BST 2020
Hi Johannes,
On 10/21/20 10:11 AM, Johannes Meixner wrote:
> Current SANE is not meant for users who use a professional network
> printer scanner copier all-in-one device but when in the future
> users of any kind of scanning device should be able to access them
> via one same user application then a future SANE version should be
> in compliance to work with such a generic scanning user frontend.
What, do you feel, is missed from SANE to support professional MFPs?
> I think for a remote network scanner a remote user may need
> to know the complete device status including things that are
> obvious for a user who is located next to the scanner device.
I'm not sure it can be done in reliable way and without a lot of testing
against variety of hardware. If it cannot be done reliable, it is better
not to do it at all, to avoid a lot of frustration.
> Technically I think what does not fit the UNIX multiuser model
> is the idea that something from remote can just trigger things on a
> computer
> because that "something from remote" is not the boss of the computer.
If user, who owns desktop, explicitly subscribes to it, why not?
After all, if somebody sends you e-mail, it may trigger pop-up on your
screen, though e-mail sender is not boss of your computer.
> Technically I think what would fit the UNIX multiuser model
> is that a particular user triggers the action he wants.
>
> So I think something like the following fits the UNIX multiuser model:
>
> Some user presses a button at a (possibly network) scanner device.
> This changes the scanner device status ("button X is activated").
Let me explain, JFYI, how push scanning implemented in the WSD world.
Computers, willing to accept incoming images, advertise their presence,
using WS-Discovery protocol (UDP multicasting and so on, conceptually
similar to DNS-SD, but totally incompatible).
Push-mode scanning is activated by pressing some buttons or choosing
appropriate menu item at the scanner front panel. Scanner offers a list
of computers to send image too (previously discovered via WS-Discovery).
When user chooses a destination device, some conversation between
scanner and destination computer occurs. I didn't read this part of WSD
specification in great details (it's very hard to read), but most
likely, scanner sends ScanAvailableEvent:
https://docs.microsoft.com/en-us/windows-hardware/drivers/image/scanavailableevent
On Windows, it is most likely handled by some system service, which
notifies some GUI program, running in a context of current session to
open appropriate GUI dialog.
After that, if all sides agreed, actual scanning begins.
BTW, briefly looking to the specs, I have an impression, that actual
scanning happens in a pull mode. The only difference is that scanner
sends ScanAvailableEvent to the host, when host is chosen at the
scanner's front pannel.
Obviously, we can implement push scanning via polling scanner buttons,
but only few backends allow to poll scanner buttons; it depends on the
underlying protocol, offered by hardware. I believe, newest hardware
will shift into the eSCL/WSD direction, and direct polling buttons will
not be available. It is also not very secure.
--
Wishes, Alexander Pevzner (pzz at apevzner.com)
More information about the sane-devel
mailing list