用于在打印装置中引入运行编程代码的系统和方法

文档序号:6596475阅读:371来源:国知局
专利名称:用于在打印装置中引入运行编程代码的系统和方法
技术领域
一般而言,本发明涉及打印机,具体地是指使用编程代码来增强打印机功能。
背景技术
大多数标记和标签打印机采用传统的预定义的专用控制语言运行。例如,SATO条形码打印机语言(“SBPL”),ZEBRA编程语言(“ZPL”),DATAMAX打印机语言(“DPL”), INTERMEC打印机语言(“IPL”)等所有包括专有功能的语言,这些专有功能要求相当显著的最低技术水平,以便用户能够在打印机的输出功能中实行改变。各种打印机模块(例如, 支持上述所列举的打印机语言的打印机厂商所提供的模块)能执行由预定义的各个命令所限定的打印任务。对打印机功能的特定改变通常通过改变打印机的固件实现。由于每个打印机各自的控制语言是预定义的,所以现有打印机只能执行预定义的任务。在需要增加多种打印机功能的情况下,需要改变打印机的固件。这经常涉及制作复杂的源代码修改以及嵌入式程序开发工具以进行修改。这种方式并不灵活,而且不能由打印机的终端用户用户在本地完成用户用户化。此外,尽管在设计时可以将打印机功能置于程序中,但是不同类型的数据文件或设置能够激活现有的程序化功能,但是不能添加新功能。而且,仅能够为有限数量的情况设计程序化的应用。当添加新功能时,必须替换整个程序且重启打印机。这不仅耗时并且相应的成本高。

发明内容
在现有技术中,没有在不改变打印机固件源代码且不使用昂贵的开发工具的情况下定制或修改标记/标签打印机软件的能力。因此,提供了一种用于修改打印机功能的方法和系统。打印机具有固件以及与该固件连接用于控制打印操作的编程代码。所述编程代码包括至少一个占位符。提供第二编程代码,当在处理器可读介质上执行该代码时,其与第一编程代码连接以提供新的或者不同的打印机功能。执行所述第二编程代码实现所述至少一个占位符的功能。参见附图对本发明的下述描述,本发明的其它特征和优点将变得显而易见。


为了阐述本发明,在附图中示出了当前优选的方式,但是可以理解本发明并不限于所示出的精确的布置和机构。参见附图对本发明的下述描述,本发明的特征和优点将变得显而易见,其中图1示出根据优选实施例的示例性硬件布置;图2示出图1所示的示例性信息处理器的功能元件;图3是示出根据优选实施例的打印机API的方框示意图;图4示出根据优选实施例提供的由标记和标签打印机打印的且使用API限定的示
4例性标记;图5示出分别指示水平和垂直位置的数据区尺寸,并且该尺寸用于定义待提供到标记上的数据区;图6示出根据优选实施例提供的由标记和标签打印机打印的且使用API限定并表示颜色选项的另一示例性标记;以及图7A-图10示出包括多个电子存储格式的优选实施例的实施方式。
具体实施例方式根据本文的教导,提供一个或更多接口使个人能够定制标记和标签打印机设置, 而无需升级、改变或修改与标记和标签打印机具有固件源代码,也无需昂贵的开发工具。因此,为应用开发有效地激活标记和标签打印机,而无需利用其他工具采用打印机专有解释语言来写应用,即开发打印机固件。在优选的实施例中,与标记和标签打印机结合的是解释脚本语言。提供一组格式化为打印机应用程序接口(API)的打印机扩展,以激活为定制和扩展功能与打印机固件的交互作用和对打印机固件的操作。优选地为标记和标签打印机提供API。在优选的实施例中,解释脚本语言为LUA。通过使得打印机固件与例如用脚本语言开发的一组打印机API接口,标记和标签打印机的用户经由标记和标签打印机所使用的用于执行各种任务的软件命令获得了改善的灵活性和可存取性。结合打印机的固件使用API,用户能够开发定制的打印功能,并不再被要求改变标记和标签打印机的固件源代码或获取通常用于改变或修改标记和标签打印机的固件源代码的开发工具。如下所更详细描述的,结合此处的教导所提供的API支持各种功能,例如,接口不同的键盘、显示器,提供打印机绘制的各种字体和格式,存取打印机文件系统,打印机配置和与标记和标签打印机相关的各种其它功能。因此,本发明提供多种打印方案,而无需改变固件源代码或昂贵的嵌入式系统 (例如,用于修改预定义的专用控制和打印机固件的软件开发工具)此外,此处所提供的特征使得用户能够开发用于包括定制功能的打印机功能的编程代码,并能配置为打印机提供经由API的功能的代码。下文中,根据本文的教导,用户开发集成到先前配置的编程代码中的附加编程代码,而无需重配置先前配置的编程代码。这样,可开发用于增强打印机功能的代码,并随后例如被配置到标记和标签打印机中。之后, 用户开发附加附加代码,包括在运行时执行的用于一个或其它打印机功能的编程代码,或者修改先前配置的代码的功能。根据本文的教导,用户只需要将附加代码配置到打印机附力口,同时先前配置的代码还保留在打印机中。通过使得用户只开发和配置提供新的或修改后的功能的代码,节省了大量时间。因此,用户仅需要创建必要的包括附加功能的程序,然后将代码提供给打印机。在优选实施例中,将代码下载到闪存(或其它公知存储器)中,随后由打印机接收。如稍后将详细描述的,先前配置的程序优选地集成新配置的编程代码,并作为单独的、统一的程序运行。将运行时间编程代码引入到打印机(例如,标记和标签打印机)的能力,解决了现有技术中的缺点,包括激活配置改进和新打印机功能到打印机中而无需对打印机中先前配置的代码进行重配置。这样,能更简单且更快速地修改或者更新与打印机固件接口的先前开发的定制程序。用户仅需要开发用于附加功能的特定编程代码并且将其配置到打印机中,例如通过将代码下载到稍后与打印机的固件接口的闪存中。在优选实施例中,为定制功能开发的先前配置的编程代码包括如现有技术中公知的用于后开发的编程代码的占位符,该编程代码用于将后配置的编程代码集成到先前配置的代码中。优选地,先前配置的编程代码在运行时加载新配置的编程代码并实施新功能,无需重配置或重启打印机设备。这样,在运行时执行新增加的编程指令。在一个实施例中,以相同的编程语言进行开发或编写新开发的编程代码与先前开发的编程代码。在可选实施例中,以与先前开发的代码不同的编程语言开发新配置的编程代码。在其他情况下,新配置的编程代码提供的功能变成包括先前开发的代码的打印机运行软件中集成的一部分,并因此可存取。在优选实施例中,用于具有先前配置的定制代码的打印机待开发的定制编程代码采用脚本程序开发,并通过解释器标记,然后在SDRAM存储器启动前加载到SDRAM存储器。 当运行先前配置的定制编程代码时,优选执行指令来完成运行清单看是否存在任何新开发或引入的程序能被增加到标记程序中。标记运行时间(在SDRAM)随后包含原始程序和新引入的程序。由于原始程序或先前配置的程序并不知道任何增加的特定程序,所以先前配置的程序包括为增加程序存取所提供的占位符。因此,通过打印机的固件API加载的定制编程应用优选包括用于新配置或引入待集成的程序的占位符。新配置的程序优选地作为原始程序完全集成的一部分运行。在优选实施例中,可以在任一通用平台中开发定制编程代码,所述平台包括电子数据表、数据库、文本编辑器、文字处理器、集成开发环境等,并且用户能够如愿增加新的定制打印机功能。通过使得终端用户能够开发与先前配置的应用集成的定制应用,由于打印机固件所提供的全部编程以及提供定制功能的任何先前部署的应用都与新开发的编程代码集成,本文的教导提供了一种增强打印机功能的有力的方式。根据实施例,经由定制编程代码的新的或者修改的打印机功能并不受打印机固件的影响。反而包括脚本所提供的编程指令在内的编程指令由于占位符的功能而被“引入”到现有的定制编程代码中。这种高级别的代码引入技术使得终端用户能够容易且快速地修改和改善打印机功能,而无需改变打印机的固件或重配置以修改的或改善的打印机功能更新的定制程序应用。现在参照附图,其中相同的附图标记表示相同的元件。图1示出了根据本发明的实施例的示例性硬件配置,用于经由直接的电缆连接或者通过通信网络来提供和安装打印机应用程序,并且这里一般是指系统100。在图1所示的示例中,信息处理器102设置有集成开发程序环境(“IDE”),例如以LUA编程语言开发应用,如本领域中技术人员所公知的。 信息处理器102优选包括对于支持本发明所必需的所有数据库。但是,通常认为信息处理器102能够通过可以联接信息处理器102的通信网络106或任何其它通信网络访问任意所需的数据库。通信网络106优选为诸如因特网的全球公共通信网络,但也可以是广域网 (WAN)、局域网(LAN)、企业内部网或其它使得计算设备和周边设备通信的网络。在优选实施例中,信息处理器102是能够通过通信网络106发送和接收数据的任意计算机可读介质设备,例如,大型计算机、微型计算机、个人计算机、膝上计算机、个人数
6字助理(PDA)、蜂窝电话和诸如网络电视的互联网接入设备。另外,信息处理器102优选装备有网络浏览器软件,例如MICROSOFT INTERNET EXPLORER, MOZILLA FIREFOX等。信息处理器102利用任何公知的数据通信网络技术联接到通信网络106。仍如图1所示,打印机108优选为标记和标签打印机,并能运行以打印从信息处理器102处接收到的数据的标记和标签。标记和标签打印机108可以设置有键盘110和显示器112,以在不存在信息处理器102或与信息处理器102结合的情况下激活标记和标签打印机108的输入和输出功能。图2示出了示例性信息处理器102的功能元件,并且包括一个或多个中央处理单元(CPU) 202,用于执行软件代码并控制信息处理器102的运行。其它元件包括只读存储器 (ROM) 204,随机存取存储器(RAM) 206,通过通信网络从其它计算设备接收数据或传输数据到其它计算设备的一个或多个网络接口 208,诸如用于存储程序代码数据库和应用数据的硬盘驱动器、软盘驱动器、磁带驱动器、⑶ROM或DVD等的存储设备210,诸如键盘、鼠标、控制球、麦克风等一个或多个输入设备212,以及显示器214。此外,标记和标签打印机108还可以适当地配置或设置有一个或多个功能元件202-214。信息处理器102的各种部件不需要物理上包含于相同的底架中或者甚至不需要位于单一的位置处。例如,存储设备210可以位于远离信息处理器102的剩余元件的位置处,并且甚至可以通过通信网络106经由网络接口 208连接到CPU 202上。信息处理器102 优选地包括装备有足够容量的存储器,以提供必要的数据库、论坛以及其它通信服务,并用作用于通信超文本标记语言(HTML)、Java applets、Active-Χ控制程序的网络服务器。信息处理器102布置有如图2所示的部件,适于信息处理器102的期望运行环境。可选择CPU 202、网络接口 208和存储器及存储设备来确保容纳期望需求的容量。本发明的特质在于,编写计算机可执行代码(即,软件)领域的技术人员能够利用流行的计算机编程语言中的一个或多个的结合以及开发环境(包括但不限于LUA,C,C++, Visual Basic, JAVA, HTML, XML, ACTIVE SERVER PAGES, JAVA server pages, servlets, MYSQL and PHP),实现这里所描述的功能。虽然通过这里的示例方式以及利用网络浏览器和网络位置服务器(例如,信息处理器102)的基于网络的系统描述了本发明,但是系统100并不局限于这种配置。可以考虑布置系统100以使得标记和标签打印机108利用任何已知的通信方法与信息处理器102通信并输出从信息处理器102接收到的数据,所述通信方法例如为利用与局域网协议结合的非互联网浏览器WINDOWS查看器,所述协议例如为互联网包交换协议(IPX)、拨号、第三方、专用网或者增值网(VAN)。此外还可以考虑到可以在信息处理器102上使用任何合适的操作系统,例如, DOS、WINDOWS 3. χ、WINDOWS 95、WINDOWS 98、WINDOWS NT、WINDOWS 2000、WINDOWS ME、 WINDOWS CE, WINDOWS POCKET PC, WINDOWS XP, MAC OS、UNIX、LINUX、PALM OS、POCKET PC 和任何其它合适的操作系统。在优选实施例中,以LUA编程语言开发标记和标签打印机108应用。根据优选实施例,包括运行来处理应用中提供的LUA编程语句的LUA解释器。不像典型的高级编程语言, LUA是一种脚本语言并且不是基本编程语言。不像典型的标记和标签打印机那样接收SBPL 命令或者其它预定义的命令来使得标记和标签打印机执行各种功能,本发明实现为LUA语
7言延伸的打印机API,其与打印机固件接口并且由LUA解释器解释。这能例如利用函数调用来开发更先进和复杂的应用。此外,通过实施为LUA编程语言延伸的API,能够修改一部分标记和标签打印机108功能,这与现有技术中标记和标签打印机要求完全重写其固件应用以实现单一的改变的情况相反。本发明另一个优点是以LUA编程语言开发并在标记和标签打印机108 API中实施的应用更紧凑并且执行起来显著变快。这是因为现有技术的标记和标签打印机要求更多的软件指令来实现各种功能,这些功能可以由本发明的API所实现。此外,例如通过利用函数调用、变量声明等的优点,LUA解释器与本发明的API有效地接口,并且代码的使用由于需要更少的存储器的函数而相对于现有技术的标记和标签打印机显著改善。本发明的LUA打印机API相对于现有技术的标记和标签打印机的另一优点是能够存取打印函数,而无需解释器经由现有的控制语言(例如SBPL或ZPL)来存取打印函数。换句话说,API直接与控制打印机108打印功能的标记和标签打印机108固件接口。与现有技术相比这是一个改进,在现有技术中需要生成例如SBPL命令来与现有的控制语言接口, 由此增加了与修改打印机功能有关的步骤和费用。此外,由于本发明的API经由LUA解释器接口,所以与应用相关的尺寸限制实际上被消除,除了基于特定标记和标签打印机108的内部存储器。这对于现有技术的标记和标签打印机是一个改进,例如,现有技术的标记和标签打印机具有对代码行数的限制,所述代码可以安装并且不支持动态存储器分配。本发明的API支持例如函数调用和其它高级编程语言功能,例如释放增加用于特定功能而实施的编程代码量的存储器(“碎片收集”)。本发明另一优点是开发工具作为LUA的插入部件是可用的,所述开发工具例如为 MICROSOFT VISUAL STUDIO或其它集成开发环境(“I腿s”)。用于各个标记和标签打印机 108的应用开发对于开发者而言是更有吸引力的,所述开发者对在可视化集成开发环境中开发软件应用是熟悉且适应的。本发明的另一优点在于LUA应用可以在具有模拟打印机操作的LUA虚拟机的计算机上运行。用户能够在下载和在打印机上安装应用之前,在计算机上测试开发的LUA应用, 这预先排除实际操作打印机来测试LUA应用。在优选实施例中,多个独立的LUA虚拟机可以按一系列操作并在单一标记和标签打印机108上或其网络上实施。这样,可以为例如条形码打印机实施可配置的动态局域设定,所述条形码打印机根据各种定制设定(例如,区域设定和语言设定)对数据进行分类。 各种局域设定可以根据特定计算机系统的操作系统分类,并且行为的变化可能例如取决于局域设定。通过经由LUA解释器实施API,可以提供超过现有技术中的先前存在的功能的附加打印机功能。现在提供关于根据优选实施例的附加打印机功能及其改善实施的讨论。优选地,在示例性实施例中,LUA实施支持编程函数调用和通过变量进行声明、寻址和传递值到编程函数或从编程函数传递值。优选地,编程函数返回表示函数执行成功与否的值,例如错误代码。例如,如果函数并未像期望的那样执行,则将返回表示错误原因、错误符号、错误结果或其它适当信息的错误代码。而且,例如相关表格名称、字符串值、数据、 数值等函数名称和变量名称优选地并不轻易地显示给用户,而是至少部分的隐藏不见或完全隐藏不见。
优选地,本文的教导支持安全实施,例如包括要求用户具有所提供的充足的授权以获得执行各种任务的权利,所述任务例如为获得特定数据、一个或多个数据目录,或者创建、移除或其它修改数据目录、数据文件等。API支持的另一个特征是界面渲染。如此处使用的,渲染通常指的是创建相互作用的编程目标。例如,绘制目标可以形成为数据区(例如,基于文本的区)、条形码、图形区。 渲染目标包括一个或多个能被例如方法所操纵的属性。优选地,经由API渲染的目标(例如,文本区、条形码和图形目标)设置(例如,增加或者嵌入)有标记目标并经由标记和标签打印机108打印。此外,API支持提供位于标记上的目标,例如条形码,其至少部分地在标记和标签打印机108的可打印区域的外侧,而不会在生成标记、打印标记时或者在同时执行这两个动作时引起错误。这个特征使得可以生成具有这样的条形码的标记例如只有一半条形码被标记和标签打印机108打印出。相对于现有技术中如果用户想要由标记和标签打印机 108在标记上打印局部或者不完全的目标(例如,条形码)则需要修改打印机功能的方式, 该特征提供了改进。在一个实施例中操作过程期间,例如文本区、条形码、图形盒、图像等的渲染目标相应的位置由水平位置参数和垂直位置参数(例如,“hPos”和“vPos”)限定。所述参数值优选地定义了目标的定位点位置。如果hPos和vPos被正确地设定,则定义错误参数(例如,“E_SUCCESS”)。可选地,如果hPos或vPos没有被正确地设定,则定义不同的错误参数 (例如,“EPARAM”)。除了为定位所定义的参数,本发明还支持目标(例如,条形码或图像)的放大率。 例如,为待设定的水平和垂直像素放大率(例如,值1-1 限定水平和垂直放大率参数(例如,“hMag”和“vMag”),这表示目标的水平和垂直放大率的相应度数。图3是示出根据优选实施例提供的与标记和标签打印机108固件接口的相关API 302的方框图。如图3所示,键盘API 304可运行以接收和解释(即,读取)来自与标记和标签打印机108 —体的键盘110的信号。可选地,键盘API 304运行以读取和解释不直接与标记和标签打印机108联接的外部键盘或其它输入设备的信号。显示器API 306运行以向与打印机108—体的显示器112写入宽范围的文字和图形内容。可选地,显示器API 306 运行以向附着在标记和标签打印机108上的外部显示器214写入文本和图形内容。优选地, 显示器API 306支持用于许多不同书面语言的宽范围可选的字体和编码类型。继续参考图3,打印绘制API 308支持待输出到由标记和标签打印机108打印出的标记上的用户定义的数据区元素。这种数据区元素的示例包括文本数据区、I-D和2-D条形码、线和盒、三角函数、图像、单个像素、图形、格式数据以及反向值。打印机绘制API 308 使得用户可以定义数据区的类型,以及待输出到特定标记/标签上的数据区的位置。优选地,打印机绘制API 308提供支持各种语言的字体和编码类型的可选项。经由打印机绘制 API 308在区定义或来自文件或通信接口中优选支持和包括数据格式的固定长度或可变长度。其它特征包括支持用于定义一个或多个上述区目标的颜色的可选颜色输出项。此外, 一个或多个打印输出或供给命令都被作为输出到空白或打印出的标记和标签的打印绘制 API308的函数发布。优选地,通过打印机绘制API 308进一步提供用户可选打印质量控制特征。
9
此外,优选地设置文件系统API 310以使得用户存储、删除、读取和写入位于一个或者多个标记和标签打印机108的中的只读存储器文件系统、随机存取存储器文件系统、 闪存文件系统或者外部存储源(例如,紧凑闪存存储卡、安全数字存储卡、USB存储设备等) 的文件中。使得用户可以存取存储在与标记和标签打印机108相关的各种内部和外部源中的数据、文件等,这显著增加了用户控制和操作标记和标签打印机108运行的灵活性。优选的,结合包括格式标记和标签打印机108文件系统的文件系统API 310提供各种功能的示例,来确定交互目录的入口、导航到特定目录、创建新的目录、拷贝文件、移除目录或文件、 确定在文件系统中已使用和可获得的字节,并改变文件或目录的访问权。继续参照图3,射频识别(“RFID”)API 312支持读取和写入标记和标签打印机 108提供的RFID芯片/嵌体。另外,实时时钟API 314使得用户定义日期和时间数据到标记和标签打印机108并从标记和标签打印机108读取该数据。配置API 316支持用户定义特定打印机具体参数。例如,配置API 316使得用户定义与打印速度、质量、日期和时间函数、本地语言、菜单控制等相关的通信参数。配置API 316对于以下方面是非常有用的 使得用户定义或修改用于标记和标签打印机108的操作控制,所述操作控制典型地独占标记和标签打印机108的固件并且仅通过具有专有软件技能的技术专业人员修改。另外,通信API 318优选地控制与外部I/O接口设备的通信。支持多个通信协议和标准,例如包括 RS232、RS485、RS422、USB、LAN、WLAN 和外部数字延迟接口。图3所示的其它API 302包括可运行以控制打印机中设备的设备API 320、可运行以在任意给定时间报告打印机状态的打印机状态API 322、以及可运行以分析命令和/或文件的分析API 324,例如已经被发送到标记和标签打印机108的XML命令和/或XML文件。一经分析,XML命令被解释和使用来控制标记和标签打印机108所提供的控制输出。除了设备API 320、打印机状态API 322以及分析API 324,API 302优选地还包括纸张处理API 326,其被提供以支持用于一个或多个标记和标签尺寸的多种纸张功能,例如包括打印进给、格式纸进给、行进给、测试进给等。另外,所示出的声音API 3 提供音频控制,例如在标记和标签打印机108中的报警器、蜂鸣器或其它声音部件。此外,所示出的传感器API 330可运行以从传感器设备(例如,标记缝隙传感器和标记记号传感器)接收标记和标签打印机108提供的信息,并且可运行以确定例如,在标记的末端到达时、在纸带的末端到达时、以及在标记或纸带的末端几乎到达时的各种条件。在一个实施例中,传感器 API 330运行以在判定这些条件中的一个或多个发生时发出警告。图3中示出的其它API 302包括事件API 332,其接收并处理在标记和标签打印机108中发生的各种事件;位处理 API 334,其运行以在必要时执行数据的位操作;以及错误处理API 336,其运行以处理标记和标签打印机108可能发生的错误,例如功率输出、存储器错误、卡纸错误等。因此根据优选实施例,例如以LUA编程语言或以C编程语言开发了多个API 302, 并在标记和标签打印机108中实施而不需要解释器通过现有的控制语言(例如,SBPL或者 ZPL)获取打印功能。除了图3中所示出的API 302,这里设想出在一个或多个实施例中实施的多种其它辅助功能。例如,为了快速且简单地开发,支持克隆表格和/或改变表格的功能。其它示例包括用于确定作为颠倒错误字符串值的函数(例如,“errfstrO”)的错误值的功能,用于在多个格式(例如,XML、LUA或者其它)中的一个或多个中存储表格的功能, 用于加载多种格式支持的表格以及支持用于菜单和快捷方式的多种读写语言的功能。
图4示出了根据优选实施例提供的由API 302所限定的由标记和标签打印机108 打印的示例标记400。如图4所示,定位点402限定在最左上角(例如,经由hMag值和vMag 值)和并由标记400上打印的文本数据的位置所限定,而不管打印文本数据的各自方向或位置。虽然在图4中示出了经由标记和标签打印机108打印的标记400的进纸方向404。 除了打印在标记400上的文本数据外,还提供了例如经由打印绘制API308所绘制的图形图像 406。图5示出了为待在标记400上提供的数据区500所限定的示例数据区尺寸,并且指出了用于数据区500的最左上角表示相应的水平和垂直位置(“hPos”和“vPos”)502和最右下角位置的水平和垂直位置504。此外,数据定向函数506(例如,dir (0,.359))指出当数据数据区500输出到标记400上时的相对定向。图6示出了根据优选实施例提供的由API 302所限定的由标记和标签打印机108 打印的另一个示例标记600。在图6所示的示例标记600中,在标记600的相应位置608处提供了示出的多种颜色602、604和606。因此,如此处所示出和描述的,LUA API是经由LUA 解释器通过实施API结合标记和标签打印机108固件和LUA解释器的接口,客户可以创建实施优选打印操作的LUA应用程序。现在参考图7A,在优选实施例中标记和标签打印机108设置有两种存储器闪存 702和同步动态随机存取存储器(SDRAM) 704。闪存702 (优选作为ROM的替代使用)在其它合适的数据中存储标记和标签打印机108引导程序代码、基本固件(例如,驱动器、条形码格式等)、LUA API和LUA虚拟机。如现有技术中已知的,存储在闪存702中的引导程序代码在打印机108的引导处理过程中运行。在优选实施例中,标记和标签打印机108的基本固件和LUA API以压缩格式存储在闪存702中,由此保存闪存702中的存储空间。此外, 待配置和引入现有应用程序的定制编程(例如,包括LUA应用程序和/或附加编程)代码优选存储在闪存702中。在标记和标签打印机108引导处理之前,优选地,SDRAM 704大体上是空的,并准备接收数据。如图8所示,当标记和标签打印机108在引导程序时,标记和标签打印机108 固件、LUA API和LUA虚拟机优选地以压缩格式选存储在闪存702中。在引导程序之后,所述固件、LUA API和LUA虚拟机被解压缩并以解压缩格式提供到SDRAM 704。之后,在适当时,标记和标签打印机108的基本固件、驱动器条形码数据、标记格式、分析程序、图像缓冲器和其它数据为运行而暂时存储在SDRAM 704中。此外,例如以LUA编程语言开发的应用程序被提供给SDRAM 704。如图8所示,并如此处所描述的,LUA程序优选地包括在适当时用于待配置并“引入”应用程序的附加编程代码(以“IP”示出)的占位符。参考图9,LUA虚拟机优选经由与打印机108的固件、LUA API和分析程序有关的 SDRAM 704运行。这样根据优选实施例,标记和标签打印机108在打印操作过程中并不独占闪存702,而是经由为了运行而存储在SDRAM 704中的未压缩数据和指令来运行。该实施例相对于典型的现有技术的系统和方法而言是优选的,因为SDRAM 704比闪存702运行地更快且更有效,并且SDRAM 704在完成打印机操作之后能够清除解压缩的数据和指令。结合图9和图10,在打印操作过程中,结合此处教导提供的LUA API经由LUA虚拟机运行,并与标记和标签打印机108固件接口用于输出存储在标记和标签打印机108的缓冲器内的标记图像或其它目标。优选地,标记和标签打印机108从优选由LUA API所限定的多个输入源接收指令(例如,经由LUA API)和/或数据。例如,可以经由适当的输入端口(包括输入部件212)、通信端口、网络接口 208等来扫描、键入或提供和接收数据。因此如此处所描述和声明的以及附图所示出的,标记和标签打印机108功能被优选地增强、修改或增加为与打印机108固件接口的API 302的功能。优选地利用高级编程语言(例如,LUA编程语言)来定义应用,由此预先排除需要个人精通特定打印机模式固件属性编程语言,或者需要获取专有的开发工具来修改打印机的固件。此外,结合LUA应用或排除LUA应用,可接收并执行待“引入”到当前运行的LUA引用的附加编程代码。因此,为应用开发可激活打印机,而不需利用打印机的专有解释语言编写应用,并且作为在应用中提供的占位符的功能可以将编程代码弓I入运行的应用中。因此,根据本文的教导,可以开发和配置与先前执行的打印机应用接口的新的打印机应用,该先前执行的打印机应用具有一个或更多占位符的功能。不用代替整个程序和重启打印机就可提供新打印机功能。因此,通过使得用户能够增加打印机功能到例如先前部署的LUA程序上,克服了现有技术中关于时间和编程的限制。根据本文的教导,用户不需修改先前配置的程序和重配置程序到打印机。而是,当已经提供了新的应用时以占位符所提供的定制应用可以识别并且经由占位符可以引入新的应用到先前配置的应用,以快速且方便地增强打印机功能。虽然以具体实施例描述并示出了本发明,但是对于本领域的技术人员而言许多其它修改和变型都是显而易见的。因此,优选的是本发明并不受限于本文的具体公开。
1权利要求
1.一种修改打印机功能的方法,所述打印机设置有固件以及用于控制打印操作并与所述固件接口的第一编程代码,所述方法包括开发所述第一编程代码,当在处理器可读介质上执行时,所述第一编程代码与所述打印机固件接口并且为所述打印机提供第一功能,其中所述第一编程代码包括至少一个占位符;开发第二编程代码,当在处理器可读介质上执行时,所述第二编程代码与所述第一编程代码接口并且提供与所述第一功能不同的打印机的第二功能;提供并执行在处理器可读介质上的所述第一编程代码,并且将所述第一编程代码与所述固件接口以提供所述第一功能;并且提供并执行在处理器可读介质上的所述第二编程代码,并且将所述第二编程代码与所述第一编程代码接口以提供所述第二功能,其中所述第二编程代码作为所述至少一个占位符的功能而被执行。
2.根据权利要求1所述的方法,其中所述第一编程代码在执行所述第二编程代码之前执行。
3.根据权利要求2所述的方法,其中在所述第二编程代码被提供和执行之前以及在所述第二编程代码被提供和执行时,不重启所述第一编程代码和所述打印机。
4.如权利要求1所述的方法,其中在执行所述第二编程代码时不修改所述第一编程代码。
5.如权利要求1所述的方法,其中所述第一编程代码执行命令以确定是否已经提供所述第二编程代码到所述处理器可读介质。
6.如权利要求1所述的方法,其中所述第一编程代码和所述第二编程代码是以不同的编程语言编写的。
7.如权利要求1所述的方法,其中所述第一编程代码和所述第二编程代码是以相同的编程语言编写的。
8.如权利要求1所述的方法,进一步包括开发第三编程代码,当在处理器可读介质上执行时,所述第三编程代码与所述第一编程代码接口并且为所述打印机提供与所述第一功能和所述第二功能不同的打印机的第三功能;在所述处理器可读介质上提供并执行所述第三编程代码,并且将所述第三编程代码与所述第一编程代码接口以提供所述第三功能,其中所述第三编程代码作为所述至少一个占位符的功能而被执行。
9.如权利要求1所述的方法,其中所述第一编程代码和所述第二编程代码由解释器标记。
10.如权利要求1所述的方法,其中所述打印机是标记和标签打印机。
11.如权利要求1所述的方法,其中所述第一编程代码以脚本语言编写。
12.如权利要求1所述的方法,其中所述第一编程代码以LUA编程语言编写。
13.—种修改打印机功能的系统,所述系统包括 具有所述打印机功能的打印机;所述打印机提供的固件,当在所述打印机上执行所述固件时,其控制打印操作;第一编程代码,其在处理器可读介质上执行,其中所述第一编程代码包括提供所述打印机的第一功能的命令并且还包括至少一个占位符;第二编程代码,其在所述处理器可读介质上执行,其中所述第二编程代码与所述第一编程代码接口并且提供与所述第一功能不同的打印机的第二功能;以及处理器可读介质,在其上执行所述第一编程代码和所述第二编程代码, 其中所述第二编程代码作为所述至少一个占位符的功能而被执行。
14.如权利要求13所述的系统,其中所述第一编程代码在执行所述第二编程代码之前执行。
15.如权利要求14所述的系统,其中在所述第二编程代码被提供和执行之前以及在所述第二编程代码被提供和执行时,不重启所述第一编程代码。
16.如权利要求13所述的系统,在执行所述第二编程代码时不修改所述第一执行代码。
17.如权利要求13所述的系统,其中所述第一编程代码执行命令以确定是否已经将所述第二编程代码提供到所述处理器可读介质。
18.如权利要求13所述的系统,其中所述第一编程代码和所述第二编程代码是以不同的编程语言编写的。
19.如权利要求13所述的系统,其中所述第一编程代码和所述第二编程代码是以相同的编程语言编写的。
20.如权利要求13所述的系统,进一步包括第三编程代码,当在所述处理器可读介质上执行时,所述第三编程代码与所述第一编程代码接口并且提供与所述第一功能和所述第二功能不同的打印机的第三功能;其中所述第三编程代码在所述处理器可读介质上提供和执行,并与所述第一编程代码接口以提供所述第三功能,其中所述第三编程代码作为所述至少一个占位符的功能而被执行。
21.如权利要求13所述的系统,进一步包括解释器,其标记所述第一编程代码和所述第二编程代码。
22.如权利要求13所述的系统,其中所述打印机为标记和标签打印机。
23.如权利要求13所述的系统,其中所述第一编程代码以脚本语言编写。
24.如权利要求13所述的系统,其中所述第一编程代码以LUA编程语言编写。
25.如权利要求13所述的系统,其中执行所述第一编程代码进一步包括在LUA虚拟机上解释所述第一编程代码。
全文摘要
一种修改打印机功能的方法和系统。该打印机设置有固件以及与固件接口用于控制打印机操作的第一编程代码。编程代码包括至少一个占位符。提供第二编程代码,当在处理器可读介质上执行时所述第二编程代码时,编程代码作为所述至少一个占位符的功能而被执行。
文档编号G06F9/54GK102483709SQ200980159768
公开日2012年5月30日 申请日期2009年6月8日 优先权日2009年6月8日
发明者S·基伯 申请人:佐藤株式会社, 株式会社佐藤知识财产研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1