[sane-devel] Fwd: Ricoh SP204SN AIO network scanner

Alexander Pevzner pzz at apevzner.com
Mon Mar 2 19:37:37 GMT 2020

On 3/2/20 9:49 PM, Louis Lagendijk wrote:

> I recall that there are multi-functionals that allow EITHER printer or
> scanner access, but not both at the same time.
> Early detection of devices and their capabilities would be ok, but
> initialization would anyhow have to wait untill the device is to be
> used. The device would need to be released as soon as scanning is done.
> So the time gains would be limited.

Initialization doesn't necessarily mean "open the USB port and keep it 
locked forever". Initialization means "prepare to be ready to start 
scanning with minimap possible delay". It's exact semantics depend on a 
particular hardware. For example, it may mean "discover compatible 
devices and obtain their characteristics".

> What is different compared to the net backend?

Different goals. Though technically it can be within the same daemon.

Currently, there is no such a piece of software, as "SANE". There are 
SANE backends and SANE frontends, but there is no "SANE" in between.

What I propose, is to insert a process between frontends and backends, 
without need to break API compatibility. It will simplify many things. 
Printing architecture has a similar design: applications don't 
communicate with printers directly, but rather communicate with print 
server, which drives hardware.

> Such a daemon would mean additional resources would be required
> (memory) and an additional attack surface.

Currently the ability to scan from USB scanner implies ability to 
directly communicate with arbitrary USB devices. This is giant attack 

> How do you deal with hardware attached/ removed after the initial scan?

I hope, PnP support will be eventually added to SANE API.

> This can of course all be solved, but I am not so sure of the benefits.
> I like the Sane , but be aware:
> https://www.explainxkcd.com/wiki/images/6/60/standards.png

Living standards are evolving. I'm not speaking about replacement SANE 
with some brand new incompatible standard, I'm about a way to evolve.

Currently it is not even possible to add a function to API without need 
to rework all the existent backends.


	Wishes, Alexander Pevzner (pzz at apevzner.com)

More information about the sane-devel mailing list