CN102915215B - 控制装置以及控制方法 - Google Patents
控制装置以及控制方法 Download PDFInfo
- Publication number
- CN102915215B CN102915215B CN201210250667.8A CN201210250667A CN102915215B CN 102915215 B CN102915215 B CN 102915215B CN 201210250667 A CN201210250667 A CN 201210250667A CN 102915215 B CN102915215 B CN 102915215B
- Authority
- CN
- China
- Prior art keywords
- character code
- printer
- character
- data
- equipment
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1244—Job translation or job parsing, e.g. page banding
- G06F3/1245—Job translation or job parsing, e.g. page banding by conversion to intermediate or common format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1206—Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/1284—Local printer device
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07G—REGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
- G07G1/00—Cash registers
- G07G1/0009—Details of the software in the checkout register, electronic cash register [ECR] or point of sale terminal [POS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Record Information Processing For Printing (AREA)
- Cash Registers Or Receiving Machines (AREA)
Abstract
本发明提供一种控制装置以及控制方法,实现与设备对应的对象的开发所涉及的工作的减轻。主机(10)具有如下各对象:对POS应用程序(11)按每个设备的种类提供接口的打印机(CO21);和对打印机(CO21)按每个设备的种类提供接口,并且以设备为单位执行处理的打印机(SO22)。包装(SO30),在打印机(CO21)所调用的方法中至少一部分方法已被调用的情况下,代替打印机(SO22)执行处理,并基于执行后的结果,对打印机(SO22)的方法进行调用,在打印机(CO21)调用其他方法的情况下,对打印机(SO22)的方法进行调用。
Description
技术领域
本发明涉及对打印机等设备进行控制的控制装置、以及控制方法。
背景技术
基于面向对象编程的组件基础的程序或者软件(以下称作对象)被公知。对象是在操作***上执行动作的可再利用软件。采用对象开发各种各样的***。以微软(注册商标)公司提供的「.NET Framework」为基础的操作***(OS),提供作为客户端的应用程序(container application,容器应用程序)能够使用对象的环境,为了能够使用对象而具有广泛的功能。
作为采用对象的***一例,有POS(point of sales,销售终端)***。POS***是包含各种各样的***装置在内所被组装的一种***,通过在个人计算机等的成为中心的主机中连接显示器、打印机、扫描仪、收银抽屉(drawer)、读卡机等各种输入设备而构筑而成(例如参照专利文献1)。专利文献1中公开了采用对象构筑而成的以个人计算式为基础的POS***。
对象分散型的POS***具备:POS应用程序、由各种厂家提供的打印机、扫描仪、收银抽屉等***装置(设备)的对象。设备对象由以设备的种类为单位(以设备类为单位)供给的控制对象、和按每个设备供给的服务对象构成。例如,在POS应用程序将数据输出给打印机的情况下,数据被传递给打印机用的控制对象(CO),并被传递给与所输出的打印机的厂家以及型号对应的服务对象(SO),该数据经由OS的进行输入输出的部分被提供给打印机。
控制对象按***设备的每个设备类被规定详细的规格,例如由OPOS(OLE for Retail POS)的规格构成,但另一方的服务对象是按每个厂家配合各自的设备的规格而被开发的。
专利文献
专利文献1:JP特开平9-106355号公报
专利文献2:JP特开2011-8661号公报
发明内容
控制对象按***设备的每个设备类而被规定详细的规格,例如由OPOS规格构成。相对地,服务对象是配合各个设备的规格由每个厂家开发的。因此,在进行打印机等设备的规格变更或新型号开发的情况下,需要开发适合于变更后的设备的服务对象。然而,若将设备进行多功能化,则调用控制对象的方法(method)变多,按照与所有的方法对应的方式重新开发服务对象则需要耗费很大的工作。
因而,本发明的第1目的在于,在服务对象等设备控制程序中实现与设备对应的对象的开发所涉及的工作的减轻。
另外,与主机连接的打印机等输出装置,按照与从主机输出的字符代码对应的方式将多个字体模式信息(字体数据)内置于存储器等中。这种输出装置,例如,以对应的语言数构成将与规定语言对应的规定数目的字符代码作为一个单位的字符代码集。德国用、意大利用等、使用哪个字符代码集,根据来自主机的命令或通过设置开关由打印机指定。在被指定的规定的字符代码集中,当从主机输入对字符进行特定的数据(字符代码)时,从存储器中读出相应的字体模式信息,并对记录头等进行驱动,从而将字符记录在记录介质中。近年来,在主机操作***中使用通用字符代码集。通用字符代码集,如例如Unicode那样,将覆盖多种语言的多个字符代码包括在单一字符代码体系(单一字符代码集)内。操作***通过搭载通用字符代码集,从而即使在应用程序中也能够不受语言限制地使用各种字符,因此正在推广普及。为了使多个字符代码集的构成的输出装置与通用字符代码集对应,因此,例如,提出了如下方法:即主机采用映射文件按每个字符逐个进行在通用字符代码集的字符代码与输出装置所内置的字体模式信息之间建立对应的方法(例如,参照专利文献2)。然而,在输出装置中,对于通用字符代码集,仅内置一部分语言的字符代码集的字体模式信息。为了对这样的输出装置进行控制,就必需通过主机执行的设备驱动器等程序来进行字符代码的变换。具体而言,需要将通过主机执行的应用程序所输出的规定的字符代码集(例如Unicode)的字符代码变换为输出装置能够对应的字符代码集的字符代码。这种变换处理较多情况下由设备驱动器来进行。然而,在设备驱动器进行变换处理的情况下,设备驱动器对应的语言与输出装置对应的语言必须一致。因此,与不同语言对应的设备驱动器以及输出装置的组合有可能无法正常进行变换处理。另外,与设备驱动器以及输出装置的对应语言相关的管理很繁杂。
因而,本发明的第2目的在于,使应用程序输出的数据能够通过输出装置正确地输出,并且,减轻输出装置以及控制输出装置的单元的管理负担。
为了实现上述目的,本发明提供一种控制装置,特征在于,能够执行应用程序来对至少一种设备进行控制,该控制装置具备:第1对象,其对所述应用程序按所述设备的每个种类提供第1接口;第2对象,其对所述第1对象按所述设备的每个种类提供第2接口,并执行以所述设备为单位的处理;以及第3对象,所述第3对象,在通过所述第1对象对所述第2对象请求(调用)的方法中、至少一部分方法被所述第1对象请求(调用)了的情况下,代替所述第2对象来执行所述处理,在其他方法被所述第1对象请求(调用)了的情况下,对所述第2对象的方法进行请求(调用)。
根据本发明,控制装置在基于应用程序输出的数据,通过第1对象调用方法的情况下,针对至少一部分方法,代替第2对象,而由第3对象执行处理。因此,即使被调用的方法是第2对象所不对应的方法,也能够由第3对象来执行处理,不产生错误。即,在第2对象不与由第1对象调用的所有方法对应的情况下,能够由第3对象对第2对象的功能进行增补。因此,关于第2对象的功能,存在容易变更和扩展的优点。由此,在例如进行设备的规格变更或新型号开发的情况下,完全不需要重新创建第2对象,便能够利用已有的第2对象的软件资源,能够实现对象的开发所涉及的工作的减轻。
另外,本发明的上述控制装置,其特征在于,所述第3对象,介于所述第2对象提供的所述第2接口与所述第1对象之间,在所述其他方法被所述第1对象请求(调用)了的情况下,经由所述第2接口对所述第2对象的方法进行请求(调用)。
根据本发明,能够在不对第2对象以及第1对象构成产生影响的前提下,通过第3对象来对第2对象的功能进行增补。因此,能够灵活运用与服务对象相关的已有的软件资源,能够实现对象开发所涉及的工作的减轻。
另外,本发明的上述控制装置,其特征在于,所述第1对象是按所述设备的每个种类提供的控制对象,所述第2对象是按每个所述设备提供的服务对象。
根据本发明,通过第3对象对服务对象的功能进行增补,能够使之与控制对象请求的方法对应。这样,例如在设备规格变更或开发新型号的设备的情况下,即使没有重新创建服务对象,也能够确保相对于控制对象的互换性。因此,能够有效运用与服务对象相关的已有的软件资源,能够实现对象的开发所涉及的工作的减轻。
另外,本发明的上述控制装置,其特征在于,所述应用程序是POS应用程序,所述设备包含打印机,所述第1对象以及所述第2对象是根据所述POS应用程序的请求对所述打印机进行控制的对象,所述第3对象在所述第1对象调用了规定的字符代码集的打印方法的情况下,进行从所述规定的字符代码集向所述打印机能够对应的其他字符代码集的变换的处理,基于变换后的字符代码集,对所述第2对象的打印方法进行调用。
根据本发明,能够由第3对象执行字符代码的变换处理。因此,例如,即使在第2对象不具备字符代码的变换功能的情况下、或第2对象不与要变换的字符代码集对应的情况下,也能够进行字符代码的变换。因此,即使第2对象即使不具备完备的功能也能够完成第1对象所调用的打印方法。
另外,本发明的上述控制装置中,所述规定的字符代码集由Unicode表示,所述其他字符代码集由一个字节或者两个字节的字符代码表示。
根据本发明,在由应用程序以Unicode指定的字符被输出的情况下,能够采用不与Unicode对应且与字节代码(一个字节或者两个字节的字符代码)对应的打印机进行打印。即,由于通过第3对象执行从Unicode向字节代码的变换处理,因此即使第2对象不与Unicode对应,也能够执行印刷。
另外,本发明的上述控制装置,其特征在于,所述第1对象是依据OPOS的控制对象,所述第2对象对所述第1对象提供IDispatch接口作为所述接口,所述第3对象对所述第1对象提供IDispatch接口,另一方面,经由所述第2对象的IDispatch接口对所述第2对象的方法进行请求(调用)。
根据本发明,能够在不对依据OPOS的控制对象产生影响的前提下,对依据了OPOS的服务对象的功能进行增补。
另外,本发明的上述控制装置,其特征在于,所述设备包含通过所述控制装置进行控制的输出装置,所述第1对象,是根据所述应用程序输出的数据,对多个种类的所述输出装置所共通的输出用数据进行输出的通用控制单元,所述第2对象,是基于所述输出用数据中所含的规定的字符代码集的字符代码,生成所述输出装置所内置的字符集的字符数据的字符数据生成单元,所述第3对象,是在所述输出装置所内置的字符集对应于与所述规定的字符代码集不同的其他字符代码集的情况下,介于所述通用控制单元与所述字符数据生成单元之间,将所述输出用数据中所含的所述规定的字符代码集的字符代码变换成所述其他字符代码集的字符代码,并对所述字符数据生成单元进行输出的字符代码变换单元。
根据本发明,通过第1对象,根据应用程序输出的数据生成多个种类的输出装置所共通的输出用数据,通过第2对象,生成输出装置所内置的字符集的字符数据。在该构成中,在输出用数据中所使用的字符代码集与输出装置所内置的字符集不对应的情况下,通过第3对象进行字符代码的变换。因此,即使输出用数据、与输出装置所内置的字符集之间字符代码集不一致,且第2对象不具备进行这些字符代码集的变换处理的功能的情况下,也能够通过第3对象的功能来进行处理。例如,能在不改变控制装置的第2对象的构成的情况下对输出用数据或输出装置对应的字符代码集进行扩展或者变更。因此,能够省去控制装置或输出装置对应的字符代码集的管理的麻烦。另外,能够将应用程序输出的数据通过输出装置正确地进行输出。另外,在采用第3对象进行字符代码的变换的构成中,由于不必或者对第1对象的规格进行变更、或者对输出装置对应的字符代码集进行增加,因此所需的数据量可以很少。并且,由于不需要配合输出装置来改变输出用数据,因此不会损害输出用数据的通用性。
另外,本发明的上述控制装置,其特征在于,所述输出装置是打印机,所述打印机所内置的字符集由多个代码页中的字符代码指定,并由用于使记录头进行印刷的字体数据构成,所述字符数据生成单元,根据所述规定的字符代码集的字符代码、或者所述其他字符代码集的字符代码,生成相应的代码页中相应的字符代码,并对所述打印机进行输出。
根据本发明,由于从控制装置对打印机发送与打印机所内置的代码页中的字符代码对应的字符代码集和字符代码,因此打印机能够通过内置的字体数据进行记录。因而,能够使用第3对象来使用各种打印机。
另外,本发明的上述控制装置,其特征在于,所述字符数据生成单元具有变换处理单元,该变换处理单元基于在所述操作***中设定的语言,将所述通用控制单元输出的所述输出用数据中所含的所述规定的字符代码集的字符代码变换成与所述设定的语言对应的字符代码集的字符代码。
根据本发明,在操作***中设定的语言、与输出装置的字符集所相关的语言相同的情况下,能够迅速且通过简单的处理对输出数据的字符代码进行变换。
另外,本发明的上述控制装置,其特征在于,所述字符代码变换单元,将所述其他字符代码集的字符代码变成未经所述变换处理单元变换的格式的数据,并对所述字符数据生成单元进行输出,所述字符数据生成单元,进行将从所述字符代码变换单元输入的数据恢复为所述其他字符代码集的字符代码的处理。
根据本发明,在输出用数据所含的字符代码的字符代码集、与输出装置所内置的代码页中的字符代码集不同的情况下,能够防止向不对应的字符代码集的误变换。
另外,本发明的上述控制装置,其特征在于,所述通用控制单元是高层驱动器,该高层驱动器执行通过所述应用程序调用的方法来对从所述应用程序输出的数据进行处理,并生成包含多种所述输出装置能够共通使用的输出命令和通用字符代码集中的字符代码在内的数据,所述字符数据生成单元是低层驱动器,该低层驱动器基于所述高层驱动器所生成的数据中所含的所述规定的字符代码集的字符代码,生成所述输出装置所内置的字符集的字符数据。
根据本发明,在被应用程序调用的高层驱动器、与基于高层驱动器所处理的数据对输出装置进行控制的低层驱动器之间,由字符数据生成单元进行处理。并且,在不损害高层驱动器的通用性,并且不必按每个输出装置对所对应的低层驱动器进行补充的前提下,能够对输出装置输出正确的字符数据。
另外,为了实现上述目的,本发明提供一种控制方法,通过能够执行应用程序来对至少一种设备进行控制的控制装置,对所述设备进行控制,所述控制方法的特征在于,包括:通过对所述应用程序按所述设备的每个种类提供第1接口的第1对象,基于所述应用程序输出的数据对方法进行调用的第1工序;通过对所述第1对象按所述设备的每个种类提供第2接口的第2对象,来执行以所述设备为单位的处理的第2工序;以及在通过所述第1对象对所述第2对象请求(调用)的方法中、至少一部分方法被所述第1对象请求(调用)过的情况下,代替所述第2对象由第3对象执行所述处理,在其他方法被所述第1对象请求(调用)过的情况下,通过所述第3对象对所述第2对象的方法进行请求(调用)的第3工序。
通过执行本发明的控制方法,从而在控制装置执行应用程序,且基于该应用程序所输出的数据,通过第1对象来调用方法的情况下,针对至少一部分方法,代替第2对象来由第3对象执行处理。因此,即使被调用的方法是第2对象所不对应的方法,也能够通过第3对象来执行处理,而不发生错误。即,在第2对象不与由第1对象调用的所有方法对应的情况下,能够通过第3对象来对第2对象的功能进行弥补。因此,关于第2对象的功能存在容易变更或扩展的优点。由此,在例如进行设备的规格变更或新型号开发的情况下,完全不需要重新创建第2对象,能够利用已有的第2对象的软件资源,能够实现对象的开发所涉及的工作的减轻。
另外,本发明的上述控制方法,其特征在于,在所述第1工序中,根据所述应用程序输出的数据,将多个种类的所述设备所共通的输出用数据输出,在所述第2工序中,基于所述输出用数据中所含的规定的字符代码集的字符代码,生成所述设备所内置的字符集的字符数据,所述第3工序是如下这样的工序:在所述设备所内置的字符集对应于与所述规定的字符代码集不同的其他字符代码集的情况下,介于所述第1工序与所述第2工序之间,将所述输出用数据中所含的所述规定的字符代码集的字符代码变换成所述其他字符代码集的字符代码。
通过执行本发明的控制方法,从而根据由应用程序输出的数据,生成输出用数据,并对设备进行输出。在该过程中,将输出用数据所含的规定的字符代码集的字符代码,变换为不同的字符代码集的字符代码。因此,在输出用数据的规定的字符代码集、与设备所对应的字符代码集不同的情况下,能够将配合设备而变换的字符代码进行输出。另外,通过在第3工序进行字符代码的变换,从而在不必对控制装置在第2工序中进行处理的内容进行补充的前提下,便能够对设备输出正确的字符数据。这样,能够省去与设备所对应的字符代码集相关的管理的麻烦。另外,与对设备进行补充来增加对应的字符代码集的情况等相比,所需要的数据量可以很少,能够容易实现。
发明效果
根据本发明,在基于应用程序输出的数据对设备进行控制的控制装置中,例如在设备的规格变更或新型号开发等的情况下,即使不重新创建整个对象,也能够利用已有的资源来构筑所需要的***。
根据本发明,能够省去与对输出装置进行控制的单元或输出装置所对应的字符代码集相关的管理的麻烦,且能够将应用程序所输出的数据更正确地输出给输出装置。
附图说明
图1是表示实施方式所涉及的POS***的功能构成的框图。
图2是表示实施方式所涉及的OPOS驱动器的构成的图。
图3A是表示包装(wrapper)SO30调用打印机SO22的方法的情况下动作例的图。
图3B是表示包装SO30的方法被调用的情况下的动作例的图。
图4是表示POS***的动作的流程图。
图5是表示实施方式所涉及的POS***的功能构成的框图。
图6是表示主机的详细构成的框图。
图7是表示主机的动作的流程图。
具体实施方式
[第1实施方式]
以下,参照附图针对本发明的实施方式进行说明。
图1是表示应用了本发明的一实施方式所涉及的POS***1的概要构成的框图。
POS***1具备:经由通信线路与未图示的POS服务器连接的主机10(控制装置)。在主机10连接有:显示器51、键盘52、打印机60、扫描仪54、以及收银抽屉55的各种设备。
主机10与打印机60一起被设置在超市或便利店等店铺中用户进行结帐处理的附近。主机10基于通过操作员输入的与商品销售相关的输入信息来发行收据。打印机60是与主机10直接连接的本地打印机。打印机60经由接口以有线或者无线的方式与主机10进行连接。图1表示打印机60与主机10经由连接器(Connector)以有线方式连接的例子。
主机10控制对收据、交给顾客的优惠券、厨房中的烹饪指示用的单据等进行打印的一个或者多个打印机60。各打印机60基于主机10所生成的印刷数据,对收据或单据进行打印输出。
主机10具备键盘52以及扫描仪54,作为对商品销售所涉及的信息进行输入的输入设备。基于键盘52的输入或者基于描仪54的商品条形码的读取结果,被输入主机10。主机10基于从键盘52以及扫描仪54输入的信息,获取与商品销售相关的输入信息。
主机10将所获取的输入信息发送给POS服务器(省略图示)。POS服务器(省略图示)基于从主机10发送的输入信息,从商品基础数据中提取与商品代码、商品名、金额相关的信息,并将所提取的信息发送给主机10。主机10基于从POS服务器接收的信息,对打印机60进行控制,来输出收据或单据。
另外,主机10将从POS服务器发送的信息、或根据所发送的信息而生成的信息显示在显示器51。通过将信息显示在显示器51,从而POS***1对顾客公开购买商品的金额等。对随着商品销售而交易的金钱进行收纳的收银抽屉55通过主机10的控制,在每次进行结帐处理时会进行开合。
主机10执行例如以微软公司(注册商标)提供的「.NET Framrwork」为基础的、windows(注册商标)等操作***12。另外,在操作***12上,POS应用程序11、以及OPOS(OLE for Retail POS)驱动器20进行运作。
OPOS驱动器20是OLE for Retail POS的规格的打印机驱动器(以下称作OPOS驱动器)。OPOS驱动器20在操作***12上执行动作来对各种设备进行控制。OPOS驱动器20也可以考虑被实质性地嵌入操作***12中,对操作***12的功能进行增补。
本实施方式中,作为本发明的一应用例而示出的POS***1是依据OPOS规格的POS***(以下称作OPOS***)。
在此,对OPOS***的概要进行说明。在OPOS***中,对POS应用程序提供依据OPOS规格的对象控制***。该对象控制***具备打印机等的每个设备类的控制对象、以及服务对象。对象控制***对应用程序提供所构成的接口,并且对打印机等***设备(设备)提供不依赖于型号的接口。当应用程序调用按每个设备类定义的方法时,控制对象对服务对象的方法进行调用。该调用是经由不依赖于设备型号的接口(例如,微软公司(注册商标)的IDispatch接口)而进行的。服务对象利用操作***提供的每个设备的设备驱动器执行请求。执行结果作为事件通过控制对象被通知给应用程序。
另外,控制对象按***设备的每个设备类规定详细的规格,实质上由OPOS(OLE for Retail POS)的规格构成。相对地,服务对象配合各个设备的规格由每个厂家开发。
本实施方式的OPOS驱动器20,相当于上述的对象控制***。OPOS驱动器20,对POS应用程序11提供与打印机60、扫描仪54、以及收银抽屉55的各设备之间不存在型号依赖性的接口。OPOS驱动器20,由控制对象(CO)、和与每个设备型号的规格对应的服务对象(SO)构成。OPOS驱动器20的控制对象依据OPOS规格而被创建,与操作***12一起作为POS***的平台的一部分被提供。
OPOS驱动器20的服务对象是按打印机60、扫描仪54以及收银抽屉55的每个型号而被开发、创建的。这些服务对象由例如各设备的厂家等提供。各服务对象配合各设备型号之间不同的功能或规格而具有不同的功能,并进行与每个设备型号的特性一致的控制。例如,打印机CO21依据操作***12的类别,对POS应用程序11提供属于打印机的设备种类的设备所共用的接口。打印机CO21(第1对象)按照依据OPOS规格的方法,基于POS应用程序11输出的数据,对打印机SO22的方法进行调用。打印机SO22(第2对象)按照适合于打印机60的型号的方式而被创建。打印机SO22,当通过打印机CO21调用方法时,执行处理,对打印机60进行控制,并将处理结果作为事件通知给打印机CO21。
OPOS驱动器20具备:与扫描仪54的设备种类对应的扫描仪CO25、和与扫描仪54的型号对应的扫描仪SO26。扫描仪CO25以及扫描仪SO26能够实现扫描仪54的控制和条形码的读取。另外,OPOS驱动器20具备:与收银抽屉55的设备种类对应的收银抽屉CO27、和与收银抽屉55的型号对应的收银抽屉SO28。收银抽屉CO27以及收银抽屉SO28能够实现收银抽屉55的开合控制。另外,显示器51以及键盘52能够通过操作***12所提供的设备驱动器而由POS应用程序11进行控制。
主机10也可以具备读取在卡式记录介质中记录的磁信息的读卡机,作为输入设备。这种情况下,使OPOS驱动器20构成为具备与读卡机的设备种类对应的控制对象以及与读卡机的型号对应的服务对象。
图2是详细示出OPOS驱动器20的概念构成的图。图2中,将OPOS驱动器20所具有的功能中的与打印机60的控制关联的构成作为一例而示出。
如图2所示,打印机SO22提供IDispatch接口23,作为用于接受来自打印机CO21的方法的调用或数据的接口。与打印机60的控制关联地由打印机SO22所实现的各种处理,按每个处理的种类(功能)被进行划分,打印机SO22具有与各功能对应的方法24。在打印机SO22中,设置与各方法24对应的IDispatch(Idispatch)接口23。IDispatch接口是微软公司(注册商标)为了对象之间的通信而提供的接口。例如,在打印机CO21使打印机SO22的功能B被执行的情况下,打印机CO21经由与包含功能B的方法24对应的IDispatch接口23,调用该方法24,并执行所被调用的方法2。
打印机SO22具备与打印机60的各种功能对应的方法24。因此,打印机60的功能或设定项目越复杂,打印机SO22的构成越复杂化。例如,在与一般的热敏打印机对应的服务对象中,与超过100种的方法对应的服务对象不在少数。
在进行打印机的新型号的开发、或者现有型号的规格变更的情况下,需要配合新型号的规格或者变更后的规格来开发打印机SO22。这种情况下,代替重新开发打印机SO22,有时通过对已有的打印机SO22进行变更或者增加一部分功能这样的修正,便能够实现目的。然而,打印机SO22如上述具有很多功能,并且,被要求保持IDispatch接口23的构成与打印机SO22的功能之间的匹配。要满足这样的要求并非易事。
另一方面,打印机CO21如上述那样使用按每个设备种类通用的接口,因此在进行打印机的新型号的开发、或者现有型号的规格变更的情况下,很少重新开发打印机CO21。
因而,在本实施方式中,OPOS驱动器20除了具备打印机CO21和打印机SO22之外,还具备包装SO30(第3对象),包装SO30的构成为对打印机SO22的功能进行增补。
包装SO30介于打印机CO21与打印机SO22之间,更具体而言,介于打印机CO21与IDispatch接口23之间。包装SO30对进行来自打印机CO21的方法的调用并进行了向打印机SO22提供的IDispatch接口23的调用的情况进行检测。包装SO30对打印机CO21提供与IDispatch接口23同样地被识别的IDispatch接口31。当打印机CO21调用打印机SO22的方法时,不是经由IDispatch接口23调用方法24,而是经由IDispatch接口31来调用包装SO30。
包装SO30具有与特定的功能相关的方法32。方法32与打印机SO22所不具有的功能、或者、对打印机SO22的功能进行改良、扩展、变更了的功能对应。即,代替改变打印机SO22使之具有新的功能,而设置具有与该新的功能对应的方法32的包装SO30。
包装SO30在经由IDispatch接口31而被从打印机CO21调用的情况下,判定打印机CO21所调用的功能是哪种功能。根据该判定结果,包装SO30决定是执行包装SO30所具有的方法32,还是调用打印机SO22的方法24。在打印机CO21所调用的功能是属于打印机SO22所具有的方法24的功能的情况下,由打印机SO22的方法24执行处理即可。这样的情况下,包装SO30对IDispatch接口23进行调用,来代替打印机CO21。该调用与打印机CO21经由IDispatch接口23而执行的调用是同样的。通过该调用,由打印机SO22的方法24执行处理,且打印机SO22对该处理结果的事件进行通知(返回)。包装SO30当检测到打印机SO22对事件进行了通知时,经由IDispatch接口31对打印机CO21通知事件。这种情况下,打印机SO22按照从打印机CO21调用功能的方式进行动作,打印机CO21与被从打印机SO22通知了事件的情况同样地进行动作。另一方面,在打印机CO21所调用的功能是打印机SO22的方法24所未对应的功能的情况下,打印机SO22无法执行该功能。因此,包装SO30针对来自打印机CO21的调用,通过方法32执行处理。包装SO30不进行对IDispatch接口23的调用。包装SO30具有执行包装SO30的方法32并将其结果作为事件通知给打印机CO21的功能。与打印机CO21调用打印机SO22来执行方法24的情况同样地,对打印机CO21通知事件。因此,打印机CO21,不论已被执行的方法是方法24还是方法32,都可以执行同样的动作(调用处理)。
按照这样,在包装SO30具备不应由打印机SO22执行的功能、或者由打印机SO22无法执行的功能(方法32)、且该功能被打印机CO21调用的情况下,包装SO30执行方法32,来代替打印机SO22。因此,即使不改变打印机SO22,OPOS驱动器20也能够执行比打印机SO22对应的功能更多的功能。即,通过采用包装SO30,从而能够实质性地实现打印机SO22的功能的增加、扩展、改变等。包装SO30具备IDispatch接口31,对于打印机CO21而言,其表现为打印机SO22的一部分。因此,在不进行打印机CO21或打印机SO22的规格变更或改变等的前提下,通过嵌入包装SO30便可实现功能的增加、扩展、改变等。
图3是表示OPOS驱动器20的具体动作的一例的图。图3A表示包装SO30调用打印机SO22的方法的情况下的动作。另外,图3B表示包装SO30的方法被调用的情况下的动作。
在图3A所示的例中,首先,POS应用程序11通过对OPOS驱动器20输出打印机2(图5)所对应的、被指定的代码页(字符代码集)中的字符数据(字符代码),从而调用「PrintNormal」方法。根据该调用,打印机CO21对打印机SO22进行「PrintNormal」方法的调用。POS应用程序11所输出的字符数据是字符代码,是从打印机60所内置的字体数据中指定字符的信息。由于该数据的格式是根据被指定的代码页中的字符代码,来指定打印机60所内置的字体数据的信息,因此打印机60基于该数据能够读出一个字体数据进行印刷。「PrintNormal」方法具备指定打印机60所内置的字体数据的功能,在由命令等所指定的代码页中,指定其中的字符代码来发送给打印机60。即,打印机SO22在这种情况下能够由方法24执行通过打印机CO21调用的「PrintNormal」方法。包装SO30判别能够由打印机SO22执行通过打印机CO21所调用的「PrintNormal」方法。然后,包装SO30经由IDispatch接口23调用打印机SO22的「PrintNormal」方法并使之执行。这样,打印机SO22便能够控制打印机60来使之执行印刷。在能够对打印机60发送字符代码的情况下,从打印机SO22向打印机CO21发送表示印刷处理已结束的意思的信息。
在图3B所示的例中,POS应用程序11将由作为单一字符代码集的Unicode指定字符的数据(字符代码)输出,并调用「PrintNormal」方法。根据调用,打印机CO21想要执行打印机SO22的「PrintNormal」方法的调用。这时,打印机60由于未与由Unicode指定字符的数据对应,故而配合打印机60的规格所创建的打印机SO22,也未与由Unicode指定字符的数据对应。因此,即使基于该数据调用方法24,也不会由打印机60执行印刷。这种情况下,包装SO30判别为打印机SO22无法执行该调用。然后,包装SO30调用进行包装SO30所具备的MBCS(Multibyte CharacterSet,多字节字符集)/Unicode的变换的方法32。包装SO30通过执行所调用的方法32,从而将POS应用程序11输出的Unicode的数据(字符代码)变换为打印机60对应的字符数据(对应的字符代码集中的字符代码)。在此,在打印机60中,英文数字按照由一个字节的字符代码指定的方式构成,作为非欧洲语言的字符的汉字等按照由两个字节的字符代码(多字节代码)指定的方式构成。在输入由Unicode表示汉字的字符代码的情况下,通过方法32,按照能够由打印机60对应的方式,将汉字变换为所指定的字符代码集与由其中的多字节代码所指定的字符代码。包装SO30基于通过变换所生成的多字节代码的字符数据,经由IDispatch接口23,调用打印机SO22的「PrintNormal」方法。「PrintNormal」方法发送能够由打印机60对应的字符代码。由于打印机SO22执行所被调用的「PrintNormal」方法24,因此能通过打印机SO22的控制执行印刷。即,即使是POS应用程序11输出的由unicode表示的汉字的字符代码,也能够变换成打印机60对应的汉字的字符代码,并指定打印机60所内置的汉字的字体数据来进行印刷。另外,即使不是汉字,即使是其他字符,也能够同样地进行处理。
图4是表示POS***1的动作的流程图。
参照该图4,对POS***1的动作进行总括说明。首先,POS应用程序11将应打印的数据(字符代码)输出给OPOS驱动器20(步骤S11)。根据该输出,OPOS驱动器20中的打印机CO21调用「PrintNormal」方法(步骤S12)。
包装SO30判定POS应用程序11所输出的字符代码是否是打印机60所对应的字符代码,并决定是调用打印机SO22的方法24、还是执行包装SO30所具有的方法32(步骤S13)。然后,例如,在判定为由Unicode表示汉字的字符代码被输入并执行方法32,且执行包装SO30的方法32的情况下(步骤S13;是),调用方法32来进行变换为打印机60所对应的字符代码的处理,基于处理后的数据(字符代码),调用打印机SO22的方法24(步骤S14)。例如,在判定为打印机60所对应的字符代码被输入且不执行方法32的情况下(步骤S13;否),经由IDispatch接口23对打印机SO22的方法24进行调用(步骤S16)。
之后,打印机SO22的方法24被执行,按照指定打印机60所对应的字符代码并读出打印机60所内置的字体数据的方式进行控制,来执行印刷(步骤S15)。在此,打印机SO22将表示打印正常结束的事件通知给包装SO30,包装SO30对打印机CO21通知事件,并结束本处理。
按照以上方式,应用了本发明的第1实施方式所涉及的POS***1具备:打印机CO21,其对于能够控制包含打印机60在内的多种设备的POS应用程序11,提供每个设备的种类的接口;打印机SO22,其对打印机CO21提供每个设备的种类的IDispatch接口23,并执行以设备为单位的处理;和包装SO30,这些对象具备在操作***12下执行动作的主机10。包装SO30,在通过打印机CO21调用的方法中、至少一部分方法通过打印机CO21被调用的情况下,代替打印机SO22而执行处理,并基于执行后的结果,进一步调用打印机SO22的方法24。另外,包装SO30在打印机CO21调用了其他方法的情况下,调用打印机SO22的方法24。这样,即使在打印机SO22所具有的一部分方法24不适合于设备的情况下,也能够由包装SO30对功能进行增补,从而能够利用打印机SO22来对设备进行控制。因此,关于打印机SO22的功能方面存在容易变更和扩展的优点。由此,在例如进行设备的规格变更或新型号开发的情况下,完全不需要重新创建打印机SO22,能够利用现有的打印机SO22的软件资源,实现对象的开发所涉及的工作的减轻。
另外,包装SO30介于打印机SO22所提供的接口与打印机CO21之间,执行由打印机CO21调用的方法,并经由接口调用打印机SO22的方法。因此,能够通过包装SO30,按照不对打印机SO22以及打印机CO21的构成产生影响的方式,对打印机SO22的功能进行增补。
在此,打印机CO21是按个人计算机的每个设备种类而提供的控制对象,打印机SO22是按每个设备而提供的服务对象。因此,例如在设备的规格变更或新型号的设备的开发之际,能够在确保与该设备的种类对应的控制对象的互换性的基础上,对按每个设备准备的服务对象的功能进行增补,从而能够利用现有的服务对象的资源。
另外,打印机CO21以及打印机SO22被构成为根据POS应用程序11的要求来控制打印机60的对象。包装SO30在通过打印机CO21调用规定的字符代码集的打印方法的情况下,通过方法32,进行从规定的字符代码集向其他字符代码集的变换,并基于变换后的字符代码集调用打印机SO22的打印方法。这样,即使打印机SO22不具备字符代码的变换功能,也能够由包装SO30对字符代码的变换功能进行增补,来对打印机SO22所不对应的字符代码集的数据进行处理。
进而,打印机CO21是依据OPOS的控制对象,打印机SO22对打印机CO21提供IDispatch接口,包装SO30对打印机CO21提供IDispatch接口,另一方面,经由打印机SO22的IDispatch接口对打印机SO22的方法进行调用。因此,能够在不对依据OPOS的打印机CO21产生影响的前提下,对依据了OPOS的打印机SO22的功能进行增补。
[第2实施方式]
接着,针对应用了本发明的第2实施方式进行说明。
图5是表示第2实施方式所涉及的POS***2的功能构成的框图。
在第2实施方式中,针对与由上述第1实施方式说明的POS***1同样地构成的POS***2通过打印机60对收据R进行印刷的情况下的具体例,详细进行说明。该第2实施方式中,主机10相当于控制装置,打印机60相当于设备以及输出装置。另外,图5中,图示了在上述第1实施方式中省略图示的POS服务器3。
POS服务器3,具有由CPU、ROM以及RAM等组成的控制部。POS服务器3通过由CPU执行在ROM内存储的控制程序,从而进行在RAM内设置的缓冲器中存储的信息的处理。具体而言,POS服务器3基于主机10发送的输入信息,从商品基础数据中提取与商品代码、商品名、金额相关的信息,生成商品数据后发送给主机10。
主机10与上述第1实施方式同样地构成,进而,具有读取在卡式记录介质中记录的磁信息的读卡机57。主机10通过读卡机57读取顾客的***或会员卡,获取与信用清算相关的信息或会员号码等与会员相关的信息。主机10具有由CPU、ROM以及RAM等构成的控制部40,控制部40通过在操作***12上运行的OPOS规格的打印机驱动器43来对打印机60进行控制。
打印机驱动器43是上述的OPOS驱动器20的一例。打印机驱动器43,具有:与打印机的设备种类对应的控制对象44(通用控制单元、高层驱动器)、和与打印机60的型号对应的服务对象45(字符数据生成单元、低层驱动器)。控制对象44是打印机CO21的一例,服务对象45是打印机SO22的一例。控制部40执行操作***12,根据在操作***12上执行动作的POS应用程序11和打印机驱动器43的功能,由打印机60执行收据R的输出等。打印机驱动器43以将控制对象44和服务对象45组合了的形态被提供给用户。
POS应用程序11基于从POS服务器3发送的商品数据或输入信息,生成包含用于印刷在收据上的字符代码在内的数据,该数据经由操作***12被移交给印刷装置用的控制对象44,进而从控制对象44被移交给与打印机60的型号对应的服务对象45。服务对象45对该数据进行加工以生成包含与打印机60的命令规格相应的命令和字符数据在内的印刷数据,并发送给打印机60。
打印机60是热敏头式的收据打印机。打印机60具备从主机10接收各种命令或印刷数据的数据接收部61。另外,打印机60具有CPU、ROM、RAM等,具备对打印机60的各部进行控制的控制部62。进而,打印机60具备:对控制部62执行的程序或所处理的数据等进行存储的存储器63、以及、根据控制部62的控制对搬送电动机65、记录头66、以及裁剪器构件67进行驱动的记录控制部64等。
打印机60通过数据接收部61从主机10接收命令和印刷数据,并将所接收的命令和印刷数据临时保存在数据接收部61所具备的接收缓冲器(省略图示)内。控制部62读出接收缓冲器内的命令和印刷数据并进行解析。然后,控制部62,根据印刷数据,参照预先在存储器63中保存的输出用字体信息63A(字符代码集),根据印刷数据中所含的字符代码,获取相应的字符的字体数据(字体模式信息)。控制部62对构成要印刷的收据R的字符以及图像进行布局,生成包含字体数据在内的印刷用的收据R的图像数据,临时存储在RAM等中,并输出给记录控制部64。
记录控制部64基于在RAM等中保存的图像数据,对搬送电动机65进行控制。记录控制部64,通过搬送电动机65对热敏卷筒纸进行搬送,并且将图像数据依次发送给记录头66。记录控制部64进行记录头66的通电控制,对记录头66进行驱动,使热敏卷筒纸着色。通过这一连串的动作,记录控制部64执行印刷。当一页的收据R的打印完成时,记录控制部64驱动裁剪器构件67来剪切热敏卷筒纸,并排出收据R。
图6是表示主机10的详细构成的框图,特别示出控制部40的软件构成。
第2实施方式中,操作***12使用作为通用字符代码集的Unicode。Unicode是将覆盖多种语言的多个字符代码集包括在内的巨大的单一字符代码体系。因此,操作***12还能够输出采用Unicode创建的字符代码(例如,包含Unicode的拉丁语(Basic Latin)、和日语的片假名(Katakana)这样的字符代码)。POS应用程序11成为使之与操作***12对应的规格。因而,POS应用程序11依据Unicode的字符代码体系。因此,操作***12以及POS应用程序11对Unicode的字符代码集中的字符代码进行输入输出。
打印机驱动器43配合打印机60的字符代码的构成,使用与几种语言或者一种语言对应的字符代码集。打印机驱动器43,仅仅与至少比Unicode所包含的语言少的语言的字符代码集对应。这是由于,如果要与Unicode对应,则不仅需要对庞大的字体数据进行存储的存储器,而且用户使用的语言范围通常是有限的,并且用户还要配合所使用的语言等来选择打印机并购买,因此只要使打印机驱动器所使用的语言与打印机的规格匹配即可。因此,打印机60以及打印机驱动器43与Unicode相比,使用与较少数的语言或者一种语言对应的字符代码集。在Unicode的情况下,当POS应用程序11使用的语言与打印机60所对应的语言不一致时,需要对打印机驱动器43的功能进行增补。在第2实施方式中,作为一例,列举在操作***12中将用户使用的语言设定为日语,POS应用程序11经由日语的用户接口进行动作一例。这种情况下,打印机驱动器43被提供作为与日语对应的设备驱动器程序。相对地,第2实施方式所例示的打印机60与中文对应,成为能够打印中文(简体字)的字符的规格。即,不与日语字符对应。
另外,打印机驱动器43还能够按照与多个种类的型号的打印机对应的方式构成。例如,还能够由一个打印机驱动器43对厂家规格相同、对应语言不同的多个打印机60进行控制。但是,这种情况下,如上述,需要使打印机驱动器43使用的语言与打印机60使用的语言对应。
具体进行说明。在POS应用程序11指示印刷并调用了打印机驱动器43的情况下,控制对象44生成包含用于对POS应用程序11所输出的收据R中的字符进行印刷的字符代码在内的数据。该字符代码,在Unicode中指定特定的块的特定字符。图6的例中,POS应用程序11所输出的数据401包含表示日语汉字「水」的两个字节的字符代码「2F54(16进制)」。控制对象44基于数据401生成包含Unicode的字符代码「2F54(16进制)」在内的输出用数据402。
服务对象45适合于打印机60或者包含打印机60的多个打印机。服务对象45具备对控制对象44输出的输出用数据402进行变换的变换部47(变换处理单元)。作为变换部47,相当于例如微软公司(注册商标)制作的MFC(Microsoft Foundation Class)。变换部47的功能是将输出用数据402所包含的字符代码变换成服务对象45所对应的字符代码的功能。服务对象45,如上述,使用与Unicode相比较少数的语言或者一种语言对应的字符代码集。即,打印机驱动器43具备:依据OPOS规格且具有与Unicode对应的通用性的控制对象44、和与包含打印机60的多个打印机对应的少数或者一种语言对应的字符代码集所对应的服务对象45。因此,可以说打印机驱动器43,与POS应用程序11的Unicode对应,还与不符合Unicode的打印机60对应。
本实施方式的服务对象45与作为操作***12的使用语言的日语对应。服务对象45使用例如shift-JIS等的双字节的字符代码。因此,变换部47将按照Unicode而描述的字符代码(图6的例中「2F54(16进制)」)在shift-JIS中变换为指向相同字符的字符代码。
另外,服务对象45将通过变换部47变换的shift-JIS的字符代码变换成与打印机60所具有的输出用字体信息63A对应的字符数据404。如果打印机60是日语规格,且所内置的输出用字体信息63A是依据了shift-JIS的信息,则能够印刷正确的字符。但是,如果打印机60是与日语以外的语言对应的规格,则打印机60无法处理shift-JIS的字符代码。因而,打印机60因接收了不对应的字符代码,从而变成无法印刷或者印刷错误字符的结果。换言之,在操作***12中设定的使用语言、与打印机60所对应的语言不同的情况下,会产生问题。
输出用字体信息63A,其构成包含多个种类的字体群。一个「字体群」,是例如「美国标准信息交换代码(ASCII Code)」这样的字符集。在存储器63(图5)中设置多个(例如1~255个)用于保存这些字体群的代码页63B这样的区域。在各个代码页63B中保存多个字体。在此所说的「字体」是指表示将字符输出给记录控制部64,并由记录头进行记录时的字符的格式的数据(字体数据、字体模式信息)。
对于打印机60,能够提供以命令指定构成输出用字体信息63A的代码页63B中任一个代码页63B的编号,且对该代码页63B中的一个字符进行指定的数据(字符代码)。这种情况下,控制部62提取一个字体。该字体实际上是收据R中印刷的字符。
服务对象45为了从输出用字体信息63A中提取以变换部47所变换了的字符代码所表示的字符,因而生成包含对代码页63B进行指定的信息(例如,对代码页63B的编号进行指定的命令)、和对该代码页63B内的字符进行指定的信息(字符代码)在内的字符数据404,并输出给打印机60。在连续指定相同代码页63B的编号中的字符的情况下,也可以省略对代码页63B进行指定的信息。
在本实施方式中,作为一例,打印机60与中文(简体字)对应。具体而言,打印机60将与对应中文的GB18030的字符代码集所对应的字体群作为输出用字体信息63A进行存储。因此,服务对象45需要将控制对象44所生成的输出用数据402中的Unicode的字符代码「2F54(16进制)」变换成与GB18030对应的字符代码。然而,变换部47的功能是向对应日语的shift-JIS进行变换的功能。因此,服务对象45无法执行从Unicode向GB18030的字符代码的变换。
因而,本实施方式的控制部40使用作为包装SO30的一例的包装SO46(字符代码变换单元)。包装SO46将控制对象44输出的输出用数据402中所含的Unicode的字符代码,变换成与打印机60所具备的输出用字体信息63A对应的GB18030的字符代码集中的字符代码。控制对象44所生成的输出用数据402,通过包装SO46被变换成作为「GB18030」的字符代码集中的字符代码「CBAE(16进制)」的输出用数据403。被变换后的输出用数据403不经由变换部47而被传给服务对象45。即,从控制对象44直接向服务对象45传递输出用数据403的路径被禁止、切断(图6中以×来表示)。
另外,打印机60与哪种语言对应,通过打印机驱动器43从打印机60获取ID编号便能够知道。打印机驱动器43具备包含了ID编号和打印机的对应语言在内的规格的对应表。
然而,有些情况下变换部47与服务对象45被一体式地安装,成为对服务对象45输入的数据全部经由变换部47的构成。这种情况下,包装SO46必须设计为不受变换部47的影响。具体而言,包装SO46通过对字符代码「CBAE(16进制)」以比特为单位进行前处理,从而成为即使通过变换部47也不受影响的格式的数据。该数据在未进行任何变换的前提下通过变换部47。然后,只要将通过了变换部47的数据在服务对象45中进行二进制变换,并进行返回到字符代码「CBAE(16进制)」的处理即可。
包装SO46在内部具备对Unicode的字符代码集47A、与其他多个字符代码集48A、48B…之间的对应关系进行了定义的变换用数据46A。变换用数据46A不必要包含字符本身的数据,也可以包含字符数据。变换用数据46A是用于在不同的字符代码集之间对指定相同字符的字符代码相互进行变换的数据。如果采用变换用数据46A,则能够将字符代码集47A的各字符代码变换成指定与由该字符代码指定的字符相同字符的、其他字符代码集48A、48B…中的字符代码。例如,包装SO46根据变换用数据46A,将Unicode中指定日语「水」的字符代码「2F54(16进制)」变换成字符代码集48A(GB18030)中指定中文「水」的字符代码「CBAE(16进制)」。包装SO46对应的字符代码集47A以及字符代码集48A、48B…的种类和数目是任意的。例如,包装SO46,可以具备对多个字符代码之间的对应关系进行了定义的变换用数据46A。另外,变换源与变换目标的字符代码集的组合,还可以通过进行打印机驱动器43的各种設定的UI(User Interface,用户界面),由用户进行设定。
这样,服务对象45能够对与打印机60所使用的字符代码集(GB18030)对应的正确的字符进行特定。然后,生成包含对应的字符的字体(字体数据)的代码页63B、和包含对代码页63B中的字符进行指定的字符代码的字符数据404,并进行发送。
因此,即使未对打印机驱动器43进行大幅改变,也能够使服务对象45与使用不对应的字符代码集的打印机60对应。因而,能够将输出用数据402变换成和与可使用的字符代码集不同的打印机60对应的字符数据404。这样,能够使POS应用程序11所输出的Unicode的字符通过未与Unicode对应的打印机60来进行印刷。
图7将上述的主机10的动作作为流程图示出。
首先,POS应用程序11向打印机驱动器43输出包含Unicode的字符代码在内的数据(步骤S21)。基于该数据,控制对象44生成包含Unicode的字符代码在内的输出用数据(步骤S22)。
在此,包装SO46将控制对象44所生成的输出用数据中所含的Unicode字符代码变换成适合于打印机60的字符代码集的字符代码(步骤S23)。接着,基于包含已变换的字符代码在内的输出用数据,服务对象45生成包含对与输出用字体信息63A对应的代码页63B与字符代码进行指定的信息在内的字符数据404(步骤S24)。服务对象45将所生成的字符数据404输出给打印机60。打印机60读出与被指定的代码页63B和字符代码相应的字体数据,并执行印刷(步骤S25)。
按照以上这样,在第2实施方式所涉及的POS***2中,主机10具备:基于包含POS应用程序11所输出的Unicode的字符代码在内的数据,将多个种类的打印机60所共通的输出用数据输出的控制对象44;基于输出用数据所包含的Unicode的字符代码,生成打印机60内置的输出用字体信息63A的字符数据的服务对象45;以及在打印机60内置的输出用字体信息63A对应于与Unicode不同的字符代码集的情况下,介于控制对象44和服务对象45之间,将输出用数据所含的Unicode的字符代码变换成与打印机60内置的输出用字体信息63A对应的字符代码集的字符代码,并输出给服务对象45的包装SO46。主机10通过包装SO46能够将输出用数据所包含的Unicode的字符代码变换成打印机60对应的字符代码集的字符代码。因此,即使是有关打印机驱动器43的服务对象45所未对应的字符代码集的数据,在不对打印机驱动器43大幅补充的前提下,便能够通过包装SO46将与打印机60对应的字符数据输出。这样,便省去与打印机驱动器43或打印机60所对应的字符代码集相关的管理的麻烦,能够通过未与Unicode对应的打印机60将包含POS应用程序11所输出的Unicode的数据正确输出。进而,不会损害对打印机60进行控制的单元的通用性。另外,在设置仅进行字符代码的变换的单元的情况下,与增加对打印机60进行控制的单元或打印机60本身的对应字符代码集的情况相比,由于所需要的数据量可以很少,因此能够容易实现。
另外,作为打印机60内置的字符集的输出用字体信息63A由多个代码页中的字符代码来指定,由用于使记录头66进行印刷的字体数据构成,服务对象45根据Unicode的字符代码、或者输出用字体信息63A对应的字符代码集的字符代码,生成包含对相应的代码页进行指定的命令和相应的字符代码在内的字符代码,并向打印机60输出。因此,与打印机60所内置的多个代码页中的字符代码对应的字符代码集和字符代码被发送给打印机60。这样,打印机60便能够根据内置的字体数据进行印刷。
另外,服务对象45具有基于在操作***12中设定的语言,将输出用数据中所含的Unicode的字符代码变换成与上述语言对应的字符代码集的字符代码的变换部47。这样,在操作***12中设定的语言与打印机60的字符集所相关的语言相同的情况下,如果将基于POS应用程序11的输出数据通过变换部47容易地变换为与该语言对应的字符代码集,则通过简单的处理便能完成。
另外,包装SO46在将输出用字体信息63A对应的字符代码集的字符代码递交给变换部47的情况下,会成为未被变换部47进行变换的格式的数据。这种情况下,服务对象45进行将包装SO46输出的数据恢复为输出用字体信息63A对应的字符代码集的字符代码的处理。这样,便能够防止变换部47进行的误变换。
另外,服务对象45由于与作为操作***12的使用语言而设定的语言对应,因此根据输出用数据所含的字符代码对规定的字符代码集中所含的字符代码进行特定,并生成包含该字符代码的、用于对打印机60进行控制的数据。因此,即使在服务对象45所使用的规定的字符代码集(在上述的日语例中为shift-JIS)与打印机60中内置的输出用字体信息63A不对应的情况下,通过包装SO46变换成与字符代码集相应的字符代码,便能够输出与打印机60对应的正确的字符数据。
另外,根据主机10,通过在介于作为高层驱动器的控制对象44、与作为低层驱动器的服务对象45之间的包装SO46,便能够在不损害控制对象44的通用性,并且不必对每个打印机60所对应的服务对象45进行补充的前提下,能够输出与打印机60对应的正确的字符数据。
另外,上述各实施方式示出应用了本发明的一具体例,本发明并非限定于此。例如,在第1实施方式中,POS***1所具备的设备,不限定于显示器51、键盘52、打印机60、扫描仪54以及收银抽屉55,还可使用其他设备,例如在主机10控制多台打印机60使之执行印刷的情况下,也能够应用本发明。另外,上述实施方式中,列举为了对控制打印机60的打印机SO22的功能进行增补,而设置了包装SO30的构成为例进行了说明,但为了进行例如扫描仪SO26或收银抽屉SO28的功能的扩展、变更等,还可以设置与扫描仪54或收银抽屉55对应的包装SO。
另外,在第2实施方式中,POS***2所具备的输出装置不限定于打印机60,还可使用显示装置等其他输出设备。
另外,上述实施方式中例示的字符代码集以及语言只是一例,当然不限于Unicode,还可实现与其他字符代码集、字符代码体系对应的动作。
进而,在上述各实施方式中,虽然说明了在执行POS应用程序的POS***中应用本发明的一例,但本发明以对在操作***上执行的所有应用程序提供接口的对象为对象,都能够应用。即,主机10、10执行的应用程序不限定于POS应用程序,且本发明能够应用于在执行包含其他用途的各种应用程序,且对不限定于输出装置的各种设备进行控制的情况。
另外,图1、图2、图3(A)、图3(B)、图5、图6所示的各功能部示出了功能上的构成,不必由独立的硬件来构成各功能部,当然既能够通过软件与硬件的协作,将多个功能部的功能压缩成一个硬件来实现,还能够由多个硬件来实现一个功能部。
另外,进行上述动作的主机10、10所执行的程序,不限于主机10、10所具备的ROM进行存储的构成,既可以是在移动式的记录介质中存储的构成,或者也可以是可下载地存储在经由通信线路连接的其他装置中,主机10从这些装置下载上述程序来执行,关于其他构成,还可以任意变更。
符号说明
1、2…POS***、3…POS服务器、4、10…主机(控制装置)、11…POS应用程序、12、41…操作***、20…OPOS驱动器、21…打印机CO(第1对象)、22…打印机SO(第2对象)、23…IDispatch接口23、24…方法、25…扫描仪CO、26…扫描仪SO、27…收银抽屉CO、28…收银抽屉SO、30…包装SO(第3对象)、31…IDispatch接口、32…方法、40…控制部、42…PO应用、43…打印机驱动器、44…控制对象(通用控制单元、高层驱动器)、45…服务对象(字符数据生成单元、低层驱动器)、46…包装SO(字符代码变换单元)、46A…变换用数据、47…变换部(变换处理单元)、47A…字符代码集(Unicode)、48A…字符代码集(GB18030)、54…扫描仪(设备)、55…收银抽屉(设备)、60…打印机(设备、输出装置)、63A…输出用字体信息(字符集)、63B…代码页、64…记录控制部、401…数据、402、403…输出用数据、404…字符数据。
Claims (13)
1.一种销售终端POS的控制装置,其特征在于,能够执行应用程序来对扫描仪、打印机或所述控制装置的***设备当中的至少一种设备进行控制,该销售终端POS的控制装置具备:
第1对象,其对所述应用程序按所述设备的每个种类提供第1接口;
第2对象,其对所述第1对象按所述设备的每个种类提供第2接口,并以所述设备为单位执行处理;以及
第3对象,其具有与所述第2对象所不具有的功能、或者、对所述第2对象的功能进行改良、扩展、变更了的功能对应的方法,
所述第3对象,在通过所述第1对象对所述第2对象请求的方法中、至少一部分方法被所述第1对象请求了的情况下,代替所述第2对象来执行所述处理,在其他方法被所述第1对象请求了的情况下,对所述第2对象的方法进行请求。
2.根据权利要求1所述的控制装置,其特征在于,
所述第3对象介于所述第2对象提供的所述第2接口与所述第1对象之间,在所述其他方法被所述第1对象请求了的情况下,经由所述第2接口对所述第2对象的方法进行请求。
3.根据权利要求1或2所述的控制装置,其特征在于,
所述第1对象是按所述设备的每个种类提供的控制对象,
所述第2对象是按每个所述设备提供的服务对象。
4.根据权利要求1或2所述的控制装置,其特征在于,
所述应用程序是POS应用程序,
所述设备包含打印机,
所述第1对象以及所述第2对象是根据所述POS应用程序的请求对所述打印机进行控制的对象,
所述第3对象在所述第1对象调用了规定的字符代码集的打印方法的情况下,进行从所述规定的字符代码集向所述打印机能够对应的其他字符代码集的变换的处理,基于变换后的字符代码集,对所述第2对象的打印方法进行调用。
5.根据权利要求4所述的控制装置,其特征在于,
所述规定的字符代码集由Unicode表示,所述其他字符代码集由一个字节或者两个字节的字符代码表示。
6.根据权利要求1或2所述的控制装置,其特征在于,
所述第1对象是依据OPOS的控制对象,
所述第2对象对所述第1对象提供IDispatch接口作为所述第2接口,
所述第3对象对所述第1对象提供IDispatch接口,另一方面,经由所述第2对象的IDispatch接口对所述第2对象的方法进行请求。
7.根据权利要求1所述的控制装置,其特征在于,
所述设备包含通过所述控制装置进行控制的输出装置,
所述第1对象,是根据所述应用程序输出的数据来对多个种类的所述输出装置所共通的输出用数据进行输出的通用控制单元,
所述第2对象,是基于所述输出用数据中所含的规定的字符代码集的字符代码来生成所述输出装置所内置的字符集的字符数据的字符数据生成单元,
所述第3对象,是在所述输出装置所内置的字符集对应于与所述规定的字符代码集不同的其他字符代码集的情况下,介于所述通用控制单元与所述字符数据生成单元之间,将所述输出用数据中所含的所述规定的字符代码集的字符代码变换成所述其他字符代码集的字符代码,并对所述字符数据生成单元进行输出的字符代码变换单元。
8.根据权利要求7所述的控制装置,其特征在于,
所述输出装置是打印机,
所述打印机所内置的字符集由多个代码页中的字符代码来指定,并由用于使记录头进行印刷的字体数据构成,
所述字符数据生成单元根据所述规定的字符代码集的字符代码、或者所述其他字符代码集的字符代码,生成相应的代码页中相应的字符代码,并对所述打印机进行输出。
9.根据权利要求7或8所述的控制装置,其特征在于,
所述字符数据生成单元具有变换处理单元,该变换处理单元基于在操作***中设定的语言,将所述通用控制单元输出的所述输出用数据中所含的所述规定的字符代码集的字符代码变换成与所述设定的语言对应的字符代码集的字符代码。
10.根据权利要求9所述的控制装置,其特征在于,
所述字符代码变换单元将所述其他字符代码集的字符代码变成未经所述变换处理单元变换的格式的数据,并对所述字符数据生成单元进行输出,
所述字符数据生成单元,进行将从所述字符代码变换单元输入的数据恢复为所述其他字符代码集的字符代码的处理。
11.根据权利要求7或8所述的控制装置,其特征在于,
所述通用控制单元是高层驱动器,该高层驱动器执行所述应用程序调用的方法来对从所述应用程序输出的数据进行处理,并生成包含多个种类的所述设备能够共通使用的输出命令和通用字符代码集中的字符代码在内的数据,
所述字符数据生成单元是低层驱动器,该低层驱动器基于所述高层驱动器所生成的数据中所含的所述规定的字符代码集的字符代码,生成所述输出装置所内置的字符集的字符数据。
12.一种控制方法,其特征在于,通过能够执行应用程序来对扫描仪、打印机或控制装置的***设备当中的至少一种设备进行控制的销售终端POS的所述控制装置,对所述设备进行控制,所述控制方法包括:
第1工序,通过对所述应用程序按所述设备的每个种类提供第1接口的第1对象,来基于所述应用程序输出的数据对方法进行调用;
第2工序,通过对所述第1对象按所述设备的每个种类提供第2接口的第2对象,来执行以所述设备为单位的处理;以及
第3工序,在通过所述第1对象对所述第2对象请求的方法中、至少一部分方法被所述第1对象请求了的情况下,代替所述第2对象由第3对象执行所述处理,在其他方法被所述第1对象请求了的情况下,通过所述第3对象对所述第2对象的方法进行请求,
其中,所述第3对象具有与所述第2对象所不具有的功能、或者、对所述第2对象的功能进行改良、扩展、变更了的功能对应的方法。
13.根据权利要求12所述的控制方法,其特征在于,
在所述第1工序中,根据所述应用程序输出的数据,将多个种类的所述设备所共通的输出用数据输出,
在所述第2工序中,基于所述输出用数据中所含的规定的字符代码集的字符代码,生成所述设备所内置的字符集的字符数据,
所述第3工序是如下这样的工序:在所述设备所内置的字符集对应于与所述规定的字符代码集不同的其他字符代码集的情况下,介于所述第1工序与所述第2工序之间,将所述输出用数据中所含的所述规定的字符代码集的字符代码变换成所述其他字符代码集的字符代码。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011170222A JP5790267B2 (ja) | 2011-08-03 | 2011-08-03 | 出力制御システム、及び、制御方法 |
JP2011-170222 | 2011-08-03 | ||
JP2011-195746 | 2011-09-08 | ||
JP2011195746A JP5906620B2 (ja) | 2011-09-08 | 2011-09-08 | 制御装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102915215A CN102915215A (zh) | 2013-02-06 |
CN102915215B true CN102915215B (zh) | 2015-05-27 |
Family
ID=47613593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210250667.8A Expired - Fee Related CN102915215B (zh) | 2011-08-03 | 2012-07-19 | 控制装置以及控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9110615B2 (zh) |
CN (1) | CN102915215B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5903871B2 (ja) * | 2011-12-19 | 2016-04-13 | セイコーエプソン株式会社 | デバイス制御装置、デバイス制御システム、デバイス制御方法およびプログラム |
TWI505178B (zh) * | 2012-03-23 | 2015-10-21 | Seiko Epson Corp | Printing systems and printers |
CN103342054A (zh) * | 2013-05-22 | 2013-10-09 | 深圳市爱夫卡科技有限公司 | 用于汽车故障诊断仪的热敏打印机和汽车故障诊断仪 |
US9785659B2 (en) * | 2013-08-01 | 2017-10-10 | International Business Machines Corporation | Protecting storage data during system migration |
JP2015166919A (ja) * | 2014-03-03 | 2015-09-24 | 株式会社リコー | プログラム、情報処理装置、及び印刷システム |
JP6340994B2 (ja) * | 2014-08-22 | 2018-06-13 | スター精密株式会社 | プリンタ、印刷システムおよび印刷制御方法 |
US10429810B2 (en) | 2016-06-07 | 2019-10-01 | Funai Electric Co. Ltd. | Fluidic device control |
JP6819337B2 (ja) * | 2017-02-10 | 2021-01-27 | セイコーエプソン株式会社 | 印刷装置、及び、印刷装置の制御方法 |
CN108537086A (zh) * | 2018-03-29 | 2018-09-14 | 广东欧珀移动通信有限公司 | 信息显示方法、装置、存储介质及移动终端 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940845A (en) * | 1997-12-05 | 1999-08-17 | International Business Machines Corporation | System for accessing databases with different character sets |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07325808A (ja) | 1994-05-31 | 1995-12-12 | Canon Inc | 文書処理装置およびその処理方法 |
JPH09106355A (ja) | 1995-10-12 | 1997-04-22 | Seiko Epson Corp | 複数のオブジェクトを用いた制御システム、その構築方法および周辺装置制御システム |
EP0762273B1 (en) | 1995-09-06 | 2002-05-15 | Seiko Epson Corporation | Peripheral device control system using a plurality of objects |
JPH0997141A (ja) | 1995-09-28 | 1997-04-08 | Mitsubishi Electric Corp | Windows用端末エミュレータ印刷方法 |
US6305007B1 (en) | 1998-07-24 | 2001-10-16 | Computer Associates Think, Inc. | Object property meta model emulator for legacy data structures |
JP2000293375A (ja) | 1999-04-05 | 2000-10-20 | Toshiba Information Systems (Japan) Corp | オブジェクト指向計算機システム及びプログラムを記憶したコンピュータ読み取り可能な記憶媒体 |
US6906812B2 (en) | 2000-04-14 | 2005-06-14 | Seiko Epson Corporation | Symbol printer, symbol printing method, symbol printer driver, and a data storage medium storing a symbol printing program |
JP4792646B2 (ja) | 2001-03-12 | 2011-10-12 | セイコーエプソン株式会社 | シンボルプリンタ用ドライバ、及び情報記録媒体 |
JP3915876B2 (ja) | 2000-12-28 | 2007-05-16 | セイコーエプソン株式会社 | 文字列データの処理方法および処理装置 |
JP2002200796A (ja) | 2000-12-28 | 2002-07-16 | Seiko Epson Corp | プリンタドライバ、印刷制御方法及び情報記録媒体 |
JP4362977B2 (ja) | 2001-01-16 | 2009-11-11 | セイコーエプソン株式会社 | デバイス状態監視装置 |
JP4491989B2 (ja) * | 2001-04-17 | 2010-06-30 | セイコーエプソン株式会社 | 制御システム |
JP2002318703A (ja) | 2001-04-20 | 2002-10-31 | Seiko Epson Corp | 制御システム |
JP2004265136A (ja) | 2003-02-28 | 2004-09-24 | Toshiba Corp | 文字入力装置、文字入力方法、及び文字入力プログラム |
JP2004318523A (ja) | 2003-04-16 | 2004-11-11 | Seiko Epson Corp | デバイスドライバ、デバイスドライバの制御方法およびデバイスドライバプログラム |
JP4470828B2 (ja) | 2005-07-21 | 2010-06-02 | 富士ゼロックス株式会社 | プリンタ、プリンタドライバ |
US8614833B2 (en) | 2005-07-21 | 2013-12-24 | Fuji Xerox Co., Ltd. | Printer, printer driver, printing system, and print controlling method |
JP4618724B2 (ja) | 2005-08-16 | 2011-01-26 | 財団法人電力中央研究所 | データ処理システム並びにデータ処理システムにおける装置データの取得方法及び設定方法 |
EP1977341A2 (en) * | 2006-01-24 | 2008-10-08 | ZIH Corporation | Global printing system and method of using same |
US8225333B2 (en) * | 2007-07-31 | 2012-07-17 | Microsoft Corporation | POS hardware abstraction |
JP2009140063A (ja) | 2007-12-04 | 2009-06-25 | Seiko Epson Corp | ファイル管理モジュール、印刷装置、ファイル管理方法、ファイル管理プログラム |
JP5418018B2 (ja) | 2009-06-29 | 2014-02-19 | セイコーエプソン株式会社 | 出力制御データ生成装置、データ生成方法およびプログラム |
JP2011011416A (ja) | 2009-07-01 | 2011-01-20 | Casio Electronics Co Ltd | 印刷システム |
JP5493764B2 (ja) | 2009-11-20 | 2014-05-14 | セイコーエプソン株式会社 | 制御装置、制御装置の制御方法、及び、プログラム |
-
2012
- 2012-07-19 CN CN201210250667.8A patent/CN102915215B/zh not_active Expired - Fee Related
- 2012-07-30 US US13/561,605 patent/US9110615B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940845A (en) * | 1997-12-05 | 1999-08-17 | International Business Machines Corporation | System for accessing databases with different character sets |
Also Published As
Publication number | Publication date |
---|---|
US20130033720A1 (en) | 2013-02-07 |
US9110615B2 (en) | 2015-08-18 |
CN102915215A (zh) | 2013-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102915215B (zh) | 控制装置以及控制方法 | |
US9262106B2 (en) | Method of adding value to print data, a value-adding device, and a recording medium | |
EP2942706B1 (en) | Data conversion system, data conversion device, and data conversion method | |
US20150220903A1 (en) | Function expansion method using print data, function expansion device, and recording medium | |
US9058139B2 (en) | Function expansion method using print data, and function expansion device | |
US9135534B2 (en) | Image processing device, image processing system, and printing method | |
US9898691B2 (en) | Control device, control system, and control method of a control device | |
JP2015114687A (ja) | プリンター及び制御方法 | |
US8134733B2 (en) | Pre-concatenation execution method and system for automated prepress process nodes | |
EP2144185A1 (en) | Printing control device, control method for a printing device, and a control program | |
US9111198B2 (en) | Print control method, print control device, and storage medium | |
JP5790267B2 (ja) | 出力制御システム、及び、制御方法 | |
JP2012058846A (ja) | 出力先を分散するための印刷データ処理プログラム、印刷データ処理装置、及び、印刷データ処理方法 | |
JP5736851B2 (ja) | 印刷データを用いた売上分析用プログラム、売上情報取得装置、及び、売上情報取得方法 | |
EP3142086B1 (en) | Print data processing device, print data processing method, program, and printing system | |
US9704071B2 (en) | Printing device, control method of a printing device, and storage medium for managing font printouts | |
JP5600960B2 (ja) | ホストコンピュータ、印刷データ生成方法およびプログラム | |
US9195655B2 (en) | Method and system for transforming documents | |
JP5906620B2 (ja) | 制御装置の制御方法 | |
JP2016095607A (ja) | ドライバープログラム、印刷システム、及び、データ処理方法 | |
JP6075427B2 (ja) | 印刷制御方法、及び、プリンタードライバー |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150527 Termination date: 20210719 |
|
CF01 | Termination of patent right due to non-payment of annual fee |