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 僅允許 true 或 **false**。
  • 按鍵 "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"]
}
}