[IPP] Re: ABNF for printer-[input/output]-tray

[IPP] Re: ABNF for printer-[input/output]-tray

Mike Sweet msweet at apple.com
Sat Nov 12 23:43:24 UTC 2011


Ira,

WRT output-bin vs prtOutputName, I have never seen a printer use the same names in both places (not that many printers support output-bin in the first place...) particularly for the usual case of a single output bin where the name is face-up or face-down.

Also, the existing media-source-properties member attribute was proposed by Pete; as you say this needs further discussion (probably a good hour of the f2f)

Sent from my iPad

On Nov 11, 2011, at 12:28 PM, Ira McDonald <blueroofmusic at gmail.com> wrote:

> Hi Mike,
> 
> Needs discussion at IPP WG meeting and probably at PWG F2F.
> 
> Pete Zehler is understandably not in favor of moving away from the
> Printer MIB model of subunit elements - I agree with him.
> 
> Bear in mind that the value of "output-bin" is simply the value of
> the "prtOutputName" element in Printer MIB - there's no obscurity
> about correlation.
> 
> And "output-bin" as a sticky Job attribute was a late IPP addition 
> and is poorly supported (in my experience).  "output-bin-default"
> has the same value as "prtOutputDefaultIndex->prtOutputName".
> 
> Cheers,
> - Ira
> 
> 
> Ira McDonald (Musician / Software Architect)
> Chair - Linux Foundation Open Printing WG
> Secretary - IEEE-ISTO Printer Working Group
> Co-Chair - IEEE-ISTO PWG IPP WG
> Co-Chair - TCG Trusted Mobility Solutions WG
> Chair - TCG Embedded Systems Hardcopy SG
> IETF Designated Expert - IPP & Printer MIB
> Blue Roof Music/High North Inc
> http://sites.google.com/site/blueroofmusic
> http://sites.google.com/site/highnorthinc
> mailto:blueroofmusic at gmail.com
> Winter  579 Park Place  Saline, MI  48176  734-944-0094
> Summer  PO Box 221  Grand Marais, MI 49839  906-494-2434
> 
> 
> 
> On Fri, Nov 11, 2011 at 2:35 AM, Michael Sweet <msweet at apple.com> wrote:
> On Nov 6, 2011, at 2:31 PM, Ira McDonald wrote:
>> 
>> Hi Mike,                                       Sunday (6 November 2011)
>> 
>> Below is ABNF for new "printer-input-tray" and "printer-output-tray"
>> string attributes (i.e., 1setOf (octetString) since they're fixed in
>> UTF-8 only and not variable charset).
>> 
>> They are based on Printer MIB v2 conformance requirements, media source
>> key properties, and DMTF CIM ranking activity by WIMS WG in 2006.  The
>> reference for that activity (I think we should add as an Informative
>> reference) is:
>> 
>> DMTF CIM Ranking of Printer MIB v2 Objects, WIMS WG, September 2006,
>> ftp://ftp.pwg.org/pub/pwg/wims/cim/
>>     PrinterMibObjectsToAdd_conclusions_20060921_F.pdf
>> 
>> Mike - note the attribute conformance tables have been included.  Also
>> note I fixed the table headers to more accurate "Printer MIB Object".
>> 
>> Comments?
> 
> OK, so I am concerned that we are providing input tray information in two different places.  The current media-col-ready attribute provides most of the information in printer-input-tray - as of JPS3 the only missing information is the current level, max capacity, capacity unit, and status.  Seems like we could simply add those to the media-source-properties (or a new media-status) collection member attribute instead?
> 
> As for printer-output-tray, I'm not sure how a Client could correlate the values with output-bin/output-bin-default/output-bin-supported?  I almost think we want an output-bin-ready or output-bin-status 1setOf collection attribute instead that correlates the output tray information to output-bin values.
> 
>> Cheers,
>> - Ira
>> 
>> ------------------------------------------------------------------------
>> 
>> Notes:
>> 
>> (1) prtInputIndex is OPTIONAL in "printer-input-tray", because
>> correlation with the original MIB order is considered unimportant.
>> 
>> (2) prtInputMediaName, prtInputMediaType, and prtInputMediaColor are
>> RECOMMENDED in "printer-input-tray", because they are important but
>> often unknown to the printer (while loaded media dimensions are usually
>> known).
>> 
>> (3) prtInputMediaWeight is OPTIONAL in "printer-input-tray", because
>> because most Printers can't sense loaded media weight.
>> 
>> (4) Printer MIB objects without corresponding IPP keywords are *not*
>> mapped, per DMTF CIM ranking activity in WIMS WG in 2006.
>> 
>>             Table X - Keywords for printer-input-tray
>> 
>> Printer MIB Object      IPP Datatype    IPP Keyword         Conformance
>> ------------------      ------------    -----------         -----------
>> prtInput...
>> Index (note 1)          Integer         index               OPTIONAL
>> Type                    String          type                REQUIRED
>> DimUnit                 String          dimunit             RECOMMENDED
>> MediaDimFeedDirDeclared Integer         mediafeed           REQUIRED
>> MediaDimXFeedDirDeclared Integer        mediaxfeed          REQUIRED
>> MediaDimFeedDirChosen   ---             ---                 ---
>> MediaDimXFeedDirChosen  ---             ---                 ---
>> CapacityUnit            String          unit                RECOMMENDED
>> MaxCapacity             Integer         maxcapacity         REQUIRED
>> CurrentLevel            Integer         level               REQUIRED
>> Status                  Integer         status              REQUIRED
>> MediaName (note 2)      String          medianame           RECOMMENDED
>> Name                    String          name                REQUIRED
>> VendorName              ---             ---                 ---
>> Model                   ---             ---                 ---
>> Version                 ---             ---                 ---
>> SerialNumber            ---             ---                 ---
>> Security                ---             ---                 ---
>> MediaWeight (note 3)    Integer         mediaweight         OPTIONAL
>> MediaType (note 2)      String          mediatype           RECOMMENDED
>> MediaColor (note 2)     String          mediacolor          RECOMMENDED
>> MediaFormParts          ---             ---                 ---
>> MediaLoadTimeout        ---             ---                 ---
>> NextIndex               ---             ---                 ---
>> 
>> 
>>                     Examples of printer-input-tray
>> 
>> printer-input-tray[1] =
>>     type=sheetFeedAutoRemovableTray;
>>     mediafeed=110000;mediaxfeed=85000;
>>     maxcapacity=500;level=100;status=8;name=Tray1;
>>     index=1;dimunit=tenThousandthsOfInches;unit=sheets;
>>     medianame=na-letter;mediaweight=-2;
>>     mediatype=stationery;mediacolor=blue;
>> 
>> printer-input-tray[2] =
>>     type=sheetFeedAutoRemovableTray;
>>     mediafeed=110000;mediaxfeed=85000;
>>     maxcapacity=100;level=20;status=8;name=Tray2;
>>     index=2;dimunit=tenThousandthsOfInches;unit=sheets;
>>     medianame=na-letter;mediaweight=-2;
>>     mediatype=photographic;mediacolor=white;
>> 
>> 
>>             Figure X - ABNF for "printer-input-tray" values
>> 
>> printer-input-tray  = *input-required *[input-optional]
>>     ; set of input elements encoded into one value
>> 
>> input-required      = input-req ";"
>> input-req           = input-type /
>>                       input-media-feed /
>>                       input-media-xfeed /
>>                       input-max-capacity /
>>                       input-level /
>>                       input-status /
>>                       input-name
>> 
>> input-optional      = input-opt ";"
>> input-opt           = input-index /
>>                       input-dim-unit /
>>                       input-unit /
>>                       input-media-name /
>>                       input-media-weight /
>>                       input-media-type /
>>                       input-media-color
>> 
>> input-type          = "type" "=" 1*ALPHA
>>     ; enumerated value as an alpha string
>>     ; (e.g., 'sheetFeedAutoRemovableTray') of prtInputType
>>     ; in [RFC3805] mapped indirectly from
>>     ; the *label* in PrtInputTypeTC in [IANAPRT]
>> 
>> input-media-feed    = "mediafeed" "="  1*[DIGIT / "-"]
>>     ; integer value as a numeric string mapped directly from
>>     ; prtInputMediaDimFeedDirDeclared in [RFC3805]
>> 
>> input-media-xfeed   = "mediaxfeed" "="  1*[DIGIT / "-"]
>>     ; integer value as a numeric string mapped directly from
>>     ; prtInputMediaDimXFeedDirDeclared in [RFC3805]
>> 
>> input-max-capacity  = "maxcapacity" "=" 1*[DIGIT / "-"]
>>     ; integer value as a numeric string mapped directly from
>>     ; prtInputMaxCapacity in [RFC3805]
>> 
>> input-level         = "level" "=" 1*[DIGIT / "-"]
>>     ; integer value as a numeric string mapped directly from
>>     ; prtInputCurrentLevel in [RFC3805]
>> 
>> input-status        = "status" "=" 1*DIGIT
>>     ; integer value as a numeric string mapped directly from
>>     ; prtInputStatus in [RFC3805]
>> 
>> input-name          = "name" "=" 1*ALPHA
>>     ; string value as an alpha string mapped directly from
>>     ; prtInputName in [RFC3805]
>> 
>> 
>> input-index         = "index" "=" 1*DIGIT
>>     ; integer value as a numeric string mapped directly from
>>     ; prtInputIndex in [RFC3805]
>> 
>> input-dim-unit      = "dimunit" "=" 1*ALPHA
>>     ; enumerated value as an alpha string (e.g., 'other') of
>>     ; prtInputDimUnit in [RFC3805] mapped indirectly from
>>     ; the *label* in PrtMediaUnitTC in [RFC3805]
>> 
>> input-unit          = "unit" "=" 1*ALPHA
>>     ; enumerated value as an alpha string (e.g., 'other') of
>>     ; prtInputCapacityUnit in [RFC3805] mapped indirectly from
>>     ; the *label* in PrtCapacityUnitTC in [RFC3805]
>> 
>> input-media-name    = "medianame" "=" 1*ALPHA
>>     ; string value as an alpha string mapped directly from
>>     ; prtInputMediaName in [RFC3805]
>> 
>> input-media-weight  = "mediaweight" "=" 1*[DIGIT / "-"]
>>     ; integer value as a numeric string mapped directly from
>>     ; prtInputMediaWeight in [RFC3805]
>> 
>> input-media-type    = "mediatype" "=" 1*ALPHA
>>     ; string value as an alpha string mapped directly from
>>     ; prtInputMediaType in [RFC3805]
>> 
>> input-media-color   = "mediacolor" "=" 1*ALPHA
>>     ; string value as an alpha string mapped directly from
>>     ; prtInputMediaColor in [RFC3805]
>> 
>> ------------------------------------------------------------------------
>> 
>> Notes:
>> 
>> (1) prtOutputIndex is OPTIONAL in "printer-output-tray", because
>> correlation with the original MIB order is considered unimportant.
>> 
>> (2) prtOutputDimUnit, prtOutputMaxDimFeedDir, prtOutputMaxDimXFeedDir,
>> prtOutputMinDimFeedDir, and prtOutputMinDimXFeedDir are *not* mapped,
>> because they were rated "C" (low priority) in the DMTF CIM ranking
>> activity in WIMS WG in 2006.
>> 
>> (3) prtOutputStackingOrder, prtOututPageDeliveryOrientation, and
>> prtOutputOffsetStacking are OPTIONAL in "printer-output-tray", because
>> they were rated "B" (medium priority) in the DMTF CIM ranking activity
>> in WIMS WG in 2006.
>> 
>> (4) Printer MIB objects without corresponding IPP keywords are *not*
>> mapped, per DMTF CIM ranking activity in WIMS WG in 2006.
>> 
>>             Table Y - Keywords for printer-output-tray
>> 
>> Printer MIB Object      IPP Datatype    IPP Keyword         Conformance
>> ------------------      ------------    -----------         -----------
>> prtOutput...
>> Index (note 1)          Integer         index               OPTIONAL
>> Type                    String          type                REQUIRED
>> CapacityUnit            String          unit                RECOMMENDED
>> MaxCapacity             Integer         maxcapacity         REQUIRED
>> RemainingCapacity       Integer         remaining           REQUIRED
>> Status                  Integer         status              REQUIRED
>> Name                    String          name                REQUIRED
>> VendorName              ---             ---                 ---
>> Model                   ---             ---                 ---
>> Version                 ---             ---                 ---
>> SerialNumber            ---             ---                 ---
>> Security                ---             ---                 ---
>> DimUnit (note 2)        ---             ---                 ---
>> MaxDimFeedDir (note 2)  ---             ---                 ---
>> MaxDimXFeedDir (note 2) ---             ---                 ---
>> MinDimFeedDir (note 2)  ---             ---                 ---
>> MinDimXFeedDir (note 2) ---             ---                 ---
>> StackingOrder (note 3)  String          stackingorder       OPTIONAL
>> PageDeliveryOrientation String          pagedelivery        OPTIONAL
>>     (note 3)
>> Bursting                ---             ---                 ---
>> Decollating             ---             ---                 ---
>> PageCollated            ---             ---                 ---
>> OffsetStacking (note 3) String          offsetstacking      OPTIONAL
>> 
>> 
>>                     Examples of printer-output-tray
>> 
>> printer-output-tray[1] =
>>     type=removableBin;
>>     maxcapacity=500;remaining=-3;status=12;name=LeftOutputBin;
>>     index=1;unit=sheets;stackingorder=firstToLast;
>>     pagedelivery=faceDown;offsetstacking=notPresent;
>> 
>> printer-output-tray[2] =
>>     type=removableBin;
>>     maxcapacity=300;remaining=-3;status=0;name=RightOutputBin;
>>     index=2;unit=sheets;stackingorder=firstToLast;
>>     pagedelivery=faceDown;offsetstacking=notPresent;
>> 
>> 
>>             Figure Y - ABNF for "printer-output-tray" values
>> 
>> printer-output-tray = *output-required *[output-optional]
>>     ; set of output elements encoded into one value
>> 
>> output-required     = output-req ";"
>> output-req          = output-type /
>>                       output-max-capacity /
>>                       output-remaining /
>>                       output-status /
>>                       output-name
>> 
>> output-optional     = output-opt ";"
>> output-opt          = output-index /
>>                       output-unit /
>>                       output-stacking-order /
>>                       output-page-delivery /
>>                       output-offset-stacking
>> 
>> output-type         = "type" "=" 1*ALPHA
>>     ; enumerated value as an alpha string
>>     ; (e.g., 'removableBin') of prtOutputType
>>     ; in [RFC3805] mapped indirectly from
>>     ; the *label* in PrtOutputTypeTC in [IANAPRT]
>> 
>> output-max-capacity = "maxcapacity" "=" 1*[DIGIT / "-"]
>>     ; integer value as a numeric string mapped directly from
>>     ; prtOutputMaxCapacity in [RFC3805]
>> 
>> output-remaining    = "remaining" "=" 1*[DIGIT / "-"]
>>     ; integer value as a numeric string mapped directly from
>>     ; prtOutputRemainingCapacity in [RFC3805]
>> 
>> output-status       = "status" "=" 1*DIGIT
>>     ; integer value as a numeric string mapped directly from
>>     ; prtOutputStatus in [RFC3805]
>> 
>> output-name         = "name" "=" 1*ALPHA
>>     ; string value as an alpha string mapped directly from
>>     ; prtOutputName in [RFC3805]
>> 
>> 
>> output-index        = "index" "=" 1*DIGIT
>>     ; integer value as a numeric string mapped directly from
>>     ; prtOutputIndex in [RFC3805]
>> 
>> output-unit         = "unit" "=" 1*ALPHA
>>     ; enumerated value as an alpha string (e.g., 'other') of
>>     ; prtOutputCapacityUnit in [RFC3805] mapped indirectly from
>>     ; the *label* in PrtCapacityUnitTC in [RFC3805]
>> 
>> output-stacking-order = "stackingorder" "=" 1*ALPHA
>>     ; enumerated value as an alpha string (e.g., 'firstToLast') of
>>     ; prtOutputStackingOrder in [RFC3805] mapped indirectly from
>>     ; the *label* in PrtOutputStackingOrderTC in [RFC3805]
>> 
>> output-page-delivery = "pagedelivery" "=" 1*ALPHA
>>     ; enumerated value as an alpha string (e.g., 'faceUp') of
>>     ; prtOutputPageDeliveryOrientation in [RFC3805] mapped indirectly
>>     ; from the *label* in PrtOutputPageDeliveryOrientationTC in
>>     ; [RFC3805]
>> 
>> output-offset-stacking = "offsetstacking" "=" 1*ALPHA
>>     ; enumerated value as an alpha string (e.g., 'notPresent') of
>>     ; prtOutputOffsetStacking in [RFC3805] mapped indirectly from
>>     ; the *label* in PresentOnOff in [RFC3805]
>> 
>> ------------------------------------------------------------------------
>> 
> 
> __________________________________________________
> Michael Sweet, Senior Printing System Engineer, PWG Chair
> 
> 

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.pwg.org/pipermail/ipp/attachments/20111112/4c19028d/attachment-0001.html>


More information about the ipp mailing list