attachment-0001
<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Nov 6, 2011, at 2:31 PM, Ira McDonald wrote:</div><blockquote type="cite"><br clear="all">Hi Mike,                                       Sunday (6 November 2011)<br><br>Below is ABNF for new "printer-input-tray" and "printer-output-tray"<br>string attributes (i.e., 1setOf (octetString) since they're fixed in<br>
UTF-8 only and not variable charset).<br><br>They are based on Printer MIB v2 conformance requirements, media source<br>key properties, and DMTF CIM ranking activity by WIMS WG in 2006.  The<br>reference for that activity (I think we should add as an Informative<br>
reference) is:<br><br>DMTF CIM Ranking of Printer MIB v2 Objects, WIMS WG, September 2006,<br><a href="ftp://ftp.pwg.org/pub/pwg/wims/cim/">ftp://ftp.pwg.org/pub/pwg/wims/cim/</a><br>    PrinterMibObjectsToAdd_conclusions_20060921_F.pdf<br>
<br>Mike - note the attribute conformance tables have been included.  Also<br>note I fixed the table headers to more accurate "Printer MIB Object".<br><br>Comments?<br></blockquote><div><br></div>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?</div><div><br></div><div>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.</div><div><br></div><div><blockquote type="cite">Cheers,<br>- Ira<br><br>------------------------------------------------------------------------<br>
<br>Notes:<br><br>(1) prtInputIndex is OPTIONAL in "printer-input-tray", because<br>correlation with the original MIB order is considered unimportant.<br><br>(2) prtInputMediaName, prtInputMediaType, and prtInputMediaColor are<br>
RECOMMENDED in "printer-input-tray", because they are important but<br>often unknown to the printer (while loaded media dimensions are usually<br>known).<br><br>(3) prtInputMediaWeight is OPTIONAL in "printer-input-tray", because<br>
because most Printers can't sense loaded media weight.<br><br>(4) Printer MIB objects without corresponding IPP keywords are *not*<br>mapped, per DMTF CIM ranking activity in WIMS WG in 2006.<br><br>            Table X - Keywords for printer-input-tray<br>
<br>Printer MIB Object      IPP Datatype    IPP Keyword         Conformance<br>------------------      ------------    -----------         -----------<br>prtInput...<br>Index (note 1)          Integer         index               OPTIONAL<br>
Type                    String          type                REQUIRED<br>DimUnit                 String          dimunit             RECOMMENDED<br>MediaDimFeedDirDeclared Integer         mediafeed           REQUIRED<br>MediaDimXFeedDirDeclared Integer        mediaxfeed          REQUIRED<br>
MediaDimFeedDirChosen   ---             ---                 ---<br>MediaDimXFeedDirChosen  ---             ---                 ---<br>CapacityUnit            String          unit                RECOMMENDED<br>MaxCapacity             Integer         maxcapacity         REQUIRED<br>
CurrentLevel            Integer         level               REQUIRED<br>Status                  Integer         status              REQUIRED<br>MediaName (note 2)      String          medianame           RECOMMENDED<br>Name                    String          name                REQUIRED<br>
VendorName              ---             ---                 ---<br>Model                   ---             ---                 ---<br>Version                 ---             ---                 ---<br>SerialNumber            ---             ---                 ---<br>
Security                ---             ---                 ---<br>MediaWeight (note 3)    Integer         mediaweight         OPTIONAL<br>MediaType (note 2)      String          mediatype           RECOMMENDED<br>MediaColor (note 2)     String          mediacolor          RECOMMENDED<br>
MediaFormParts          ---             ---                 ---<br>MediaLoadTimeout        ---             ---                 ---<br>NextIndex               ---             ---                 ---<br><br><br>                    Examples of printer-input-tray<br>
<br>printer-input-tray[1] =<br>    type=sheetFeedAutoRemovableTray;<br>    mediafeed=110000;mediaxfeed=85000;<br>    maxcapacity=500;level=100;status=8;name=Tray1;<br>    index=1;dimunit=tenThousandthsOfInches;unit=sheets;<br>
    medianame=na-letter;mediaweight=-2;<br>    mediatype=stationery;mediacolor=blue;<br><br>printer-input-tray[2] =<br>    type=sheetFeedAutoRemovableTray;<br>    mediafeed=110000;mediaxfeed=85000;<br>    maxcapacity=100;level=20;status=8;name=Tray2;<br>
    index=2;dimunit=tenThousandthsOfInches;unit=sheets;<br>    medianame=na-letter;mediaweight=-2;<br>    mediatype=photographic;mediacolor=white;<br><br><br>            Figure X - ABNF for "printer-input-tray" values<br>
<br>printer-input-tray  = *input-required *[input-optional]<br>    ; set of input elements encoded into one value<br><br>input-required      = input-req ";"<br>input-req           = input-type /<br>                      input-media-feed /<br>
                      input-media-xfeed /<br>                      input-max-capacity /<br>                      input-level /<br>                      input-status /<br>                      input-name<br><br>input-optional      = input-opt ";"<br>
input-opt           = input-index /<br>                      input-dim-unit /<br>                      input-unit /<br>                      input-media-name /<br>                      input-media-weight /<br>                      input-media-type /<br>
                      input-media-color<br><br>input-type          = "type" "=" 1*ALPHA<br>    ; enumerated value as an alpha string<br>    ; (e.g., 'sheetFeedAutoRemovableTray') of prtInputType<br>
    ; in [RFC3805] mapped indirectly from<br>    ; the *label* in PrtInputTypeTC in [IANAPRT]<br><br>input-media-feed    = "mediafeed" "="  1*[DIGIT / "-"]<br>    ; integer value as a numeric string mapped directly from<br>
    ; prtInputMediaDimFeedDirDeclared in [RFC3805]<br><br>input-media-xfeed   = "mediaxfeed" "="  1*[DIGIT / "-"]<br>    ; integer value as a numeric string mapped directly from<br>    ; prtInputMediaDimXFeedDirDeclared in [RFC3805]<br>
<br>input-max-capacity  = "maxcapacity" "=" 1*[DIGIT / "-"]<br>    ; integer value as a numeric string mapped directly from<br>    ; prtInputMaxCapacity in [RFC3805]<br><br>input-level         = "level" "=" 1*[DIGIT / "-"]<br>
    ; integer value as a numeric string mapped directly from<br>    ; prtInputCurrentLevel in [RFC3805]<br><br>input-status        = "status" "=" 1*DIGIT<br>    ; integer value as a numeric string mapped directly from<br>
    ; prtInputStatus in [RFC3805]<br><br>input-name          = "name" "=" 1*ALPHA<br>    ; string value as an alpha string mapped directly from<br>    ; prtInputName in [RFC3805]<br><br><br>input-index         = "index" "=" 1*DIGIT<br>
    ; integer value as a numeric string mapped directly from<br>    ; prtInputIndex in [RFC3805]<br><br>input-dim-unit      = "dimunit" "=" 1*ALPHA<br>    ; enumerated value as an alpha string (e.g., 'other') of<br>
    ; prtInputDimUnit in [RFC3805] mapped indirectly from<br>    ; the *label* in PrtMediaUnitTC in [RFC3805]<br><br>input-unit          = "unit" "=" 1*ALPHA<br>    ; enumerated value as an alpha string (e.g., 'other') of<br>
    ; prtInputCapacityUnit in [RFC3805] mapped indirectly from<br>    ; the *label* in PrtCapacityUnitTC in [RFC3805]<br><br>input-media-name    = "medianame" "=" 1*ALPHA<br>    ; string value as an alpha string mapped directly from<br>
    ; prtInputMediaName in [RFC3805]<br><br>input-media-weight  = "mediaweight" "=" 1*[DIGIT / "-"]<br>    ; integer value as a numeric string mapped directly from<br>    ; prtInputMediaWeight in [RFC3805]<br>
<br>input-media-type    = "mediatype" "=" 1*ALPHA<br>    ; string value as an alpha string mapped directly from<br>    ; prtInputMediaType in [RFC3805]<br><br>input-media-color   = "mediacolor" "=" 1*ALPHA<br>
    ; string value as an alpha string mapped directly from<br>    ; prtInputMediaColor in [RFC3805]<br><br>------------------------------------------------------------------------<br><br>Notes:<br><br>(1) prtOutputIndex is OPTIONAL in "printer-output-tray", because<br>
correlation with the original MIB order is considered unimportant.<br><br>(2) prtOutputDimUnit, prtOutputMaxDimFeedDir, prtOutputMaxDimXFeedDir,<br>prtOutputMinDimFeedDir, and prtOutputMinDimXFeedDir are *not* mapped,<br>
because they were rated "C" (low priority) in the DMTF CIM ranking<br>activity in WIMS WG in 2006.<br><br>(3) prtOutputStackingOrder, prtOututPageDeliveryOrientation, and<br>prtOutputOffsetStacking are OPTIONAL in "printer-output-tray", because<br>
they were rated "B" (medium priority) in the DMTF CIM ranking activity<br>in WIMS WG in 2006.<br><br>(4) Printer MIB objects without corresponding IPP keywords are *not*<br>mapped, per DMTF CIM ranking activity in WIMS WG in 2006.<br>
<br>            Table Y - Keywords for printer-output-tray<br><br>Printer MIB Object      IPP Datatype    IPP Keyword         Conformance<br>------------------      ------------    -----------         -----------<br>prtOutput...<br>
Index (note 1)          Integer         index               OPTIONAL<br>Type                    String          type                REQUIRED<br>CapacityUnit            String          unit                RECOMMENDED<br>MaxCapacity             Integer         maxcapacity         REQUIRED<br>
RemainingCapacity       Integer         remaining           REQUIRED<br>Status                  Integer         status              REQUIRED<br>Name                    String          name                REQUIRED<br>VendorName              ---             ---                 ---<br>
Model                   ---             ---                 ---<br>Version                 ---             ---                 ---<br>SerialNumber            ---             ---                 ---<br>Security                ---             ---                 ---<br>
DimUnit (note 2)        ---             ---                 ---<br>MaxDimFeedDir (note 2)  ---             ---                 ---<br>MaxDimXFeedDir (note 2) ---             ---                 ---<br>MinDimFeedDir (note 2)  ---             ---                 ---<br>
MinDimXFeedDir (note 2) ---             ---                 ---<br>StackingOrder (note 3)  String          stackingorder       OPTIONAL<br>PageDeliveryOrientation String          pagedelivery        OPTIONAL<br>    (note 3)<br>
Bursting                ---             ---                 ---<br>Decollating             ---             ---                 ---<br>PageCollated            ---             ---                 ---<br>OffsetStacking (note 3) String          offsetstacking      OPTIONAL<br>
<br><br>                    Examples of printer-output-tray<br><br>printer-output-tray[1] =<br>    type=removableBin;<br>    maxcapacity=500;remaining=-3;status=12;name=LeftOutputBin;<br>    index=1;unit=sheets;stackingorder=firstToLast;<br>
    pagedelivery=faceDown;offsetstacking=notPresent;<br><br>printer-output-tray[2] =<br>    type=removableBin;<br>    maxcapacity=300;remaining=-3;status=0;name=RightOutputBin;<br>    index=2;unit=sheets;stackingorder=firstToLast;<br>
    pagedelivery=faceDown;offsetstacking=notPresent;<br><br><br>            Figure Y - ABNF for "printer-output-tray" values<br><br>printer-output-tray = *output-required *[output-optional]<br>    ; set of output elements encoded into one value<br>
<br>output-required     = output-req ";"<br>output-req          = output-type /<br>                      output-max-capacity /<br>                      output-remaining /<br>                      output-status /<br>
                      output-name<br><br>output-optional     = output-opt ";"<br>output-opt          = output-index /<br>                      output-unit /<br>                      output-stacking-order /<br>                      output-page-delivery /<br>
                      output-offset-stacking<br><br>output-type         = "type" "=" 1*ALPHA<br>    ; enumerated value as an alpha string<br>    ; (e.g., 'removableBin') of prtOutputType<br>    ; in [RFC3805] mapped indirectly from<br>
    ; the *label* in PrtOutputTypeTC in [IANAPRT]<br><br>output-max-capacity = "maxcapacity" "=" 1*[DIGIT / "-"]<br>    ; integer value as a numeric string mapped directly from<br>    ; prtOutputMaxCapacity in [RFC3805]<br>
<br>output-remaining    = "remaining" "=" 1*[DIGIT / "-"]<br>    ; integer value as a numeric string mapped directly from<br>    ; prtOutputRemainingCapacity in [RFC3805]<br><br>output-status       = "status" "=" 1*DIGIT<br>
    ; integer value as a numeric string mapped directly from<br>    ; prtOutputStatus in [RFC3805]<br><br>output-name         = "name" "=" 1*ALPHA<br>    ; string value as an alpha string mapped directly from<br>
    ; prtOutputName in [RFC3805]<br><br><br>output-index        = "index" "=" 1*DIGIT<br>    ; integer value as a numeric string mapped directly from<br>    ; prtOutputIndex in [RFC3805]<br><br>output-unit         = "unit" "=" 1*ALPHA<br>
    ; enumerated value as an alpha string (e.g., 'other') of<br>    ; prtOutputCapacityUnit in [RFC3805] mapped indirectly from<br>    ; the *label* in PrtCapacityUnitTC in [RFC3805]<br><br>output-stacking-order = "stackingorder" "=" 1*ALPHA<br>
    ; enumerated value as an alpha string (e.g., 'firstToLast') of<br>    ; prtOutputStackingOrder in [RFC3805] mapped indirectly from<br>    ; the *label* in PrtOutputStackingOrderTC in [RFC3805]<br><br>output-page-delivery = "pagedelivery" "=" 1*ALPHA<br>
    ; enumerated value as an alpha string (e.g., 'faceUp') of<br>    ; prtOutputPageDeliveryOrientation in [RFC3805] mapped indirectly<br>    ; from the *label* in PrtOutputPageDeliveryOrientationTC in<br>    ; [RFC3805]<br>
<br>output-offset-stacking = "offsetstacking" "=" 1*ALPHA<br>    ; enumerated value as an alpha string (e.g., 'notPresent') of<br>    ; prtOutputOffsetStacking in [RFC3805] mapped indirectly from<br>
    ; the *label* in PresentOnOff in [RFC3805]<br><br>------------------------------------------------------------------------<br><br>
<div style="visibility: hidden; left: -5000px;" id="avg_ls_inline_popup"></div>
</blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><div>__________________________________________________</div><div>Michael Sweet, Senior Printing System Engineer, PWG Chair<br></div></span>
</div>
<br><br />-- 
<br />This message has been scanned for viruses and
<br />dangerous content by
<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, and is
<br />believed to be clean.
</body></html>