UniPRT 軟體開發套件 v1.0.0.0-pyd (Python)
 
載入中...
搜尋中...
無符合項目
與印表機的 JSON 數據交換

以下部分描述了 JSON(JavaScript 物件表示法)數據交換語法,用於讀取/寫入印表機設置。

注意 SettingsReadWrite 類提供了讀取/寫入設置的支持,並使用下面定義的 JSON 命令結構與印表機進行通信。這些資訊是為了那些希望使用印表機支持的 JSON 接口直接與印表機通信的人提供的。

管理埠的一般 JSON 命令語法

以下是向印表機發送 JSON 命令的一般語法。

請注意, To and From 鍵是可選的,如果應用程序不需要這些參數,可以省略。這些參數會被交換並從印表機回顯回來。

印表機會以回顯的 TrackNo 回應命令,這可以由調用者/發送者用來選擇適當的印表機回應,以處理多個命令發送到印表機的情況。如果印表機回傳了數據,則這些數據是 Content 字段的一部分。

完整命令:

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

最小命令,不包含 ToFrom 可選鍵:

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

支持的 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" - 十進制值, "Enum" - 列舉值, "Bool" - 布林值, "Exe" - 可執行
      "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 - 讀取多個鍵的屬性

以下顯示如何讀取多個「分支」項目(「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"]
}
}