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

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

Ira McDonald blueroofmusic at gmail.com
Sun Nov 6 22:31:23 UTC 2011


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?

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]

------------------------------------------------------------------------

-- 
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/20111106/ae5f9267/attachment-0001.html>


More information about the ipp mailing list