以下部分描述了 JSON(JavaScript 对象表示法)数据交换语法,用于读取/写入印表机设置。
注意 SettingsReadWrite 类提供了读取/写入设置的支持,并使用下面定义的 JSON 命令结构与印表机进行通信。这些资讯是为了那些希望使用印表机支持的 JSON 接口直接与印表机通信的人提供的。
管理端口的一般 JSON 命令语法
以下是向印表机发送 JSON 命令的一般语法。
请注意, To and From 键是可选的,如果应用程序不需要这些参数,可以省略。这些参数将被交换并从打印机返回。
印表機會使用相同TrackNo回應命令,呼叫者/發送者可以使用此編號選擇對應的回應,特別是當多個命令發送給印表機時。如果印表機回傳數據,數據會包含在Content欄位中。
完整命令:
{ "Command": <command>,
"From": <optional>,
"To": <optional>,
"TrackNo": <AnyTrackingString>,
"Content": { <content> }
}
最小命令,不包含 To 或 From 可选键:
{ "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":):
- "Cfg.Prop" 读取与键或分支相关联的属性
- 属性:
属性 | 说明 |
"Type" | "Dec" - 十进制值, "Enum" - 列举值, "Bool" - 布尔值, "Exe" - 可执行 |
"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 - 读取多个键的属性
以下显示如何读取多个「分支」项目(「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"]
}
}