UniPRT SDK v1.0.0.0
 
载入中...
搜索中...
未找到
JsonCmdInterface

与印表机进行 JSON 数据交换

以下部分描述了用于读取/写入印表机设置的 JSON(JavaScript 对象表示法)数据交换语法。

请注意,SettingsReadWrite 类提供了对设置的读取/写入支持,并使用下面定义的 JSON 命令结构与印表机通信。这是为了给那些希望使用印表机支持的 JSON 接口直接与印表机通信的人提供资讯。

通用 JSON 命令语法 - 管理端口

以下是向印表机发送 JSON 命令的通用语法。

请注意, ToFrom 键是可选的,如果应用程序不需要它们,可以省略。这些参数只是从印表机端交换并回显。

印表机通过回显发送的 TrackNo 来响应命令,调用者/发送者可以使用它来选择从印表机接收的适当响应,尤其是在向印表机发送多个命令的情况下。如果印表机发送回数据,它将包含在 Content 字段中。

完整命令格式:

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

最小命令格式:无 ToFrom 可选键。

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

通用 JSON 命令语法 - 数据端口

在使用数据端口时,为了区分 JSON 命令和打印数据,以下语法显示了 JSON 命令被 前缀后缀 包裹的情况。请注意,这仅适用于通过与打印数据相同的端口发送 JSON 命令的情况。

通过数据端口发送的命令必须由如下所示的前缀和后缀进行框架。

!PTR_SETUP
UPMC
<JSON_Command>
PTR_END

例如 - 读取 "KeyToRead"

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

支持的 JSON 命令

以下是发送到印表机的 "Command" 键支持的值。

  • "Cfg.Item" 读取/写入键及对应的值
    • 使用 null 作为值读取键项
      • 读取单个键。
        ("Content":)
        { "MyKeyOfInterest" : null }
      • 读取多个键。
        ("Content":)
        { "MyKey1" : null, "MyKey2" : null, .., "MyKeyN" : null }
      • 请注意,如果使用分支名称,则可以读取多个键。
        例如,使用 "branchX.subBranch" 作为键将返回键 "item1" 和 "item2",如果 branchX.subBranch.item1 和 branchX.subBranch.item2 存在的话。
        ("Content":):
        { "branchX.subBranch" : null }
    • 通过使用与特定键关联的任何支持值来写入键。
      ("Content":):
      {"DecimalKey" : 3.5}
  • "Cfg.Prop" 读取与键或分支关联的属性
    • 属性:
      属性 描述
      "Type" "Dec" - Decimal, "Enum" - Enumeration, "Bool" - Boolean, "Exe" - Executable
      "Perm" 权限: 读取 (R), 写入 (W), 执行 (X)
      "Value" 当前与键关联的值
      "Min" 最小值
      "Max" 最大值
      "Inc" 增量
      "Options" 允许的值。注意对于 Bool 仅允许 truefalse
    • 按键 "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

支持的 JSON 键

支持的键及对应的值:

示例

示例 1 - 读取 "Image.Width-in" 键

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

示例 2 - 写入 "Image.Width-in" 键

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

示例 3 - 读取多个键的属性

下面展示了如何读取多个 "branch" 项 ("Speed" 和 "ODV.Symbol"),以读取与每个分支相关的所有键以及单个项 "Label.Sensor"。

发送给印表机的命令:

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

印表机回传:

{
"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"]
}
}