云打印接入协议1.2
云打印接入协议主要描述了云打印场景下设备设备与云打印应用如何通过数据交互实现设备信息上报、打印任务下发执行等云打印关键业务。
时间
版本
修订人
修订说明
2020-07-11
1.0
徐超国
整理并发布打印接入协议初版
2020-08-20
胡金喜
新增
1、云扫描功能
2、证件扫描功能
3、固件升级功能
4、增加接入指南
修改:
1、 优化协议描述
2021-06-02
1.2
胡金喜
新增
1、云清洁功能
2、打印校准功能
修改:
1、针对业务错误码进行了优化,分为设备故障错误码以及业务异常错误码,错误信息分为:error_code为错误标识,error_msg为错误描述,提示给用户,error_cause为错误原因,方便调查解决问题。
涉及指令/功能:设备信息上报指令、云打印、云扫描功能、证件扫描功能、固件升级功能
2、云打印功能新增打印状态:排队等待、暂停
3、设备信息上报:修改了墨盒/硒鼓的状态描述
删除:
1、设备错误信息上报指令,应用已不再处理此指令
云打印设备接入指南
连接平台接入介绍
设备接入平台有详细介绍,请仔细阅读得力E+开放文档中心.
特别注意
设备接入协议详细介绍请查看设备标准接入,需要申请产品型号以及产品密钥,接入平台鉴权使用.
设备配网详情介绍请查看APP设备标准交互协议。设备常用配网方式是wifi配网,查看设备http配网。
平台指令接入介绍
平台是设备与应用的通讯桥梁,设备与应用所有交互通讯通过平台中转完成,下面表格只介绍跟云打印相关的指令,更多平台指令介绍详情请阅读平台标准指令集)。
指令
接入说明
其他说明
必须接入
e+设备信息来源。
影响功能:固件升级、设备状态显示。
必须接入
获取设备信息、绑定应用、绑定组织,是否有新固件等信息。
配合平台指令-203、平台指令-204使用,
云打印很多功能需要设备被绑定才能使用,建议连接平台时以及定时发送102指令进行信息同步。
可接入
固件升级功能,产品需求决定是否接入
可接入
设备主动解绑功能,产品需求决定是否接入
可接入
设备告警用,当设备出现未知异常时上报触发警报
必须接入
设备被绑定组织时通知设备
必须接入
设备被绑定应用时通知设备
可接入
手动固件升级功能,产品需求决定是否接入
必须接入
设备发送业务指令
必须接入
设备接收业务指令。
注意如果收到不支持的指令,必须响应cmd_not_support
应用指令接入介绍
指令
接入说明
其他说明
必须接入
应用获取设备信息来源
必须接入
基础打印功能。
要求设备绑定组织
可接入
云扫描功能,产品需求决定是否接入。
要求设备绑定组织
可接入
证件扫描功能,产品需求决定是否接入。
要求设备绑定组织
可接入
手动固件升级功能,产品需求决定是否接入。
要求设备绑定组织
可接入
云清洁功能,产品需求决定是否接入。
要求设备绑定组织
可接入
打印校准功能,产品需求决定是否接入。
要求设备绑定组织
设备信息同步
设备信息上报
设备主动上报设备当前信息,以便云打印应用掌握设备最新信息,包含:网络信息、固件版本、墨盒信息、设备故障状态信息等。
以下情况设备都应主动使用本指令向应用上报设备最新信息:
重新接入平台
设备信息发生变化(网络信息、墨量信息、固件版本、设备状态(故障,繁忙,就绪)等)
设备绑定新应用
请求示例:
{
"mid": "123456",
"from": "M2500ADNW_12345678",
"to": "511542236802977792",
"time": 1502867086,
"action": 300,
"data": {
"cmd": "printer_push_report_info",
"payload": {
"printer_name": "Deli P2500DW-3a2f",
"work_status": "error",
"firmware_version": "HD_2.00.014",
"error_code": "4611",
"error_msg": "设备故障,重启/联系客服",
"error_time": "1503025335",
"mac_address": "EC:F0:0E:84:36:FE",
"ssid": "DELI",
"network_mode": "WLAN",
"printer_ip": "172.193.12.11",
"total_page_count": "10",
"total_paper_count": "7",
"error_paper_count": "0",
"inkboxs": [{
"inkbox_sn": "123123",
"inkbox_status": "0",
"inkbox_type":"K",
"inkbox_status_des": "正常",
"inkbox_colors": [{
"color": "black",
"toner_total_count":"10000",
"toner_remain_count":"9000",
"toner_remain": "90"
}]
}]
}
}
}
其中cmd固定为printer_push_report_info表示设备信息上报,请求payload各参数说明如下:
参数
类型
是否必填
说明
printer_name
字符串
Y
设备当前名称,没有则传设备编号
work_status
字符串
Y
设备状态:idle-就绪,busy-繁忙,error-故障
firmware_version
字符串
Y
设备当前固件版本
error_code
字符串
N
设备故障错误码,错误码请参照设备故障错误码
error_msg
字符串
N
设备故障错误描述
error_time
字符串
N
故障发生时间,精确到秒,如果没有故障 默认为0
network_mode
字符串
Y
设备当前连接网络模式:
WLAN-无线,MOBILE-移动网络,LAN-有线,BLUETOOTH-蓝牙
ssid
字符串
N
如果WLAN连接,WIFI的ssid
printer_ip
字符串
N
ip地址
mac_address
字符串
N
mac地址
total_page_count
字符串
Y
设备总打印面数,累计
total_paper_count
字符串
Y
打印纸张数,累计
error_paper_count
字符串
Y
打印错误纸张数:卡纸等。累计
inkboxs
inkbox列表
Y
inkbox是墨盒对象(碳粉盒 or 墨水盒)
表示一个更换的整体
inkbox墨盒/硒鼓对象参数说明如下
参数
类型
是否必填
说明
inkbox_sn
字符串
N
设备当前名称,没有则传设备编号
inkbox_type
字符串
N
新增字段,墨盒类型:
“CMYK”- 黑白彩色一体,"K"-黑色,"CMY"-彩色,“C”-青色,“M”-品红,”Y“-黄色
inkbox_status
字符串
Y
墨盒/硒鼓状态:
0-正常,
-1 墨盒墨量低,
-2-墨盒未安装
-99其他故障错误
inkbox_status_des
字符串
Y
状态描述,当状态为-99时,返回具体故障的描述。
inkbox_colors
inkbox_color列表
Y
inkbox_color 墨盒/硒鼓颜料的信息列表
一个墨盒/硒鼓表示一个单独更换的整体,常见的墨盒/硒鼓类型有4种
黑白彩色一体墨盒/硒鼓,数量1个,类型为:"CMYK"。
黑白+彩色墨盒/硒鼓,数量2个墨盒,类型分别为:“K”、"CMY"。
四单色墨盒/硒鼓,数量4个墨盒,类型分别为:“K”、"C"、"M"、"Y"。
黑白单色墨盒/硒鼓,数量1个,类型为:"K"
inkbox_color颜料对象参数说明如下
参数
类型
是否必填
说明
color
字符串
Y
cmyk颜色值:cyan-青色,magenta-品红,yellow-黄色,black-黑色
toner_total_count
整数
N
新增字段,碳粉(墨水)当前剩余总量,墨量精确计量单位
toner_remain_count
整数
N
新增字段,碳粉(墨水)当前剩余量,墨量精确计量单位
toner_remain
浮点型
Y
碳粉(墨水)剩余百分比,90.00代表90.00%,可精确2位小数。
响应示例:
{
"mid": "123456",
"from": "511542236802977792",
"to": "M2500ADNW_12345678",
"time": 1584103546,
"action": 301,
"data": {
"cmd": "printer_push_report_info"
}
}
设备信息查询
应用可通过本指令主动向设备设备获取设备最新信息,设备收到查询请求后,通过应用指令-设备信息上报指令上报最新的设备信息。
请求示例:
{
"mid": "123456",
"from": "511542236802977792",
"to": "M2500ADNW_12345678",
"time": 1584103546,
"action": 301,
"data": {
"cmd": "server_push_report_info"
}
}
其中cmd固定为server_push_report_info表示设备信息查询,无payload信息。
响应示例:
{
"mid": "123456",
"from": "M2500ADNW_12345678",
"to": "511542236802977792",
"time": 1555307488,
"action": 300,
"data": {
"cmd": "server_push_report_info"
}
}
云打印
功能流程图:participant 用户 as user
participant 应用 as app
participant 设备 as device
user->app: 1、选择文件打印
app->app: 2、打印报文转换
app->device: 3、发送[打印任务通知]指令
device->app: 4、发送[打印任务执行]指令
app--device: 5、返回执行任务详情
Note left of device: 如果设备繁忙或者故障不能执行任务
device--app: 返回任务打印结果:排队等待中
device--device: 6、开始打印
device->app: 7、返回任务进度:打印中
device--device: 8、打印完成一页
device->app: 9、返回任务进度:打印中,已打印页数
Note left of device: 如果设备出现故障打印被暂停
device--app: 返回任务状态:打印暂停
Note left of device: 解决故障,恢复打印
device--app: 返回任务状态:打印中
Note left of device: 如果打印取消
device--app: 返回任务打印结果:打印取消
Note left of device: 如果打印失败
device--app: 返回任务打印结果:打印失败
device--device: 10、打印完成。
device->app: 11、返回任务打印结果:打印完成
app->user: 12、给用户返回打印结果
流程说明:
打印取消:用户可以在设备上取消打印,也可以通过app发送应用指令-取消打印任务来取消打印
打印任务通知
当设备有新的打印任务时,云打印应用服务会通过本指令向设备下发任务通知。
请求示例:{
"mid": "123456",
"from": "511542236802977792",
"to": "M2500ADNW_12345678",
"time": 1584091074,
"action": 301,
"data": {
"cmd": "server_push_task_add",
"payload": {
"task_type": "print"
}
}
}
其中cmd固定为server_push_task_add表示打印任务通知,请求payload各参数说明如下:
参数
类型
是否必填
说明
task_type
字符串
Y
任务类型:print-打印任务
响应示例:
{
"mid": "123456",
"from": "M2500ADNW_12345678",
"to": "511542236802977792",
"action"