<div dir="ltr"><div>Hi Till,</div><div><br></div><div>Hopefully someone from Apple can comment here about AirScan.</div><div><br></div><div>eSCL is *not* a PWG protocol and I can't find any public info about</div><div>it in a quick search.  The acronym has apparently been used in the</div><div>past for other proprietary protocols, according to Google search,</div><div>for example this 10-year-old reference:</div><div><br></div><div><a href="https://www.applied-motion.com/sites/default/files/hardware-manuals/eSCL_Comm_Reference.pdf">https://www.applied-motion.com/sites/default/files/hardware-manuals/eSCL_Comm_Reference.pdf</a></div><div><br></div><div></div><div>Cheers,</div><div>- Ira</div><div><br></div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Ira McDonald (Musician / Software Architect)<br>Co-Chair - TCG Trusted Mobility Solutions WG</div><div>Co-Chair - TCG Metadata Access Protocol SG<br></div><div dir="ltr">Chair - Linux Foundation Open Printing WG<br>Secretary - IEEE-ISTO Printer Working Group<br>Co-Chair - IEEE-ISTO PWG Internet Printing Protocol WG<br>IETF Designated Expert - IPP & Printer MIB<br>Blue Roof Music / High North Inc<br><a style="color:rgb(51,51,255)" href="http://sites.google.com/site/blueroofmusic" target="_blank">http://sites.google.com/site/blueroofmusic</a><br><a style="color:rgb(102,0,204)" href="http://sites.google.com/site/highnorthinc" target="_blank">http://sites.google.com/site/highnorthinc</a><br>mailto: <a href="mailto:blueroofmusic@gmail.com" target="_blank">blueroofmusic@gmail.com</a><br>PO Box 221  Grand Marais, MI 49839  906-494-2434<br><br><div style="display:inline"></div><div style="display:inline"></div><div style="display:inline"></div><div></div><div></div><div></div><div></div></div></div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Dec 15, 2019 at 5:55 PM Till Kamppeter <<a href="mailto:till.kamppeter@gmail.com">till.kamppeter@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
on the SANE developer mailing list is currently discussion about the eSCL <br>
scanning protocol as they are adding an eSCL scanning backend from a contributor.<br>
<br>
They found out that all multi-function devices which print via Apple AirPrint <br>
support the eSCL scanning protocol, as part of AirScan. The protocol works with <br>
communication vis HTTP(S) and in XML format. To be driverless (no <br>
device-model-specific code or data) one can poll the capabilities of the scanner <br>
and then set scan options and scan. Image data is returned in JPEG, PNG, or PDF, <br>
depending on the model.<br>
<br>
Devices advertise themselves via DNS-SD with registration type _uscan._tcp and <br>
in the TXT record having a "rs=/eSCL" entry.<br>
<br>
This all works principally on the network, but it also works on devices <br>
connected by USB when they support IPP-over-USB and ippusbxd is running for <br>
them. So this way one can for the first time print and scan through ippusbxd.<br>
<br>
When I see the output of a capabilities poll (see below) one sees a lot of <br>
"pwg". Is ESCL an (older) PWG standard or has it generally something to do with <br>
the PWG?<br>
<br>
    Till<br>
<br>
----------<br>
<br>
Full DNS-SD record:<br>
<br>
----------<br>
Found service 'Deskjet 2540 series [E7DDC7]' of type '_uscan._tcp' in domain <br>
'local' on 3.1.<br>
Service data for service 'Deskjet 2540 series [E7DDC7]' of type '_uscan._tcp' in <br>
domain 'local' on 3.0:<br>
     Host HP5CB901E7DDC7.local (192.168.223.1), port 8080, TXT data: <br>
['duplex=F', 'is=platen', 'cs=binary,color,grayscale', 'rs=/eSCL', <br>
'representation=', 'UUID=1c852a4d-b800-1f08-abcd-5cb901e7ddc7', 'note=', <br>
'adminurl=<a href="http://HP5CB901E7DDC7.local." rel="noreferrer" target="_blank">http://HP5CB901E7DDC7.local.</a>', 'ty=HP Deskjet 2540 series', <br>
'pdl=application/octet-stream,application/pdf,image/jpeg', 'vers=2.0', 'txtvers=1']<br>
----------<br>
<br>
Get capabilities:<br>
<br>
wget <a href="http://192.168.223.1:8080/eSCL/ScannerCapabilities" rel="noreferrer" target="_blank">http://192.168.223.1:8080/eSCL/ScannerCapabilities</a><br>
<br>
or with ippusbxd running ia USB:<br>
<br>
wget <a href="http://localhost:60000/eSCL/ScannerCapabilities" rel="noreferrer" target="_blank">http://localhost:60000/eSCL/ScannerCapabilities</a><br>
<br>
This results in:<br>
<br>
----------<br>
<!--  --><br>
<scan:ScannerCapabilities <br>
xmlns:scan="<a href="http://schemas.hp.com/imaging/escl/2011/05/03" rel="noreferrer" target="_blank">http://schemas.hp.com/imaging/escl/2011/05/03</a>" <br>
xmlns:pwg="<a href="http://www.pwg.org/schemas/2010/12/sm" rel="noreferrer" target="_blank">http://www.pwg.org/schemas/2010/12/sm</a>" <br>
xmlns:dest="<a href="http://schemas.hp.com/imaging/destination/2011/06/06" rel="noreferrer" target="_blank">http://schemas.hp.com/imaging/destination/2011/06/06</a>" <br>
xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance" rel="noreferrer" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>" <br>
xsi:schemaLocation="<a href="http://schemas.hp.com/imaging/escl/2011/05/03" rel="noreferrer" target="_blank">http://schemas.hp.com/imaging/escl/2011/05/03</a> <br>
../../schemas/eSCL-1_92.xsd"><br>
<pwg:Version>2.0</pwg:Version><br>
<pwg:MakeAndModel>xxxx</pwg:MakeAndModel><br>
<pwg:SerialNumber>25</pwg:SerialNumber><br>
<scan:Platen><br>
<scan:PlatenInputCaps><br>
<scan:MinWidth>8</scan:MinWidth><br>
<scan:MaxWidth>2550</scan:MaxWidth><br>
<scan:MinHeight>8</scan:MinHeight><br>
<scan:MaxHeight>3508</scan:MaxHeight><br>
<scan:MaxScanRegions>1</scan:MaxScanRegions><br>
<scan:SettingProfiles><br>
<scan:SettingProfile><br>
<scan:ColorModes><br>
<scan:ColorMode>Grayscale8</scan:ColorMode><br>
<scan:ColorMode>RGB24</scan:ColorMode><br>
</scan:ColorModes><br>
<scan:ContentTypes><br>
<pwg:ContentType>Photo</pwg:ContentType><br>
<pwg:ContentType>Text</pwg:ContentType><br>
<pwg:ContentType>TextAndPhoto</pwg:ContentType><br>
</scan:ContentTypes><br>
<scan:DocumentFormats><br>
<pwg:DocumentFormat>application/octet-stream</pwg:DocumentFormat><br>
<pwg:DocumentFormat>image/jpeg</pwg:DocumentFormat><br>
<pwg:DocumentFormat>application/pdf</pwg:DocumentFormat><br>
</scan:DocumentFormats><br>
<scan:SupportedResolutions><br>
<scan:DiscreteResolutions><br>
<scan:DiscreteResolution><br>
<scan:XResolution>75</scan:XResolution><br>
<scan:YResolution>75</scan:YResolution><br>
</scan:DiscreteResolution><br>
<scan:DiscreteResolution><br>
<scan:XResolution>100</scan:XResolution><br>
<scan:YResolution>100</scan:YResolution><br>
</scan:DiscreteResolution><br>
<scan:DiscreteResolution><br>
<scan:XResolution>200</scan:XResolution><br>
<scan:YResolution>200</scan:YResolution><br>
</scan:DiscreteResolution><br>
<scan:DiscreteResolution><br>
<scan:XResolution>300</scan:XResolution><br>
<scan:YResolution>300</scan:YResolution><br>
</scan:DiscreteResolution><br>
<scan:DiscreteResolution><br>
<scan:XResolution>600</scan:XResolution><br>
<scan:YResolution>600</scan:YResolution><br>
</scan:DiscreteResolution><br>
<scan:DiscreteResolution><br>
<scan:XResolution>1200</scan:XResolution><br>
<scan:YResolution>1200</scan:YResolution><br>
</scan:DiscreteResolution><br>
<scan:DiscreteResolution><br>
<scan:XResolution>2400</scan:XResolution><br>
<scan:YResolution>2400</scan:YResolution><br>
</scan:DiscreteResolution><br>
</scan:DiscreteResolutions><br>
</scan:SupportedResolutions><br>
<scan:ColorSpaces><br>
<scan:ColorSpace>YCC</scan:ColorSpace><br>
<scan:ColorSpace>RGB</scan:ColorSpace><br>
<scan:ColorSpace>sRGB</scan:ColorSpace><br>
</scan:ColorSpaces><br>
</scan:SettingProfile><br>
</scan:SettingProfiles><br>
<scan:SupportedIntents><br>
<scan:Intent>Document</scan:Intent><br>
<scan:Intent>Photo</scan:Intent><br>
<scan:Intent>Preview</scan:Intent><br>
<scan:Intent>TextAndGraphic</scan:Intent><br>
</scan:SupportedIntents><br>
<scan:MaxOpticalXResolution>2400</scan:MaxOpticalXResolution><br>
<scan:MaxOpticalYResolution>2400</scan:MaxOpticalYResolution><br>
<scan:RiskyLeftMargin>34</scan:RiskyLeftMargin><br>
<scan:RiskyRightMargin>33</scan:RiskyRightMargin><br>
<scan:RiskyTopMargin>34</scan:RiskyTopMargin><br>
<scan:RiskyBottomMargin>46</scan:RiskyBottomMargin><br>
</scan:PlatenInputCaps><br>
</scan:Platen><br>
<scan:BrightnessSupport><br>
<scan:Min>0</scan:Min><br>
<scan:Max>2000</scan:Max><br>
<scan:Step>1</scan:Step><br>
</scan:BrightnessSupport><br>
<scan:ContrastSupport><br>
<scan:Min>0</scan:Min><br>
<scan:Max>2000</scan:Max><br>
<scan:Step>1</scan:Step><br>
</scan:ContrastSupport><br>
<scan:HighlightSupport><br>
<scan:Min>0</scan:Min><br>
<scan:Max>255</scan:Max><br>
<scan:Normal>179</scan:Normal><br>
<scan:Step>1</scan:Step><br>
</scan:HighlightSupport><br>
<scan:ShadowSupport><br>
<scan:Min>0</scan:Min><br>
<scan:Max>255</scan:Max><br>
<scan:Normal>25</scan:Normal><br>
<scan:Step>1</scan:Step><br>
</scan:ShadowSupport><br>
<scan:SharpenSupport><br>
<scan:Min>0</scan:Min><br>
<scan:Max>255</scan:Max><br>
<scan:Step>1</scan:Step><br>
</scan:SharpenSupport><br>
<scan:ThresholdSupport><br>
<scan:Min>0</scan:Min><br>
<scan:Max>255</scan:Max><br>
<scan:Normal>128</scan:Normal><br>
<scan:Step>1</scan:Step><br>
</scan:ThresholdSupport><br>
</scan:ScannerCapabilities><br>
_______________________________________________<br>
Printing-architecture mailing list<br>
<a href="mailto:Printing-architecture@lists.linux-foundation.org" target="_blank">Printing-architecture@lists.linux-foundation.org</a><br>
<a href="https://lists.linuxfoundation.org/mailman/listinfo/printing-architecture" rel="noreferrer" target="_blank">https://lists.linuxfoundation.org/mailman/listinfo/printing-architecture</a><br>
</blockquote></div>