CN101720458A - 对于标记和/或编码的改进或与其相关的改进 - Google Patents

对于标记和/或编码的改进或与其相关的改进 Download PDF

Info

Publication number
CN101720458A
CN101720458A CN200880022644A CN200880022644A CN101720458A CN 101720458 A CN101720458 A CN 101720458A CN 200880022644 A CN200880022644 A CN 200880022644A CN 200880022644 A CN200880022644 A CN 200880022644A CN 101720458 A CN101720458 A CN 101720458A
Authority
CN
China
Prior art keywords
message
script
printmessage
processor
arbitrary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200880022644A
Other languages
English (en)
Other versions
CN101720458B (zh
Inventor
巴尔恩·戴维斯
卡梅隆·罗伯特·爱德佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Domino Printing Sciences PLC
Original Assignee
Domino Printing Sciences PLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Domino Printing Sciences PLC filed Critical Domino Printing Sciences PLC
Publication of CN101720458A publication Critical patent/CN101720458A/zh
Application granted granted Critical
Publication of CN101720458B publication Critical patent/CN101720458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

一种标记装置,用于将消息施加至物品,该装置包括:处理器,被设置成通过执行一个或多个消息脚本以计算打印消息的动态字段来产生打印消息,所述一个或多个消息脚本使用脚本语言来形成;以及用于将打印消息施加至物品的器件。

Description

对于标记和/或编码的改进或与其相关的改进
技术领域
本发明涉及标记和/或编码,并且尤其已被开发应用于工业和/或商业的标记和编码设备。在下文中,术语“标记”将被用来涵盖标记和编码两者。
背景技术
工业标记和编码设备是众所周之的技术。移动生产线上携带的物品被移动经过某站点,在该站点,由标记和编码设备将标记施加至所述物品。通常,通过特定类型的喷墨工艺(如连续喷墨打印)或通过激光(如激光打印)来施加标记。
在下文中,标记被称为消息。如众所周之的那样,消息可以包括一串字符,通常为数字、字母或字母和数字的组合,但是也可以使用其他符号。此外,消息可以包括固定(预定)数据和可变数据。举例来说,典型的消息具有以下格式:BEST BEFORE 10MAY 2007。该消息的“BEST BEFORE”部分是固定的,但是“10MAY 2007”部分将根据该消息被施加的日期而改变。
上述工业编码设备通常以术语“初级编码打印机”来表示。此外,这样的工业编码设备通常也以术语“产品标识打印机”来表示,但是可以理解,通过产品标识打印机施加至物品的标记/消息不必是实际标识该物品的标记/消息,而是如上所述可以是任何其它类型的消息(如指明日期的消息,其中该物品应当在该日期前使用或消费)。
附图中的图5示意性示出了使用产品标识打印机502的系统500。未标记的物品504(例如通过运输设备或传送装置506)被移向产品标识打印机502。产品标识打印机502在未标记的物品504上施加/打印标记/消息508以产生已标记的物品510。但是可以理解,可以使用其它用于向物品施加消息的装置/构造。
当前,只能根据编程到打印机中的预设模板来形成消息的形式。但是,尤其是在产品标识和跟踪及追踪应用中,越来越需要更加灵活和动态的消息。
本发明的目的是提供一种方法和/或装置,其至少一定程度上解决前述需求,或至少提供新的且有用的替代方案。
发明内容
根据本发明的第一方面,提供一种标记装置,用于将消息施加至物品,该装置包括:处理器,被设置成通过执行一个或多个消息脚本以计算打印消息的动态字段来产生打印消息,所述一个或多个消息脚本使用脚本语言来形成;以及用于将打印消息施加至物品的器件。该标记装置可以被认为是产品标识打印机或初级编码打印机。
该装置可以包括输入端,用于允许使用者选择待由处理器执行以产生打印消息的一个或多个消息脚本。
该装置可以被设置成从所述装置外部的源接收所述一个或多个消息脚本。
该一个或多个消息脚本可以为可机读格式,处理器被设置成执行所述可机读格式。可替选地,所述一个或多个消息脚本可以具有人可读格式,该处理器被设置成通过执行用于解释所述人可读格式的解释程序来执行所述一个或多个消息脚本。
该装置还包括时钟,其中,至少一个消息脚本被设置成使得处理器使用该时钟的输出来计算该打印消息的动态字段。
该装置可以被设置成接收打印触发,并且响应于该打印触发,产生打印消息并将该打印消息施加至物品。
该装置可以包括用于从所述装置外部的源接收数据的输入端,其中,至少一个消息脚本被设置成使得处理器使用所接收的数据来计算打印消息的动态字段。
根据本发明的第二方面,提供了一种标记装置,用于将消息施加至物品,该装置包括:处理器,被设置成通过执行一个或多个消息脚本以计算打印消息的动态字段来产生打印消息,所述一个或多个消息脚本是使用脚本语言来形成的;输入端,用于从所述装置外部的源接收数据,其中,至少一个消息脚本被设置成使得处理器使用所接收的数据来计算打印消息的动态字段;以及用于将打印消息施加至物品的器件。
该标记装置可以形成系统的一部分,该系统还包括位于所述标记装置外部的数据源,且该数据源被设置成通过所述标记装置的所述输入端向所述标记装置提供数据用于计算打印消息的动态字段。该数据源可以包括用于确定物品的一个或多个属性的传感器。
根据本发明的第三方面,提供一种用于操作装置以将消息施加至物品的方法,该方法包括:通过执行一个或多个消息脚本以计算打印消息的动态字段来产生打印消息,所述一个或多个消息脚本是使用脚本语言来形成的;以及将打印消息施加至物品。
该方法可以包括允许使用者选择一个或多个待由处理器执行以产生打印消息的消息脚本。
该方法可以包括从所述装置外部的源接收一个或多个消息脚本。
所述一个或多个消息脚本可以为可机读的格式,处理器被设置成执行所述可机读的格式。可替选地,该一个或多个消息脚本可以具有人可读格式,该处理器被设置成通过执行用于解释所述人可读格式的解释程序来执行所述一个或多个消息脚本。
执行一个或多个消息脚本可以包括:使用该装置的时钟的输出来计算打印消息的动态字段。
该方法可以包括接收打印触发,并且响应于该打印触发,产生打印消息并将该打印消息施加至物品。
该方法可以包括从所述装置外部的源接收数据,其中,执行一个或多个消息脚本包括:使用所接收的数据来计算打印消息的动态字段。
根据本发明的第四方面,提供一种计算机程序,该计算机层序在由处理器执行时实现上述方法。该计算机程序可以被存储在计算机可读介质(如光盘、磁盘、固态存储器件等)上。
本发明的第五方面提供了一种用于提高标记和/或编码装置的性能的方法,所述方法包括:创建待由所述装置采用的消息脚本,所述方法的特征在于包括使用向使用者提供逻辑和字段操作的脚本语言来形成所述消息脚本。
优选地,所述脚本语言在所述打印机外部应用。
优选地,所述消息脚本被编译成可机读的形式并被传递给所述标记和/或编码装置的操作系统。
优选地,所述消息在远离所述装置的计算机上创建并通过USB钥匙的方式传递。
本发明的第六方面提供了利用使用脚本语言形成的消息脚本来对其编程的标记和/或编码装置。
优选地,所述标记和/或编码装置适于从外部源接收所述消息脚本。
优选地,所述标记和/或编码装置适于接收具有可机读形式的所述消息脚本。
优选地,所述消息脚本包括用于定义脚本描述信息的语句,所述语句可由所述装置识别。
本领域的技术人员可理解能够实现本发明的方式的许多变型。以下的描述旨在仅作为执行本发明的一种方式的说明,并且缺少对各种变型或等同内容的描述不应该被认为是限制。只要可能,对特定元素的描述应该被认为包括其现有的或未来的任何及全部等同内容。
附图说明
将参考附图来对本发明的实施例进行描述,其中:
图1以图解形式示出了根据本发明实施例的打印消息的创建和执行;
图2以图解形式示出了用于说明本发明实施例的特定脚本语言的基本原语;
图3以图解形式示出了根据本发明实施例的处理脚本的方式;
图4以图解形式示出了与本发明实施例结合的脚本变量对象的结构;
图5以图解形式示出了使用产品标识打印机的示例系统;
图6以图解形式示出了根据本发明实施例的示例系统;
图7是示出了根据本发明实施例在产生消息脚本时在远端计算机执行的处理的流程图;以及
图8是示出了根据本发明实施例在使用消息脚本时在打印机执行的处理的流程图。
具体实施方式
本发明的实施例提供一种用在工业标记和编码装置(通常称为产品标识打印机或初级编码打印机)中的消息创建工具。该工具被明确地设计用于集成到连续喷墨(CIJ)打印机中,但是同样适用于其它类型的标记设备,包括二进制CIJ、按需供墨式喷墨以及激光标记。术语“标记”和“打印”旨在包括通过所有已知技术来施加标记和编码,因为打印功能本身不构成本发明的一部分。
在本发明最简单的实施例中,提供了一种创建动态定制的时钟和/或计数器字段并将其嵌入待打印的消息中的方法,其中该消息是基于多个“原始”数据类型和运算符、使用脚本语言写入“脚本”而被打印的。
这里所使用的术语“脚本语言”旨在表示一组人可读的指令,用于执行逻辑和算术操作,这些指令随后被合成、编译或解释以创建机器功能。在随后的描述中,所使用的脚本语言是多米诺定制脚本工具(Domino Custom ScriptingTool)(也称为PC工具)。但是,本领域技术人员可以理解,本发明的实施例可适于与其它通常可用的脚本语言工具如VBScript和PERL一起使用。脚本语言的基本原语在图2中示出并将在下文中更加详细地描述。
图1中示出了打印消息的创建和执行过程。可以看到,在远端计算机上使用PC工具来创建、编辑和预览消息脚本。在一些实施例中,为了使现场操作员干扰的机会最小,脚本仅在该阶段是人可读的。类似地,可以从打印机引入现有脚本以便使用PC工具进行后续定制。
下面将对脚本创建过程进行更加详细地描述。
当PC工具的操作者对脚本满意,并且已符合与脚本形成相关联的所有规则(稍后描述)后,该PC工具将脚本编译成机器(打印机)可读的格式,并且该脚本被传递给打印机。在所示示例中,该传递是通过将编译后的脚本下载到USB钥匙上然后将该USB钥匙插入到打印机的USB端口中来实现的。但是可以理解,可以通过其它已知的手段来实现该传递。还可以理解的是,作为编译的替选方式,打印机可以配备有解释程序。但是,由于可以达到更高的传递速度和减少执行/处理时间,所以编译是优选的。
优选地,打印机的操作系统被编程为在USB钥匙中的、编译后的脚本所在的特定位置寻找特定的文件扩展名。打印机对这些编译后的脚本(名称、应用等)进行检查以保证它们在打印机中对于后续使用是有效的。
如在图1中可见,打印机的编辑器被配置成允许现场操作员选择编译后的脚本以插入到打印消息中。但是,在一些实施例中,编辑器不允许编译后的脚本中的语句被原样查看,简单来说,现场操作员具有在打印机本地修改脚本的能力被认为是不合适的。
在通过编辑器创建的消息中可以插入脚本项(或元素)。该消息包含对其内部的脚本的引用,例如:
Figure G2008800226443D00061
编译后的脚本被下载到目标对象(Target),使得它们从要被打印的消息内可以被引用。
当该消息被选择用于打印时,“消息内容”被解析,并且脚本引用被用于使脚本嵌入以便执行。每次接收到打印触发时,计算消息中的动态字段并构建消息模式。作为该程序的一部分,执行该脚本以计算所需结果。
图6示意性示出了根据本发明实施例的示例系统600。该系统600包括远端计算机610和产品标识打印机650,下面将对这两者进行更加详细的描述。总的来说,消息脚本由使用者在远端计算机610创建并被传递到产品标识打印机650以用来标记物品。该传递可以是传递编译后的消息脚本(如果远端计算机610被设置成将消息脚本编译成可机读的格式)或者是传递未经编译的消息脚本(例如,如果打印机650被设置成执行解释程序以将未编译的消息脚本解释成人可读的格式)。
远端计算机610可以是适于产生消息脚本的任何形式的计算设备(如个人/桌上型电脑、笔记本电脑、个人数字助理等)。远端计算机610包含非易失性存储器(只读存储器)612、易失性存储器614(如随机存取存储器)、处理器616、存储介质618(如硬盘驱动器)和接口620。使用者可以通过一个或多个输入设备(如键盘622和鼠标624,但是还可以使用其它输入设备或用其它输入设备替代)提供指令/输入给处理器616。远端计算机610可以通过控制显示器626(如LCD屏)的处理器616来向使用者提供可视显示。
非易失性存储器612和/或存储介质618可以存储具有程序指令的一个或多个文件/模块628,所述程序指令形成要由远端计算机610的处理器616来执行的操作系统。此外,非易失性存储器612和/或易失性存储器614和/或存储介质618可以存储一个或多个文件630(或模块),所述一个或多个文件630(或模块)一起形成一个或多个可以由处理器616执行的软件应用或计算机程序,并且使用者利用所述软件应用或计算机程序可以进行交互以创建、保存、可能还编译以及输出消息脚本。已经创建的消息脚本可以由远端计算机610存储在例如存储介质618上。
由使用者在远端计算机610上创建的消息脚本(或编译后的消息脚本)可以通过多种方式被传递/传送给打印机650。例如,接口620可以包括USB端口632,通过该USB端口632,处理器616可以将(编译后的)消息脚本存储/保存到USB存储器件633上。USB存储器件633然后可以被用来将消息脚本加载到打印机650上。此外,或者可替选地,接口620可以包括网络端口634,通过该网络端口634,处理器616可以通过网络635(如因特网、局域网、广域网、城域网等)将数据(包括(编译后的)消息脚本)传送给打印机650。此外,或者可替选地,接口620可以包括串行接口636,通过该串行接口636,处理器可以通过串行通信链路(如RS232链路)将(编译后的)消息脚本传送给打印机650。但是可以理解,远端计算机610可以通过任何适当的方法将消息脚本传送给打印机650,该方法可以是无线或有线的,并且可以包括或者不包括使用额外的存储介质。
打印机650包括接口652、处理器654、非易失性存储器和/或存储介质656(如只读存储器和/或硬盘驱动器)以及易失性存储器658(如随机存取存储器)。
接口652提供适当的机制用于从远端计算机610接收(编译后的)消息脚本。例如,如果消息脚本要通过USB存储器件633被传送到打印机650,则接口652包括USB端口660,通过该USB端口660,处理器654可以从USB存储器件633存取消息脚本并将该消息脚本存储到易失性存储器658和/或存储介质656中。此外和/或可替选地,如果消息脚本要通过网络635传送给打印机650,则接口652包括网络端口662,通过该网络端口662,处理器654可以通过网络635访问消息脚本并将该消息脚本存储到易失性存储器658和/或存储介质656中。此外和/或可替选地,如果消息脚本要通过串行通信链路传送给打印机650,则接口652包括串行通信端口664,通过该串行通信端口664,处理器可以访问消息脚本并将该消息脚本存储到易失性存储器658和/或存储介质656中。如同该远端计算机610那样,可以理解的是,打印机650可以通过任何适当的方法接收消息脚本,该方法可以是无线或有线的,并且可以包括或不包括使用额外的存储介质。
非易失性存储器和/或存储介质656可以存储具有程序指令的一个或多个文件/模块666,所述程序指令形成待由打印机650的处理器654执行的操作系统。此外,非易失性存储器和/或存储介质656和/或易失性存储器658可以存储一个或多个文件668(或模块),所述一个或多个文件668(或模块)一起形成一个或多个可以通过处理器654执行的软件应用或计算机程序,并且所述一个或多个文件668(或模块):(i)允许打印机650的使用者选择及合并消息脚本和为编写脚本的消息以形成要用于打印过程的输出消息;以及(ii)执行编译后的消息脚本或解释未编译的消息脚本,以产生用于输出消息的最终内容/数据,即确定/计算最终打印消息的动态字段的值。这样,打印机650可以包括:输入机构672(如键盘),使用者通过该输入机构672可以与打印机650交互并提供输入(如消息选择)给处理器654;以及显示器670(如LCD屏),用于可视地向使用者提供信息(如消息的表示或消息脚本的列表)。例如通过使用触摸屏可以合并显示器670和输入机构672。
打印机650还包括时钟674(如实时时钟),处理器654在处理消息脚本时可以使用该时钟以确定信息(如当前时间和日期),即,处理器654在执行消息脚本时可以使用时钟674的输出来确定打印消息的动态字段。
此外,为了实际执行打印,打印机650包括打印机引擎676和打印头678。打印机引擎676从处理器654接收消息数据(产生的打印消息),用于在物品上打印,并且响应于该消息数据,控制打印头678来实际进行打印。
最后,打印机650可以包括(例如作为接口652的一部分)用于接收其它外部输入/激励的输入端680。例如,模块668可以是用于所有打印机650(不管应用或消费者)的通用模块,因此,为定制用于特定应用(例如特定消费者)的打印,可以通过输入端680将另外的数据输入到打印机650,由处理器654用于产生专用于该应用/消费者的消息。此外,或者可替选地,输入端680可以从打印机650外部的器件接收数据,使得处理器654可以根据接收到的数据(例如,通过将接收到的数据插入输出打印消息中)来调节待打印的消息数据。这样的器件的示例包括一个或多个传感器(未示出),所述传感器可以监视打印过程或一些其它过程(如,用于传送带506的监视器或检测未标记物品504的具体类型的传感器,由此允许消息脚本将该物品504的类型指示插入到打印消息内容中)。该器件可以包括检测或确定物品504的一个或多个属性或特性的传感器。例如,重量秤(未示出)可以被设置用于例如通过输入端680的RS232接口提供重量值,由此允许消息脚本将物品504的重量插入到打印消息中用于打印在物品504上。作为另一个示例,可以在输入端680处从传送带机构506或从产品线(未示出)上的开关装置接收数据,然后该数据可以由消息脚本用于产生具有追踪和/或分类信息的打印消息,由此允许标记后的物品510被分类或追踪。输入端680可以具有其自己的存储器(未示出,但例如可以被实现为移位寄存器,外部器件可以将数据插入到该移位寄存器中,并且处理器654可以从该移位寄存器获取数据)或者可以使用易失性存储器658。
图7是示出了根据本发明的实施例在产生消息脚本时在远端计算机610执行的处理700的流程图。该处理700通过由远端计算机610的处理器616执行一个或多个模块630的来进行。远端计算机610的使用者(操作者)还例如通过键盘622和鼠标624为该处理700提供输入,并且通过显示器626向使用者提供该处理的可视显示。
处理700从步骤S702开始,在该步骤中启动脚本生成(PC工具)应用程序,即处理器616执行一个或多个模块630以运行脚本生成应用程序。在步骤S704中,处理器616向使用者提供用户接口,其显示在显示器626上。
在步骤S706,确定使用者是否希望创建新的消息脚本,或加载/打开现有的消息脚本。如果使用者希望创建新的消息脚本,则在步骤S708创建空白脚本,使用者然后可以在步骤S710对该空白脚本进行修改(或编辑)。脚本生成应用程序例如可以提供文本编辑器型环境,在该环境中使用者可以添加、删除、插入修改文本和/或字符以形成消息脚本。
可替选地,如果使用者希望加载/打开现有消息脚本(例如,已经保存在存储介质618上的消息脚本),则该使用者控制脚本生成应用程序以选择需要的消息脚本(在步骤S712)。然后在步骤S714,脚本生成应用程序打开并验证所选文件/脚本(例如,检查该文件确实是消息脚本且该文件为正确的格式,以及检查该消息脚本的版本与脚本生成应用程序的版本兼容)。如果在步骤717确定该消息脚本无效,则处理继续进到步骤S718,在该步骤中,在返回到步骤S712之前,脚本生成应用程序向使用者显示错误消息。可替选地,如果确定消息脚本有效,则处理继续进到步骤S710,在该步骤中使用者可以修改(或编辑)所加载的消息脚本。
当使用者在步骤S710完成对消息脚本的修改时(如果实际需要修改的话),则处理继续进到步骤S720,在该步骤中,脚本生成应用程序使得处理器616对消息脚本进行编译以形成编译后的消息脚本。
在步骤S722,如果确定编译不成功(例如,如果在消息脚本中存在语法错误或如果缺少消息脚本所需的元素),则处理返回到步骤S710,在该步骤中使用者可以对消息脚本进行编辑使其变得可编译。
可替选地,如果在步骤S722确定编译成功,则在步骤S724继续进行处理,在该步骤中保存编译后的消息脚本。编译后的消息脚本所保存的位置可以由使用者来选择。该位置例如可以在存储介质618上,可以是在网络635上或USB存储器件633上的位置。
然后在步骤S726,使用者可以使用编译后的消息脚本执行测试,以检查编译后的消息脚本确实提供该消息脚本的使用者所希望的功能。在步骤S728,如果该测试表明编译后的消息脚本不符合要求(即,该消息脚本没有提供需要的功能),则处理返回至步骤S710,在该步骤中使用者可以修改该消息脚本以改正其提供的功能性。可替选地,在步骤S728,如果该测试表明编译后的消息脚本符合要求(即,其提供了需要的功能性),则处理继续进到步骤S730,在该步骤中脚本生成应用程序保存该消息脚本(例如,保存在存储介质618上、在网络635上或在USB存储器件633上)。
可以理解,可以按可替选的顺序来进行上述操作,并且可以省去上述步骤中的一些步骤。例如,使用者可以在任何时候而不是仅在处理700结束时保存消息脚本。此外,使用者可以省去测试步骤S726和S728。
此外,在打印机650将接收消息脚本(具有人可读的格式)而不是编译后的消息脚本(具有可机读的格式)的实施例中,打印机650被设置成运行/执行解释程序以提供消息脚本的运行时解释,于是处理700可以省去步骤S720、S722和S724。
图8是示出了根据本发明的实施例在使用消息脚本时在打印机上执行的处理800的流程图。该处理800通过打印机650中执行一个或多个模块668的处理器654来执行。打印机650的使用者(操作者)还例如通过输入机构672来为处理800提供输入,并且通过显示器670向使用者提供所述处理的可视显示。
打印机650可以将一个或多个消息存储/保存在其非易失性存储器和/或存储介质656中(参见稍后的步骤S830)。因此,在步骤S802,使用者选择是否创建新的消息或是否使用存储在非易失性存储器和/或存储介质656中的现有消息(处于其当前形式或修改后的形式)。
如果使用者选择使用现有消息,则处理继续进到步骤S804,在该步骤中使用者选择使用现有的消息。例如,可以在显示器670上向使用者显示现有的存储消息的列表,并且该使用者然后可以(例如通过使用键盘672)相应地选择所述存储消息之一。然后在步骤S806,使用者选择是否以所选消息的当前形式来使用该消息,或者是否在使用所选消息之前对所该消息进行修改。
如果在步骤S802使用者选择创建新的消息,或者如果在步骤S806使用者选择修改所选的现有消息,则处理继续进到步骤S808。要被打印到未标记的物品504上的消息包括一个或多个消息元素。一些消息元素的内容可以预先确定(例如,标志、图像、预先确定的文本、预先确定的空白间隔、代码编号等)——它们的内容不在打印时(即,当进行打印操作时)或运行时确定。一些消息元素的内容可以在打印时或运行时确定,但是不使用消息脚本(例如,简单的元素如时钟、计数器或条形码)。这些消息元素的类型都被称为非脚本的消息元素。相反地,其它消息元素(脚本化消息元素)的内容通过执行相关的编译后的消息脚本(或未编译的消息脚本的解释)来确定,使得它们的内容在打印时或运行时确定(参见步骤S836),即,在消息被施加到物品上时确定脚本化消息元素的动态字段的值。在步骤S808,使用者确定是否从消息中删除消息元素,是否将非脚本化消息元素添加到消息中,或者是否将脚本化消息元素添加到消息。
如果使用者选择从消息中删除消息元素,则在步骤S810继续进行处理,在该步骤中处理器656允许使用者选择特定的消息元素以将其从消息中删去。在步骤S812,使用者选择消息元素,然后在步骤S814,所选择的消息元素被从消息中删去,即该消息元素不再构成该消息的一部分。
如果使用者选择将非脚本化的消息元素添加到消息中,则在步骤S816继续进行处理,在该步骤中处理器656向使用者显示非脚本化的消息元素的列表,并允许用户选择特定的非脚本化消息元素以将其添加到消息中。该列表可以包括关于非脚本化消息元素的引用或名称,或者可替选地,可以包括非脚本化消息元素的显示/表示。在步骤S818,使用者选择非脚本化的消息元素,然后在步骤S820,所选择的非脚本化消息元素被添加到消息中。这可以仅涉及将所选的非脚本化消息元素添加到文本串的末端。可替选地,这可以包括:使用者选择文本串中的位置,在该位置处插入/添加所选的非脚本化消息元素。可替选地,该消息可以是非脚本化消息元素所处的二维图像,在这种情况下,使用者可以选择放置非脚本化消息元素的位置。
如果使用者选择将脚本化消息元素添加到消息中,则在步骤S822继续进行处理,在该步骤中,处理器656向使用者显示脚本化消息元素的列表,并允许用户选择特定的脚本化消息元素以将其添加到消息中。该列表可以包括关于脚本化消息元素的引用或名称,或者可替选地,可以包括脚本化消息元素的显示/表示。这些显示/表示可以是预先确定的示例表示,因为脚本化消息元素的实际内容在响应于打印触发(即在打印时或运行时)而实际执行打印操作时被确定。在步骤S824,使用者选择脚本化的消息元素,然后在步骤S826,所选择的脚本化消息元素被添加到消息中。这可以仅包括:将所选的脚本化消息元素添加到文本串的末端。可替选地,这可以包括:使用者选择文本串中用于插入/添加所选的脚本化消息元素的位置。可替选地,该消息可以是二维图像,脚本化消息元素可以位于该二维图像中,在这种情况下,使用者可以选择将放置脚本化消息元素的位置。
在步骤S828,确定使用者是否已完成对消息的编辑。如果使用者还未完成对消息的编辑,则处理返回至步骤S808;否则,如果使用者已经完成对消息的编辑,则在步骤S830继续进行处理,在该步骤中消息可以被存储(或保存)到打印机650的存储介质656中。这是一个可选步骤,并且可以理解的是,可以在所述处理800的不同阶段(例如在以上所提及的编辑步骤中)执行该步骤。保存消息使得该消息可以在将来以其现有形式或作为后续修改的模板被再次使用。
接下来,在步骤S832,处理器654将消息设为“在线”,即打印机650准备打印该消息。如果使用者在步骤S806选择不修改所选的现有消息,也可以达到步骤S832。
在步骤S834,处理器654等待打印触发850,例如表明未标记物品504位于打印机650可以将消息打印到该物品504上的位置的信号。当接收到打印触发850时,处理器654处理该消息及其消息元素以产生消息内容(在步骤S836)。具体来说,处理器654执行脚本化消息元素的编译后的消息脚本,以在打印时或运行时确定该脚本化消息元素的内容,即,计算打印消息的动态字段的值。可替选地,如果处理器654正在执行解释程序并且消息脚本未被编译,则处理器654解释脚本化消息元素的消息脚本,以在打印时或运行时确定脚本化消息元素的内容,即,计算打印消息的动态字段的值。稍后给出这种情况的示例,但是它们可以包括:使用时钟674的输出以计算基于时间/日期的动态字段的值或通过输入端680从打印机650外部的源接收的数据(例如,通过将重量值插入到消息内容中,或将产品类型数据插入到消息内容中或将种类和/或追踪数据插入到消息内容中来设置打印消息的动态字段)。
当进行了该步骤后,关于脚本化消息元素所确定的内容以及任何非脚本化消息元素的预先确定的内容形成要被打印的打印消息。然后,在步骤S838,打印消息被打印到物品504上。然后处理返回至步骤S834,在该步骤中处理器654等待关于下一次打印的打印触发850。
现在将对用于使用PC工具来形成脚本的一组规则进行描述。还引用本说明书第30-32页出现的术语表。
文本字符
1.本说明书中描述的所有文本串和字符都是统一代码(Unicode)。
定义脚本描述信息
2.使用脚本语句(Script Statement)来定义预览输出(Preview Output)。该预览输出是一串至多64个的文本字符。该预览输出字符串是脚本头部的一部分并且是将由经编译脚本(Compiled Script)输出的示例。该字段的目的是提供一种用于在不必执行脚本的情况下观看该脚本的期望输出的表示的手段。
3.使用脚本语句来定义脚本描述(Script Description)。该脚本描述是一串至多64个的文本字符。该字段的目的是提供用于描述对消息中脚本的引用的手段。
4.脚本具有名称(Name)。脚本名称是一串至多15个的字符。该名称的目的是提供引用消息中的脚本或选择脚本以将其包含到消息中的手段。
定义变量和常量
5.使用脚本语句来定义用户变量。该变量可以包含整数值或一串文本字符。
6.数值是带符号的32位整数,限制在范围-2147483648到+2147483647中。
7.文本变量必须在声明中定义长度,或者该长度默认为4。文本变量的最大长度是128。
8.在变量被使用之前语句需要定义该变量的类型。
9.使用语句来定义在脚本的整个执行过程中具有同一常量数据的值。
10.在经编译的脚本的执行之间保持文本或数值变量的值。
11.变量也可以被定义为永久变量或非永久变量,即该变量是否能在打印机关机时继续存在。
定义给予消息字段的输出的格式
12.使用语句来定义给予消息字段的输出的最大长度。如果未定义,则给予消息字段的输出可以是任意长度。
13.使用语句来定义消息字段是否被填充到其最大长度。如果输出字段的最大长度未被定义,则可以忽略该命令。
14.如果将填充消息字段,则使用语句来定义填充字符。该字符然后被用来填充输出的左侧,例如,如果输出结果是27,最大字段长度为4,并且填充字符为“0”,则利用显示为0027的字段来打印该消息。
变量的操作
15.语句应当允许增加相同类型的两个变量。
16.语句应当允许增加相同类型的变量和常量数据。
日期/时间数据
17.函数可以返回自1970年1月1日以来的以秒计的系统时间。
18.函数可以返回当前日期和定义的开始日期之间的天数。操作者可以定义开始日期。默认值是1970年1月1日。
19.日期/时间函数(Date/Time Function)返回当前的日期和时间。
20.可以相日期增加固定偏移或者从日期中减去固定偏移。该偏移可以以年、月、日、小时、分钟或秒来表示。
21.日期/时间函数可以返回当前时间中的秒数,即hh:mm:ss中的ss部分。
22.日期/时间函数可以返回当前时间中的分钟数,即hh:mm:ss中的mm部分。
23.日期/时间函数可以返回当前时间中的小时数,即hh:mm:ss中的hh部分。
24.日期/时间函数可以返回当前日期中的日数,即dd/mm/yyyy中的dd部分。
25.日期/时间函数可以返回当前日期中的月数,即dd/mm/yyyy中的mm部分。
26.日期/时间函数可以返回当前日期中的年数,即dd/mm/yyyy中的yy部分。这是完整的年份值,例如2007。
27.函数可以返回一星期中数值形式的当前日。
28.操作者(PC工具或打印机操作者)可以规定一星期中的哪一天是该星期的第一天(默认设置为星期天是一星期的第一天)。
29.操作者可以规定一天中的什么时间是一天与下一天之间的过度时间(默认设置为00:00——午夜)。
30.函数可以返回一年中数值形式的当前星期。
31.操作者可以规定哪一天是一年中第一星期的开始(默认设置为1月1日)。
32.操作者可以规定一天中的什么时间是从一个星期到下一个星期的过度(默认设置为00:00——午夜)。
33.函数可以返回一年中数值形式的当前日,即1月1日为1,1月2日为2等等。
34.操作者可以定义针对3月1日的日编号(3月1日之后所有后续的日子将返回距离该值的日编号偏移,例如,如果3月1日=60,则3月2日=61等等)——默认是60。
35.操作者可以定义针对2月29日的日编号——该设置应该不影响其它日期返回的日编号——默认是366。
36.函数可以针对给定的数值变量值返回关于合适的“日名称”的文本。该数值变量值必须在1和7之间。操作者可以设置至多16个字符用于七个日名称中的每一个名称。默认是这些值均为空——无文本。
37.函数可以针对给定的数值变量值返回关于合适的“月名称”的文本。该数值变量值必须在1和12之间。操作者可以设置至多16个字符用于十二个月名称中的每一个月名称。默认是这些值均为空——无文本。
数学和变量类型
38.操作者可用语句来进行数值变量的算术运算以及数值形式的系统设置。这些包括加、减、乘、除。
39.加/减操作关于带符号的整数来进行。
40.乘和除不处理余数,且仅返回整数数字。
41.数学运算仅对数值变量进行。
42.数值输出可以使用Roman、Arabic或者Farsi数字字符来表示。
逻辑和执行顺序运算
43.操作者可用语句来检查条件,并且如果条件满足则跳到脚本中的某个地方。存在>(大于)、<(小于)、<=(小于或等于)、>=(大于或等于)、<>(不等于)以及=(等于)。这些比较可以用于文本或数值变量,但必须对相同类型进行比较。
44.可使用语句向序号添加数字或字母串。
45.语句应该允许设置消息字段的内容。当这完成时,将终止执行经编译的脚本。
46.使用文本或数值变量来设置消息字段的内容。如果使用数值变量,则数值在字段中显示为文本形式。
47.跳转语句可用于将当前执行位置改变为规定的位置。
48.允许定义跳转位置。
49.提供异常语句。对于由脚本处理器检测到的执行错误,该异常语句后的语句被执行。
50.异常标签/语句后的语句不能包含跳转语句。
51.如果在脚本处理器跳转到异常标签之后发生执行错误,则该脚本将终止。产生适当的执行错误告警。
操纵包含文本的变量
52.可用语句来规定连续字符串的格式。
53.语句应该允许操作者交换文本变量中的两个字符。
54.操作者应该具有将字符串或数字颠倒的能力,即由1234到4321或者由“abcd”到“dcba”。
脚本告警
55.语句应该引起产生脚本告警。脚本告警是对脚本执行过程中发生问题的应用打上标记的方法。
注释和描述
56.操作者可以将注释加入脚本中。
57.脚本与描述、创建日期和外观表示(预览输出)一起保存。
现在将对示出脚本化方法的结构的模型进行描述。
参考图2,该附图描述了在脚本循环(iteration)过程中的数据流。脚本是以每次一个字节来处理的。解析脚本,并提取、查找该脚本中的各种控制代码(指令),并且获取和处理与控制代码相关的参数(固定常数、用户变量和系统变量)以执行操作。
图3中更加详细地示出了处理脚本的方式,该附图示出了用于执行图2所示的顺序的各种类(CScripting类)和元函数(GetSystem Var,GetUser Var等)。
现在参考图4,该附图示出了CVariable类的结构——其描述了可以对CVariable对象执行的各种动作:ChangeType允许该对象从字符串变为整数值或者相反,CopyVariable允许拷贝对象以创建该对象的另一个实例,GetType返回变量的类型——字符串或整数,Set(wchar*)将变量设置为统一代码串,Set(long)将变量设置为数值。用于脚本语言的指令组被如下列出。
  VAR
设置可以用于对其执行操作的用户变量,例如加或减运算。变量还被用来存储系统变量。这些变量可以被赋予任何名称,而在它们前面不能有%。变量还可以在创建时被初始化。
示例1
  VAR    MyVariableA,100          //Create User Variable 1VAR    MyVariableB,200          //Create User Variable 2VAR    MyVariableC               //Create User Variable 3VAR    MyVariableD               //Create User Variable 4SET    MyVariabl eC,1           //Set the Value of VariableCSET    MyVariableD,%DayAdvance //Get the SystemDayAdvanceADD    VariableC,VariableD      //Add together
  SET
Set(“设置”)用于将值设置给变量或系统变量。Set总是通过利用第二参数来设置第一变量来工作。
第二参数可以是:
其它用户变量
系统变量
数字
字符串
参见示例1
  DATETIME
该指令返回当前日期和时间。注意:在进行任何格式设置之前,该日期和时间的格式尚未被设置且为内部系统日期时间。为了改变日期和时间以进行偏移,在该指令被调用之前必须设置系统变量。
示例2
  VAR       MyTime            //Create a User variableDATETIME  MyTime            //Retrieve the current Date and TimeVAR       AdvancedTime      //Create another User VariableSET       %MonthAdvance,1 //Tell system to add 1monthSET       %DayAdvance,1   //Tell system to add 1dayDATETIME  MyTime            //e trieve the Offset Date and Time
  RETURN
Return(“返回”)会向系统指出已完成当前脚本,并且现在可以结束。应该向Return传递变量或值,以返回系统以便打印。
示例3
  VAR    MyVariable    //CreateUser VariableSET    MyVariable,10//Set it to 10RETURN MyVariable    //returns  10,which is printed
  GETDAYNUMBER
该指令返回一年中的日编号。1月1日是第0天,12月31日是第364天。但是闰年将导致系统取决于系统变量的设置而表现为不同的方式。
%March1对其进行设置以告诉系统3月1日的日编号是060或061
%FEB29对其进行设置以告诉系统2月29日的日编号是366或060。
在这之后调用GETDAYNUMBER将返回所需的正确日子。
  GETWEEKNO,GETDOW,GETDAYS
这些函数将返回日期信息。
GETWEEKNO返回日期所在的星期的编号。星期开始的时间可以使用系统变量%WEEKSTARTTIME来修改。
GETDOW返回星期中的日子。
GETDAYS返回自一个日期以来的天数。以%StartDate设置。
示例4
  VAR         WeekNoGETWEEKNO   WEEKNOVAR         DayOfWee kSET         %WEEKSTARTTIME,″05:30″//New Week Starts  @5,30am on SundayGETDOW      WeekNoVAR         DaysSET         %StartDate,″01:01:2005″GETDAYS     Days
  ADD,SUB,DIV,MUL
这些指令允许使用者对用户变量(User Variable)执行算术运算。
  VAR    MyVariable,0ADD    MyVariable,5SUB    MyVariable,2MUL    MyVariable,5DIV    MyVariable,3
  JLE,JLT,JEQ,JGE,JGT
脚本中的分支和跳转要求该脚本能够对值进行检查,如果必要的话,分支到该脚本的另一部分。
JLE-小于或等于时跳转
JLT-小于时跳转
JEQ-等于时跳转
JGT-大于时跳转
JGE-大于或等于时跳转
这些操作总是将第一参数与第二参数进行比较。最后的参数是脚本文件中的跳转位置。
示例5
  JGT    5,4,JUMPLOCATION    //jump if 5 is greater than 4JGE    5,4,JUMPLOCATION    //jump if 5is greater than orequalto 4JLT    5,4,JUMPLOCATION    //jump if 5is less than 4JLE    5,4,JUMPLOCATION    //jump if 5is 1ess than or equal to 4JEQ    5,4,JUMPLOCATION    //jumpifvalues are the sameJUMPLOCATION://we jump hereif the compareis true.
  FORMATSERIAL,SEQADD
序号可以由数字或字母来构成。若干变量在用于建立系统之前必须被设置。
示例6
  SET    SequenceJump,″BANZAI″SET    SequenceMax,″ZZZZZZ″SET    S equenceOff set,0SET    SequenceStart ,0SET    %SYSTEMZEROchar,″A″//Tell systemA=0SET    %SYSTEMBASE,26       //putin Base26(A-Z)RESTART:SET             SavedSequence,SequenceOffsetSEQADD          SequenctOffset,SequenceJumpFORMATSERIAL    SavedSequenceRETURN          SavedSequence
*注意:这仅是代码片段。关于全部代码,参见以下(示例:打印彩票)。
以上示例使用2个命令以建立序列号:SEQADD和FORMATSERIAL。
SEQADD将SequenceJump中的值加到当前计数器上。
例如:
%SequenceJump=AA AAAB
AAAAAA  +%SequenceJump    =AAAAAB
AAAAAB  +%SequenceJump    =AAAAAC
或者
%SequenceJump=BBBBBB
AAAAAA    +%SequenceJump    =BBBBBB
BBBBBB    +%SequenceJump    =CCCCCC
  SWAP
Swap允许使用者操纵输出中的字符。该指令可在获取任何时间或序号之后被调用。
示例7
  VAR    MyVarSET    MyVar,″1234″SWAP   MyVar,2,3 //MyVar=″1324″SWAP   MyVar ,1,4//MyVar=″4321″
SYSTEM
System允许脚本发送消息给主控制器,以停止打印或其它动作。
示例8
  SYSTEM  Stop        //Stops the printer
示例
以下列表是使用该脚本方法可以解决的典型场景的示例。
  1:Example:Month Advance(with Date Correction)
偏移的月份选项仅用来将月份向前推进。其在计算出日、小时和分钟偏移之后但在加上年之前计算。在所有字段被加上偏移之后,如果月份中的日大于该月份中的天数,则该月份的日被设置成该月的最后一天。例如:
日期:2007年1月30日+1个月=2007年2月28日
日期:2007年1月31日+1个月=2007年2月28日
  START:VAR       TimeDateSET       %MonthAdvance,1DATETIME  TimeDateRETURN    TimeDateEND:
  2:Example:Get Day Number with Leap Day correction
用于表示闰日格式应该例如是什么的方法。将改变儒略日使得在非闰年和闰年之间的天数一致,2月29日作为第60天,而3月1日作为第61天。值:
注意:2月28日总是059
2月29日=第366天3月1日=第060天
2月29日=第366天3月1日=第061天
2月29日=第060天3月1日=第061天——省略非闰060
  START:VAR          DayNoSET          %March1,0x60SET          %FEB29,0x366GETDAYNUMBER DayNoRETU RN      DayNoEND;
或者可替选地,
  START.:VAR           DayNoSET           %March1,0x61SET           %FEB29,0x60GETDAYNUMBER  DayNoRETURN        DayNoEND:
  3:Example:GET Date with-Next Day Changeover Time
例如,下一天直到05:30am才有效。
  START:VAR       TimeDateSET       %ChangeOverTime,″05:30″DATETIME  TimeDateRETURN    TimeDateEND:
  4:Example:No Limitonnumberofdays tooffset
  START:VAR      TimeDateSET      %DayAdvance,365DATETIME TimeDateRETURN   TimeDateEND:
  5:Example:Alpha Mapping
月、日、小时、分钟、秒
可以使用查找字符表:
第0月(一月)=“E”
第1月(二月)=“f”
第2月(三月)=“M”
第30天=“U”
第1小时1=“k”
  START:VAR         %AlphaMonths,″abcdefghij kl″VAR         %AlphaDays,″abcdefghij klmnopqrstuvwxyz12345″VAR         TimeDateSET         %DayAdvance,365GETDATETIME TimeDateRETURN      TimeDateEND:
  6:Example:Freshness Code
打印代表自X日期以来的月份的值的数。
例如:起始日期=2000年1月
2000年1月=00
2000年7月=07
2001年1月=12
  START:VAR       DaysSET       %StartDate,″01012007″GETDAYS   DaysRETURN    DaysEND:
  7:Example:Sequence Manipulation-Serial Number Rollover
如果序号翻转,则忽略打印重启之前的X次打印。
  START:VAR       SeqID,0VAR       SEQDelay,10VAR       SeqMax,0SET       %STARTPOINT,RESTARTRETURN    SeqID                      //Returns  0RESTART:ADD       SeqID,1                   //add 1to sequenceJGT       SeqID,SeqMax,FINISHEDRETURN    SeqID                      //returns 1++++FINISHED:SUB       SeqDelay,1JEQ       SeqDelay,0,STARTSET       %SYSTEMIGNORE,1RETURN    0
  8:Example:Retard Time
  START:VAR       TIMESET       %TIMERETARD ,″10:30″//go back 10hrs 30minutesDATETIME  TimeDateRETURN    TimeDateEND:
  9:Example:Get Week Number-starting at hh:mm on Sunday
星期数以日&时间改变
用于指示星期数何时改变。
例如:星期天06:00
  START:VAR       WeekSET%     WEEKSTARTDAY,″0″SET       %WEEKSTARTTIME,″05:30″GETWEEKNO WeekEND:
  10:Example:Set Next Friday as Offset Day
将偏移设置为到下一个X日。
例如:将偏移设置到下一个星期五
Tues11->Fri14th(星期二11号->星期五14号)
Fri 14th->Fri 14th(星期五14号->星期五14号)
Sat 15th->Fri 21st  (星期六15号->星期五21号)
  START:VAR          TimeDateVAR          DayVAR          TempSET          Temp,5                //Day 5FridayGETDOW       DayGETDATETIME  TimeDateJEQ          Day,Temp,SAMEDAYJLT          Day,Temp,NOTTHEREYETSUB          Day,Temp              //6-5=1(sub 1days)ADD          Day,7                 //tonext weekSET          %DayAdvance,DayGETDATETIME  TimeDateRETURN       TimeDateNOTTHEREYET:SUB          Temp,Day              //5-2=3(add 3days)SET          %DayAdvance,TempGETDATETIME  TimeDateRETURN       TimeDateSAMEDAY:RETURN       TimeDateEND;
  11:Example:Swap Characters
能够交换并且特征在于给定字符串。
“1234”Swap 2,3=“1324”
  START:VAR        TIMEDATETIME   TimeDateSWAP       TimeData,2,3RETURN     TimeDateEND:
  12:Random Print Sequence Example:Print Lottery Tickets
允许所述打印从000到XXXXXXXX随机打印。
保证每个数中只有一个被打印。
  START:VAR             SequenceStartVAR             SequenceJumpVAR             SequenceOffsetVAR             SequenceMaxVAR             SavedSequenceSET             SequenceJump,″BANZAI″SET             SequenceMax,″ZZZZZZ″SET             SequenceOffset,0SET             SequenceStart,0SET             %SYSTEMZEROchar,″A″   //Tell system A =0SET             %SYSTEMBASE,26          //put in Base 26(A-Z)RESTART:SET             SavedSequence,SequenceOffset//Now Calculate next sequence number.SEQADD          SequenctOffset,SequenceJumpJGT             SequenctOffset,SequenceMax,RESTARTCOUNTERSET             %StartPoint,RESTARTCOUNTERFORMATSERIAL    SavedSequenceRETURN          SavedSequenceRESTARTCOUNTER:ADD             SequenceStart,1JGE             SequenceStart,SequenceJump,FINISHEDSET             SequenceOffset,SequenceStartSET             %StartPoint,RESTARTCOUNTERFORMATSERIAL    SavedSequenceRETURN          SavedSequenceFINISHED:SYSTEM          StopEND:
虽然以上所示的示例依靠利用打印机时钟的变量触发,但是可以想到本发明方法还可以在脚本管理中包括外部触发。
因此可以理解,至少在所描述的工作实施例的情况下,本发明提供具有以下关键特征的设施:
i)脚本在PC工具上创建并且仅在该PC工具上是人可读的。现有脚本可以被加载到该工具中以便进一步编辑或查看。PC工具不能读取编译后的脚本。编译后的脚本不能被转换回人可读的形式。
ii)脚本具有强制语句来定义脚本描述信息。如果缺少这些语句,则PC工具不为脚本生成编译后的脚本。
iii)PC工具提供利用打印机配置更新菜单、通过USB钥匙可以被传递给打印机的编译后的脚本。打印机仅在USB钥匙的特定位置寻找特定的文件扩展名。打印机对这些编译后的脚本进行检查以保证它们是有效的,并且该打印机不会传递未通过这些检查的编译后的脚本。
iv)打印机的编辑器允许选择编译后的脚本以将其包含在消息中。打印机不会提供查看编译后的脚本中的语句的能力。
v)在用于插入编译后的脚本的编辑器选择屏中,可用的经编译的脚本的列表仅显示包含有效脚本描述信息的经编译的脚本。
vi)经编译的脚本不在消息中传送。消息包含经编译的脚本字段,所述字段包含对于特定的编译后脚本的引用。匹配的编译后脚本必须在打印机之间传递(利用消息)以允许该消息可在这些打印机上使用。
vii)生成一个软件库文件,包含脚本编译器和脚本处理器两者。该库文件被称为脚本引擎。这种库在将来可以由其它应用程序来使用。
术语表
  术语   定义
  脚本   脚本是基于短文本的文件,通过PC工具对其进行编辑和编译,以产生编译后的脚本。
  CIJ   连续喷墨
  经编译的脚本   脚本文件被转换成可机读形式,该形式可以被打印机中的处理器使用。该转换后的格式被称为经编译的脚本。
  DOD   按需供墨
  脚本描述信息   当脚本被编译后时,经编译的脚本会被填充有描述信息,打印机可以使用该描述信息以区分经编译的脚本。该脚本描述信息包括:预览输出;编译日期;脚本描述;脚本
  术语   定义
  编译器修订号
  预览输出   这是由脚本的作者提供的一系列文本字符。它显示来自脚本的输出的示例。
  编译日期   PC工具产生经编译的脚本的日期。
  脚本描述   这是在选择经编译的脚本时显示在编辑器的拣选列表中的一系列文本字符。
  脚本编译器版本号   产生经编译的脚本的脚本编译器具有唯一的版本号。为了将来验证,随着脚本编译器升级以提供更多的功能,打印机将能够检查其自身的软件是否能支持编译后的脚本中所需的功能。
  脚本引用   编辑器中的消息或者包含编译后的脚本字段的消息存储器未将编译后的脚本嵌入消息中。该消息字段包含对于编译后的脚本的引用。该引用是编译后的脚本的文件名。
  死锁   死锁是编译后的脚本无法在限定的时间段内完成执行的情况。编译后的脚本中的逻辑存在错误,该错误意味着执行不会终止。
  语句   语句是脚本中的文本描述,指示待由打印机的脚本处理器执行的单一操作。
  函数   脚本的作者能够利用脚本中提供的语句执行逻辑和算术运算。存在一些被公共使用因而作者在脚本语言中提供的运算。这些运算被称为函数并将返回定义的值,例如,存在返回当前打印机时间的函数。
  变量   在脚本中可以创建对象,对象可以在脚本的执行过程中被操作。一旦对象被创建后,随着从一个语句到下一个语句,可记住内容,可以在这些语句中被进行操作,可以基于这些对象的内容进行逻辑运算。这些对象被称为变量。例如,可以创建代表计数器的、包含数字的变量。最初该变量被赋予值1。脚本
  中的语句可以操纵该变量的内容,例如使其增加。
  术语   定义
  系统设置   这些是通过脚本函数使用的值。它们的内容通过其在相关函数中的使用来定义。作者可以使用或操纵这些系统设置的内容。
  脚本编译器   这是软件的一部分,将人可读脚本转换成“编译后”的格式,该格式可由打印机中的处理器理解,即,它产生编译后的脚本。
  脚本执行   这是遍历编译后的脚本中的每个操作以及执行该操作所需的必要动作的行为。执行的结果将是:在所述操作之一中出现错误;该执行无法终止;操作产生要被放置到消息字段中的输出;脚本结束而没有填充消息字段。
  脚本处理器   这是执行编译后的脚本的子部件。
  脚本引擎   用于脚本编译器和脚本处理器的软件被创建为用于多个应用的软件库。这个库被称为脚本引擎。
  文本字符   代表字母表中的字母、数字或特殊字符(如+、-、@等)的单个符号。可用的文本字符从字符的统一编码定义中获得。

Claims (29)

1.一种标记装置,用于将消息施加至物品,该装置包括:
处理器,被设置成通过执行一个或多个消息脚本以计算打印消息的动态字段来产生打印消息,所述一个或多个消息脚本使用脚本语言来形成;以及
用于将打印消息施加至物品的器件。
2.根据权利要求1所述的装置,其中,所述装置包括输入端,用于使得使用者能够选择一个或多个待由处理器执行以产生打印消息的消息脚本。
3.根据以上权利要求中的任一权利要求所述的装置,其中,所述装置被设置成从所述装置外部的源接收所述一个或多个消息脚本。
4.根据以上权利要求中的任一权利要求所述的装置,其中,所述一个或多个消息脚本中的每一个为可机读格式,处理器被设置成执行所述可机读格式。
5.根据权利要求1到3中的任一权利要求所述的装置,其中,所述一个或多个消息脚本中的每一个具有人可读格式,处理器被设置成通过执行用于解释所述人可读格式的解释程序来执行所述一个或多个消息脚本。
6.根据以上权利要求中的任一权利要求所述的装置,该装置还包括时钟,其中,至少一个消息脚本被设置成使得处理器使用该时钟的输出来计算打印消息的动态字段。
7.根据以上权利要求中的任一权利要求所述的装置,其中,该装置被设置成接收打印触发,并且响应于该打印触发产生打印消息并将该打印消息施加至物品。
8.根据以上权利要求中的任一权利要求所述的装置,其中,所述装置包括用于从所述装置外部的源接收数据的输入端,其中,至少一个消息脚本被设置成使得处理器使用所接收的数据来计算打印消息的动态字段。
9.一种标记装置,用于将消息施加至物品上,该装置包括:
处理器,被设置成通过执行一个或多个消息脚本以计算打印消息的动态字段来产生打印消息,所述一个或多个消息脚本使用脚本语言来形成;
输入端,用于从所述装置外部的源接收数据,其中,至少一个消息脚本被设置成使得处理器使用所接收的数据来计算打印消息的动态字段;以及
用于将打印消息施加至物品的器件。
10.一种系统,包括:
根据权利要求9所述的标记装置;以及
在所述标记装置外部的数据源,并且该数据源被设置成通过所述标记装置的所述输入端向所述标记装置提供数据,用于计算打印消息的动态字段。
11.根据权利要求10所述的系统,其中,数据源包括用于确定物品的一个或多个属性的传感器。
12.一种用于操作装置以将消息施加至物品的方法,该方法包括:
通过执行一个或多个消息脚本以计算打印消息的动态字段来产生打印消息,所述一个或多个消息脚本使用脚本语言来形成;以及
将打印消息施加至物品。
13.根据权利要求12所述的方法,包括使得使用者能够选择待由处理器执行以产生打印消息的一个或多个消息脚本。
14.根据权利要求12或13所述的方法,包括从所述装置外部的源接收一个或多个消息脚本。
15.根据权利要求12到14中任一权利要求所述的方法,其中,所述一个或多个消息脚本中的每一个具有可机读的格式。
16.根据权利要求12到14中任一权利要求所述的方法,其中,所述一个或多个消息脚本中的每一个具有人可读格式,其中,执行所述一个或多个消息脚本包括执行用于解释所述人可读格式的解释程序。
17.根据权利要求12到16中任一权利要求所述的方法,其中,执行一个或多个消息脚本包括使用该装置的时钟的输出来计算打印消息的动态字段。
18.根据权利要求12到17中任一权利要求所述的方法,包括接收打印触发,并且响应于该打印触发,产生打印消息并将该打印消息施加至物品。
19.根据权利要求12到18中任一权利要求所述的方法,包括从所述装置外部的源接收数据,其中,执行一个或多个消息脚本包括使用所接收的数据计算打印消息的动态字段。
20.一种计算机程序,该程序在由处理器执行时执行根据权利要求12到19中任一权利要求所述的方法。
21.一种计算机可读介质,用于存储根据权利要求20所述的计算机程序。
22.一种用于提高标记和/或编码装置的性能的方法,所述方法包括创建待由所述装置采用的消息脚本,所述方法的特征在于包括使用向使用者提供逻辑和字段操作的脚本语言来形成所述消息脚本。
23.根据权利要求22所述的方法,其中,所述脚本语言在所述打印机外部被采用。
24.根据权利要求22或权利要求23所述的方法,其中,所述消息脚本被编译成可机读的形式并被传递给所述标记和/或编码装置的操作系统。
25.根据权利要求22到24中任一权利要求所述的方法,其中,所述消息在远离所述装置的计算机上创建并通过USB钥匙的方式传递。
26.以使用脚本语言形成的消息脚本来被进行编程的标记和/或编码装置。
27.根据权利要求26所述的标记和/或编码装置适于从外部源接收所述消息脚本。
28.根据权利要求26或权利要求27所述的标记和/或编码装置适于接收具有可机读形式的所述消息脚本。
29.根据权利要求26到28中任一权利要求所述的标记和/或编码装置,其中,所述消息脚本包括用于定义脚本描述信息的语句,所述语句可由所述装置识别。
CN2008800226443A 2007-06-30 2008-06-30 对于标记和/或编码的改进或与其相关的改进 Active CN101720458B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0712738.4 2007-06-30
GBGB0712738.4A GB0712738D0 (en) 2007-06-30 2007-06-30 Improvements in or relating to marking and/or coding
PCT/GB2008/002256 WO2009004328A1 (en) 2007-06-30 2008-06-30 Improvements in or relating to marking and/or coding

Publications (2)

Publication Number Publication Date
CN101720458A true CN101720458A (zh) 2010-06-02
CN101720458B CN101720458B (zh) 2013-09-18

Family

ID=38421018

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800226443A Active CN101720458B (zh) 2007-06-30 2008-06-30 对于标记和/或编码的改进或与其相关的改进

Country Status (5)

Country Link
US (1) US20100257541A1 (zh)
EP (1) EP2162819B1 (zh)
CN (1) CN101720458B (zh)
GB (1) GB0712738D0 (zh)
WO (1) WO2009004328A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542381A (zh) * 2021-07-06 2021-10-22 广州小鹏自动驾驶科技有限公司 一种消息帧处理方法和装置
CN114356252A (zh) * 2021-12-27 2022-04-15 金蝶软件(中国)有限公司 动态字段打印方法、系统及相关装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522203B1 (en) * 2009-08-28 2013-08-27 Adobe Systems Incorporated Dynamic script management
GB2478750A (en) * 2010-03-16 2011-09-21 Domino Printing Sciences Plc Configurable marking apparatus
US20130297055A1 (en) * 2012-05-04 2013-11-07 Fei Wang Network-based control method and system for controlling a whole-flow production process
CN105224451B (zh) * 2015-09-07 2018-12-14 百度在线网络技术(北京)有限公司 一种脚本文件的处理方法及系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0814425A3 (en) * 1996-06-18 1999-08-18 SCITEX DIGITAL PRINTING, Inc. Method for creating complex layouts with variable data for high speed printing systems
JP3292672B2 (ja) * 1997-02-19 2002-06-17 株式会社日立製作所 インクジェット記録装置
JP4304899B2 (ja) * 2000-04-28 2009-07-29 セイコーエプソン株式会社 画像処理システムおよび画像処理方法
US7594855B2 (en) * 2002-03-29 2009-09-29 Futurelogic, Inc. Method and apparatus for gaming promotional printer
US20030189727A1 (en) * 2002-04-09 2003-10-09 Nexpress Solutions Llc Method and apparatus for using fields of data to organize variable data print jobs
JP4442562B2 (ja) * 2003-03-27 2010-03-31 セイコーエプソン株式会社 印刷装置および出力装置、出力方法、プログラム
US20050058468A1 (en) * 2003-09-17 2005-03-17 Reynolds Timothy W. Monitoring of receiver type usage in a printing machine
US20060041443A1 (en) * 2004-08-23 2006-02-23 Horvath Charles W Jr Variable data business system and method therefor
US20080165382A1 (en) * 2007-01-05 2008-07-10 Sharp Laboratories Of America, Inc. Systems and methods for variable form printing using removable storage

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113542381A (zh) * 2021-07-06 2021-10-22 广州小鹏自动驾驶科技有限公司 一种消息帧处理方法和装置
CN113542381B (zh) * 2021-07-06 2024-04-19 广州小鹏自动驾驶科技有限公司 一种消息帧处理方法和装置
CN114356252A (zh) * 2021-12-27 2022-04-15 金蝶软件(中国)有限公司 动态字段打印方法、系统及相关装置
CN114356252B (zh) * 2021-12-27 2024-03-19 金蝶软件(中国)有限公司 动态字段打印方法、系统及相关装置

Also Published As

Publication number Publication date
EP2162819B1 (en) 2017-08-09
CN101720458B (zh) 2013-09-18
WO2009004328A1 (en) 2009-01-08
EP2162819A1 (en) 2010-03-17
US20100257541A1 (en) 2010-10-07
GB0712738D0 (en) 2007-08-08

Similar Documents

Publication Publication Date Title
CN101720458B (zh) 对于标记和/或编码的改进或与其相关的改进
Fox An R and S-Plus companion to applied regression
CN1794231B (zh) 具有替换格式的上下文无关的文档部分
Sikos Web standards: mastering HTML5, CSS3, and XML
US8381099B2 (en) Flows for variable-data printing
Bornat Programming from first principles
Sikos Web Standards: Mastering HTML5, CSS3, and XML
Jin et al. Exploring cross-lingual transfer of morphological knowledge in sequence-to-sequence models
Groner et al. JavaScript regular expressions
Bharati et al. Ssf: A common representation scheme for language analysis for language technology infrastructure development
Pichler Extraction of documentation from Fortran 90 source code: An industrial experience
Srivastava Java 9 Regular Expressions
Smith Towards modern literature programming
Wheeler et al. TypeSense: Making sense of type on the computer
Henderson et al. More Basic Sentence Equations: B 4 and B 5
Simon Working with JavaScript
Nickel et al. Setting up a model
Hickson HTML5 (including next generation additions still in development)
Sundnes et al. Computing with Formulas
Priestley et al. Subroutines
Page et al. How Long Is a Piece of String?
Flatt et al. Scribble: The Racket Documentation Tool
Mailhot Implementing Dynamic Cross-Referencing and PDF with PreTEX
TZE WRITING YOUR THESIS WITH LATEX WITH A VERY, VERY, VERY LONG TITLE
Maier LaTeX: Know what you are missing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant