打印机MQTT上层通讯协议V1.3
版本 |
修改日期 |
修改人 |
修改内容 |
1.1 |
2017-06-22 |
许森煌 |
1. 增加设置心跳控制 2. 增加打印机心跳包返回 NOTE: 本次修改内容使用蓝色字区分 |
2017-06-24 |
许森煌 |
1. 修改 重启打印机指令 NOTE: 本次修改内容使用绿色字区分 |
|
1.2 |
2017-07-15 |
许森煌 |
1. 更改发布的单据主题和心跳主题可分开 2. 修改发布的消息格式 NOTE: 本次修改内容使用红色字区分 |
1.3 |
2017-07-25 |
显示 |
1. 增加超时时间戳 NOTE: 本次修改内容使用淡蓝色字区分 |
一、数据格式
1) 打印机默认订阅的主题 “Prn” + CPUUID,可扫描自测页二维码获得,可设置为用MAC生成
例如 “Prn60A44CAB3AA72020170420170648017920201704201706480179”
2) 打印机默认PUBLISH的心跳主题为订阅的主题”_ST”,单据主题为订阅的主题”_ST”
例如 “Prn60A44CAB3AA72020170420170648017920201704201706480179_ST”
3) 打印机默认PUBLISH的消息会带上打印机的唯一信息表示当前打印机,默认与订阅主题相同,并用’[‘ ’]’ 包含,此信息可更改为由MAC生成,或不携带,以下使用“唯一信息”表示该字段
例如 “[Prn60A44CAB3AA72020170420170648017920201704201706480179]”
4) PUBLISH 给打印机的数据包格式
1. 1字节的标记头(Flag),如果此标记的高4位不为0则为直接打印数据,不包含单据号
位 |
值(HEX) |
信息 |
0 |
0x01 |
需PUBLIC打印成功状态至指定主题 |
1 |
0x02 |
携带有单据号 |
2 |
0x04 |
携带设置参数 |
3 |
0x08 |
携带超时时间戳 |
4 |
0x10 |
固定为0 |
5 |
0x20 |
固定为0 |
6 |
0x40 |
固定为0 |
7 |
0x80 |
固定为0 |
2. 指定的主题(0-64 bytes),以HEX 00结尾,如果此处长度为0,则为默认主题
3. 单据号(0-64 bytes),以HEX 00结尾
4. 打印内容(0-16000bytes)
NOTE:总长度不能超过16384-6 = 16378 bytes
NOTE: 如果携带设置参数位置1,则对应的单据内容不会当做打印任务处理,单据内容为设置内容,必须小于4K bytes,同时可以携带单据号来侦测该设置是否成功处理(设置成功与否会在单据号尾部提示OK或ERROR)。
NOTE: 如果携带超时时间戳,打印时会比较当前时间与超时时间,如果当前时间大于超时时间,该单据内容会被丢弃,同时会PUBLISH一条单据超时信息(注意:单据收到应答包不受超时影响,依旧会发出)。时间戳存于打印内容首部,并以0x06包裹,(注意:这里如果格式错误将不会返回超时包,而是直接打印,不管是否超时)详见测试例子D.
设置指令见第五、设置指令
测试例子 (数据格式以HEX显示,请注意):
A. 发给打印机一条打印任务,任务ID为”SimplePrint”,打印内容为”Hello, World!” 则发送数据如下(HEX):
03 00 53 69 6D 70 6C 65 50 72 69 6E 74 00 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 0D 0A