一种打印数据的发送方法和装置制造方法及图纸

技术编号:17704498 阅读:57 留言:0更新日期:2018-04-14 17:36
本发明专利技术实施例涉及计算机技术领域,公开了一种打印数据发送方法和装置,方法包括:应用程序在Linux系统的用户空间向内核空间传递消息;内核根据该消息调用存储于内核空间的打印数据发送驱动程序;打印数据发送驱动程序根据该消息将用户空间的打印数据发送至物理接口,通过上述技术方案,本发明专利技术实施例通过一条消息,可以实现发送成块的打印数据,极大地提高了打印数据的发送效率,并且不额外需要物理芯片,降低了研发成本,缩短了开发周期。

【技术实现步骤摘要】
一种打印数据的发送方法和装置
本专利技术实施例涉及计算机
,尤其涉及一种打印数据的发送方法和装置。
技术介绍
在目前的工业设备中,已大量采用嵌入式Linux作为单板软件的实时多任务操作系统,嵌入式Linux作为单板软件的操作系统具有成本低、运行稳定、代码开源、开发周期短、易于维护等诸多优点。如图1所示,Linux系统的结构采用内核空间110和用户空间120相结合的概念和相应架构,能够很好地保护内核自身不受用户空间程序缺陷的影响,从而内核可以稳定可靠地运行。实现本专利技术过程中,专利技术人发现相关技术中至少存在如下问题:现有技术中,将发送打印数据的物理接口的驱动程序,定义成基于socket的发送机制,通过socket函数发送大块打印数据,通过socket的机制封装的传输层,相应必定有一个较高速的物理层,例如以太网总线接口、SPI(SerialPeripheralInterface,串行外设接口)高速数据线接口等,作为socket的物理依托,socket又称套接字,是对基于以太网总线或SPI等物理介质上数据收发的传输层提供一种封装。物理接口在硬件设计上就要耗费一定的芯片,增加研发成本。在Linux中,编写基于socket的内核驱动比较复杂,开发周期长,通过socket函数发送大块打印数据,数据传输效率低。
技术实现思路
本专利技术实施例提供一种打印数据发送方法和装置,能够解决现有技术中,打印数据发送效率低,研发成本高,开发周期长的技术问题。为了解决上述技术问题,本专利技术实施例公开了如下技术方案:第一方面,本专利技术实施例提供了一种打印数据发送方法,包括:应用程序在Linux系统的用户空间向内核空间传递消息;内核根据所述消息调用存储于内核空间的打印数据发送驱动程序;所述打印数据发送驱动程序根据所述消息将用户空间的打印数据发送至物理接口。第二方面,本专利技术实施例提供了一种打印数据发送装置,包括:消息接收单元,用于接收来自Linux系统用户空间的消息;控制单元,用于根据所述消息调用存储于内核空间的打印数据发送驱动程序;数据发送单元,用于根据所述打印数据发送驱动程序,将用户空间的打印数据发送至物理接口。第三方面,本专利技术实施例还提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如上所述的打印数据发送方法。第四方面,本专利技术实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行如上所述的打印数据发送方法。本专利技术实施例的有益效果是:区别于现有技术的情况,本专利技术实施例提供的打印数据发送方法通过一条消息,可以实现发送成块的打印数据,极大地提高了打印数据的发送效率。另外,本专利技术实施例的打印数据发送方法,只需开发一个负责打印数据发送的Linux内核模块,不额外需要物理芯片,降低了研发成本,缩短了开发周期。附图说明一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是现有技术中Linux系统的结构划分示意图;图2是本专利技术实施例提供的一种打印数据发送方法的应用实例流程示意图;图3是本专利技术实施例提供的一种打印数据发送装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。此外,下面所描述的本专利技术各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。Linux系统由于内核空间和用户空间的划分与隔离,当用户空间的程序或进程需要与内核空间的变量或存储区交互信息时,Linux巧妙地引入了消息机制,即用户空间的应用程序向内核发送消息(消息包含一个命令字和相关的参数)触发内核的相应处理。内核接收到该消息后,根据命令字的类型而做出相应的处理。通过这种机制,用户空间的程序相当于把自己欲在用户空间内要做的事情或在用户空间没有权限去做的事情,转嫁给内核空间的程序或模块去完成。如图2所示,本专利技术实施例提供一种基于Linux内核消息处理的打印数据发送方法,具体步骤可以如下:201、应用程序在Linux系统的用户空间向内核空间传递消息;可选地,在用户空间,应用程序通过调用Linux系统的ioctl函数向内核传递消息。ioctl函数包括参数1,参数2和参数3,其中,参数1为对应的内核空间的打印数据发送驱动程序的句柄。参数2为32位宽度的整数,它携带着消息的命令字及打印数据块的长度信息。参数3为打印数据块所在的用户空间的缓冲区地址信息。上述消息的全部信息通过参数2和参数3携带,包含了消息的命令字、打印数据块长度、打印数据块缓冲区地址信息。202、内核根据上述消息调用存储于内核空间的打印数据发送驱动程序;比如,根据ioctl函数的参数1所携带的打印数据发送驱动程序的句柄,调用内核空间的打印数据发送驱动程序。可选地,打印数据发送驱动程序以字符类设备的方式存储于内核空间中。203、打印数据发送驱动程序根据上述消息将用户空间的打印数据发送至物理接口,实现打印数据的发送。可选地,打印数据发送驱动程序将消息解析出命令字、打印数据块长度信息、打印数据块地址信息,然后在C语言的for循环语句内,先从打印数据块的缓冲区内每次读出16bit(2个字节),然后将16bit(2个字节)的打印数据通过I/O口发送出去,直到消息规定的打印数据长度全部发送完毕。然后接收下一条消息,从新的缓冲区地址重复上述的发送过程,以实现打印数据的成块发送。其中,打印数据发送的物理接口可以是ARM(AdvancedRISCMachin,高级精简指令集计算机)的GPIO(General-PurposeInput/Output,通用I/O端口)管脚。由上可知,本专利技术实施例的打印数据发送方法,通过一条消息,可以实现发送成块的打印数据,极大地提高了打印数据的发送效率。另外,本专利技术实施例的打印数据发送方法,只需开发一个负责打印数据发送的Linux内核模块,打印数据发送出去的物理接口可以是ARM的GPIO管脚,不额外需要物理芯片,降低了研发成本,缩短了开发周期。为了更好地实施以上方法,本专利技术实施例还提供一种基于Linux内核消息处理的打印数据发送装置300,如图3所示,打印数据发送装置包括消息接收单元301、控制单元302和数据发送单元303,具体如下:消息接收单元301,用于接收来自Linux系统用户空间的消息;可选地,在用户空间,应用程序通过调用Linux系统的ioctl函数向内核空间的消息接收单元301传递消息。ioctl函数包括参数1,参数2和参数3,其中,参数1为对应的内核空间的打印数据发送驱动程序的句柄。参数2为32位宽度的整数,它携带着消息的命令字及打印数据块的长度信息。参数3为打印数据块所在本文档来自技高网...
一种打印数据的发送方法和装置

【技术保护点】
一种打印数据的发送方法,其特征在于,包括:应用程序在Linux系统的用户空间向内核空间传递消息;内核根据所述消息调用存储于内核空间的打印数据发送驱动程序;所述打印数据发送驱动程序根据所述消息将用户空间的打印数据发送至物理接口。

【技术特征摘要】
1.一种打印数据的发送方法,其特征在于,包括:应用程序在Linux系统的用户空间向内核空间传递消息;内核根据所述消息调用存储于内核空间的打印数据发送驱动程序;所述打印数据发送驱动程序根据所述消息将用户空间的打印数据发送至物理接口。2.根据权利要求1所述的方法,其特征在于,所述消息包括消息的命令字、数据块长度信息和用户空间的打印数据缓冲区地址信息,所述打印数据发送驱动程序根据所述命令字、所述数据块长度信息和所述用户空间的打印数据缓冲区地址信息将所述打印数据发送至物理接口。3.根据权利要求2所述的方法,其特征在于,所述应用程序通过调用Linux系统的ioctl函数向所述内核传递消息,所述ioctl函数包括参数1、参数2和参数3,其中所述参数1为所述打印数据发送驱动程序的句柄;所述参数2携带着所述消息的命令字及数据块的长度信息;所述参数3携带着用户空间的打印数据缓冲区地址信息。4.根据权利要求1所述的方法,其特征在于,所述打印数据发送驱动程序以字符类设备的方式存储于所述内核空间中。5.根据权利要求1所述的方法,其特征在于,所述物理接口是ARM的GPIO管脚。6.一种打...

【专利技术属性】
技术研发人员:瞿浩正
申请(专利权)人:深圳华云科技实业有限公司
类型:发明
国别省市:广东,44

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

1