UniPRT SDK v1.0.0.0
 
Loading...
Searching...
No Matches
JsonCmdInterface

JSON data-interchange with printer

The following sections describe the JSON (JavaScript Object Notation) data-interchange syntax to read/write printer settings.

Note that the SettingsReadWrite class provides support to read/write settings and uses the JSON command structure defined below to communicate with printer. This is provided as information for anyone that would like to communicate directly with the printer using the JSON interface supported by the printer.

General JSON Command Syntax - Management Port

The following is the general syntax for JSON commands to printer.

Note that the To and From keys are optional and can be left out if the application does not require it. These parameters simply get swapped and echoed back from the printer.

The printer responds to a command with an echoed TrackNo that was sent that can be used by the caller/sender to select the appropriate response from the printer for cases where multiple commands are sent to printer. If data is sent back by printer, it is part of the Content field.

Full command.

{ "Command": <command>,
"From": <optional>,
"To": <optional>,
"TrackNo": <AnyTrackingString>,
"Content": { <content> }
}

Minimum command. No To or From optional keys.

{ "Command": <command>,
"TrackNo": <AnyTrackingString>,
"Content": { <content> }
}

General JSON Command Syntax - Data Port

In order to differentiate JSON commands from print data when using the data port, the following syntax shows JSON command wrapped by a prefix and suffix. Note that this only applies when sending JSON commands through the same port as print data.

Commands sent via data port must be framed by a prefix and suffix as shown below.

!PTR_SETUP
UPMC
<JSON_Command>
PTR_END

For example - Read "KeyToRead"

!PTR_SETUP
UPMC
{ "Command": "Cfg.Item",
"TrackNo": "Ex-WrappedByPrefixAndSuffix",
"Content": {
"KeyToRead" : null
}
}
PTR_END

Supported JSON Commands

The following are supported values for "Command" key sent to printer.

  • "Cfg.Item" read/write key/value pair(s)
    • Read key(s) item by using null as value.
      • Read Single Key.
        ("Content":)
        { "MyKeyOfInterest" : null }
      • Read Multiple Keys.
        ("Content":)
        { "MyKey1" : null, "MyKey2" : null, .., "MyKeyN" : null }
      • Note that multiple keys can be read if a branch name is used.
        e.g. using "branchX.subBranch" as key will return both key "item1" and "item2" if branchX.subBranch.item1 and branchX.subBranch.item2 exists.
        ("Content":):
        { "branchX.subBranch" : null }
    • Write key(s) by using any supported value associated with specific key.
      ("Content":):
      {"DecimalKey" : 3.5}
  • "Cfg.Prop" reads properties associated with key(s) or branch
    • Properties:
      Property Description
      "Type" "Dec" - Decimal, "Enum" - Enumeration, "Bool" - Boolean, "Exe" - Executable
      "Perm" Permision: Read (R), Write (W), Execute (X)
      "Value" The current value associated with key
      "Min" Minimum value
      "Max" Maximum value
      "Inc" Increment
      "Options" The allowed values. Note for Bool only true or false allowed.
    • Properties returned by key "Type":
      "Dec" "Enum" "Bool" "Exe"
      "Type" x x x x
      "Perm" x x x x
      "Value" x x x
      "Min" x
      "Max" x
      "Inc" x
      "Options" x

Supported JSON Keys

Supported key/value pairs:

  • @JsonTableLink{refJsonKeyValues}

Examples

Example 1 - Read "Image.Width-in" key

{ "Command": "Cfg.Item",
"TrackNo": "Ex-1",
"Content": {
"Image.Width-in" : null
}
}

Example 2 - Write "Image.Width-in" key

{ "Command": "Cfg.Item",
"TrackNo": "Ex-2",
"Content": {
"Image.Width-in" : 3.5
}
}

Example 3 - Read Properties for multiple keys

Below shows how to read multiple "branch" items ("Speed" and "ODV.Symbol") in order to read all keys associated with each branch as well as an individual item "Label.Sensor".

Command Sent To Printer:

{ "Command": "Cfg.Prop",
"From": "Originator",
"To": "Receiver101",
"TrackNo": "Ex-3",
"Content": {
"Speed" : null,
"ODV.Symbol" : null,
"Label.Sensor":null
}
}

Printer Response:

{
"Command": "Success",
"From": "P-408106",
"To": "Originator",
"TrackNo": "Ex-3",
"Content": {
"Speed.Print-ips": {
"Type": "Dec",
"Perm": "RW",
"Value": 6,
"Min": 1,
"Max": 8,
"Inc": 1
},
"Speed.Print-mmps": {
"Type": "Enum",
"Perm": "RW",
"Value": "e152.4",
"Options": ["e25.4", "e50.8", "e76.2", "e101.6", "e127.0", "e152.4", "e177.8", "e203.2"]
},
"Speed.Rev-ips": {
"Type": "Dec",
"Perm": "RW",
"Value": 2,
"Min": 1,
"Max": 6,
"Inc": 1
},
"Speed.Rev-mmps": {
"Type": "Enum",
"Perm": "RW",
"Value": "e50.8",
"Options": ["e25.4", "e50.8", "e76.2", "e101.6", "e127.0", "e152.4"]
},
"Speed.Slew-ips": {
"Type": "Dec",
"Perm": "RW",
"Value": 6,
"Min": 1,
"Max": 8,
"Inc": 1
},
"Speed.Slew-mmps": {
"Type": "Enum",
"Perm": "RW",
"Value": "e152.4",
"Options": ["e25.4", "e50.8", "e76.2", "e101.6", "e127.0", "e152.4", "e177.8", "e203.2"]
},
"Speed.SlewControl": {
"Type": "Enum",
"Perm": "RW",
"Value": "eAutomatic",
"Options": ["eAutomatic", "eManual"]
},
"ODV.Symbol.Codabar-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.Code128-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.Code39-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.Code93-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.DataMatrix-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.Graphics-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.Int25-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.Orient": {
"Type": "Enum",
"Perm": "RW",
"Value": "eAll",
"Options": ["eAll", "ePicket", "eLadder"]
},
"ODV.Symbol.PDF417-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.QR-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"ODV.Symbol.UPCEAN-b": {
"Type": "Bool",
"Perm": "RW",
"Value": true
},
"Label.Sensor": {
"Type": "Enum",
"Perm": "RW",
"Value": "eGap",
"Options": ["eDisable", "eMark", "eGap"]
}
}