一种基于逻辑表驱动法的打印机指令控制算法制造技术

技术编号:39714653 阅读:10 留言:0更新日期:2023-12-17 23:22
本发明专利技术公开了一种基于逻辑表驱动法的打印机指令控制算法,通过建立一级表格和二级表格将所有的指令囊括其中,解包分析打印机接收的上位机发送的指令数据,判断解包分析出的首字节是否存在在一级表格中,第二字节是否存在二级表格中的方式,根据指令类别调用相应的功能函数,实现打印机指令控制

【技术实现步骤摘要】
一种基于逻辑表驱动法的打印机指令控制算法


[0001]本专利技术涉及打印机指令控制
,尤其涉及一种基于逻辑表驱动法的打印机指令控制算法


技术介绍

[0002]世面上常见的大部分票据打印机都是使用
ESC/POS
指令,
ESC/POS
指令是
EPSON
公司自己制定的针式打印机的标准化指令集,现在已成为票据打印机控制语言事实上的工业标准


ESC
指令功能繁杂,指令有上百条,使用普通的逻辑判断语句
(if

else

switch

case)
需要编写的代码量很大,开发难度高,很容易产生冗余代码,后期增加功能需要动到整个代码架构,无形中增加了出错的可能性


技术实现思路

[0003]本专利技术的目的在于提供一种基于逻辑表驱动法的打印机指令控制算法,从而解决现有技术中存在的前述问题

[0004]为了实现上述目的,本专利技术采用的技术方案如下:
[0005]一种基于逻辑表驱动法的打印机指令控制算法,包括如下步骤,
[0006]S1、
新建两级驱动表,表中每个参数对应到相应的功能函数;
[0007]S2、
打印机创建用于循环解析指令的线程;
[0008]S3、
判断打印机是否从上位机接收到指令数据,若是,则进入
S4
;否则继续等待直至接收到指令数据;
[0009]S4、
打印机对接收到的指令数据进行解包分析;
[0010]S5、
判断解包分析出的首字节在一级表格中是否存在,若是,则进入
S6
,否则返回
S3

[0011]S6、
判断解包分析出的第二字节在二级表格中是否存在,若是,则查表并调用对应的功能函数,并返回
S3
;否则直接返回
S3。
[0012]优选的,一级表格中存放各个指令大类,二级表格中存放每个指令大类中包含的功能函数

[0013]优选的,步骤
S4

S5
之间还包括,判断解包分析出的首字节是否小于
0x20
,若是,则进入
S5
,否则,表示指令数据为可打印字符,打印机启动打印

[0014]优选的,步骤
S5
中,若解包分析出的首字节在一级表格中存在,则表示指令数据为不可执行指令,返回步骤
S3
;否则表示指令数据为可执行指令,则根据可执行指令的类别执行步骤
S6
,调用相应的功能函数

[0015]优选的,当可执行指令为
LF
指令,则打印机执行换行指令;
[0016]当可执行指令为
ESC
指令,则判断解包分析出的第二字节在二级表格中是否存在,若是,则调用对应的
ESC
功能,否则返回
S3

[0017]当可执行指令为
FS
指令,则判断解包分析出的第二字节在二级表格中是否存在,
若是,则调用对应的
FS
功能,否则返回
S3

[0018]当可执行指令为
GS
指令,则判断解包分析出的第二字节在二级表格中是否存在,若是,则调用对应的
GS
功能,否则返回
S3

[0019]当可执行指令为
DLE
指令,则判断解包分析出的第二字节在二级表格中是否存在,若是,则调用对应的
DLE
功能,否则返回
S3。
[0020]优选的,上位机和打印机规定传输帧格式,双方数据收发按照此格式进行;上位机按照传输帧格式进行组包,将指令数据通过有线或无线的方式传输到打印机,打印机接收到指令数据后进行校验并解包

[0021]优选的,所述传输帧包括,起始字符

帧序号

数据域长度

状态码

数据长度

数据内容
、CRC
校验

[0022]优选的,步骤
S4
具体包括如下内容,
[0023]S41、
指令数据接收完成后判断起始字节是否正确,若是,则进入
S42
;否则返回
S3

[0024]S42、
对整包指令数据进行
CRC
校验,确定
CRC
校验结果是否正确,若是,则进入
S43
;否则,返回
S3

[0025]S44、
判断帧序号是否加1,若是,则进入
S45
;否则返回
S3

[0026]S45、
按照数据长度读出数据内容并执行,同时将打印机状态写入状态码;
[0027]S46、
数据组包,帧序号保持相同,给上位机发送回去,并返回
S3。
[0028]本专利技术的有益效果是:
1、
在卡片式或内存受限的系统中,使用本专利技术算法可以帮助缩小程序代码的尺寸并优化系统性能

此外,还可以减少代码的错误率,提高软件质量
。2、
使用本专利技术方法处理指令集,可以更容易地维护和修改代码

这种方法可以帮助开发人员更轻松地添加新功能或修改现有功能

附图说明
[0029]图1是本专利技术实施例中算法的流程示意图;
[0030]图2是本专利技术实施例中算法各种可执行指令的判断执行过程示意图;
[0031]图3是本专利技术实施例中解包分析的流程示意图

具体实施方式
[0032]为了使本专利技术的目的

技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明

应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不用于限定本专利技术

[0033]如图1所示,本实施例中,提供了一种基于逻辑表驱动法的打印机指令控制算法,包括如下步骤,
[0034]S1、
新建两级驱动表,表中每个参数对应到相应的功能函数;
[0035]S2、
打印机创建解析指令的线程,并循环解析指令;
[0036]S3、
判断打印机是否从上位机接收到指令数据,若是,则进入
S4
;否则继续判断;
[0037]S4、
打印机对接收到的指令数据进行解包分析;
[0038]S5、
判断解包分析出的首字节在一级表格中是否存在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于逻辑表驱动法的打印机指令控制算法,其特征在于:包括如下步骤,
S1、
新建两级驱动表,表中每个参数对应到相应的功能函数;
S2、
打印机创建用于循环解析指令的线程;
S3、
判断打印机是否从上位机接收到指令数据,若是,则进入
S4
;否则继续等待直至接收到指令数据;
S4、
打印机对接收到的指令数据进行解包分析;
S5、
判断解包分析出的首字节在一级表格中是否存在,若是,则进入
S6
,否则返回
S3

S6、
判断解包分析出的第二字节在二级表格中是否存在,若是,则查表并调用对应的功能函数,并返回
S3
;否则直接返回
S3。2.
根据权利要求1所述的基于逻辑表驱动法的打印机指令控制算法,其特征在于:一级表格中存放各个指令大类,二级表格中存放每个指令大类中包含的功能函数
。3.
根据权利要求1所述的基于逻辑表驱动法的打印机指令控制算法,其特征在于:步骤
S4

S5
之间还包括,判断解包分析出的首字节是否小于
0x20
,若是,则进入
S5
,否则,表示指令数据为可打印字符,打印机启动打印
。4.
根据权利要求1所述的基于逻辑表驱动法的打印机指令控制算法,其特征在于:步骤
S5
中,若解包分析出的首字节在一级表格中存在,则表示指令数据为不可执行指令,返回步骤
S3
;否则表示指令数据为可执行指令,则根据可执行指令的类别执行步骤
S6
,调用相应的功能函数
。5.
根据权利要求4所述的基于逻辑表驱动法的打印机指令控制算法,其特征在于:当可执行指令为
LF
指令,则打印机执行换行指令;当可执行指令为
ESC
指令,则判断解包分析出的第二字节在二级表格中是否存在,若是,则调用对应的
ESC
功能,否则返回
S3
;当可执行指令为
F...

【专利技术属性】
技术研发人员:葛永江
申请(专利权)人:艾体威尔电子技术北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1