用于开发成像装置的应用的方法和装置的制作方法

文档序号:6370914阅读:148来源:国知局
专利名称:用于开发成像装置的应用的方法和装置的制作方法
用于开发成像装置的应用的方法和装置
相关申请的交叉引用
本发明要求2011年6月3日在韩国知识产权局提交的韩国专利申请第 10-2011-0054137号的优先权,其公开内容通过弓I入在此整体并入。技术领域
本发明总的构思涉及一种用于开发成像装置的应用的方法和装置。
背景技术
最近,其中蜂窝电话功能和计算机功能相结合的智能手机的普及增加了针对智能手机的应用开发的关注。特别是,为了鼓励应用开发,大多数智能手机制造商和供应商采用了开放的架构,其中每种类型的智能手机的内部结构(例如,应用程序接口( API))向公众开放。甚至在电视机(TV)领域,这样的智能手机应用开发策略的成功进展鼓励了在类似于智能手机的智能TV上的应用开发。然而,在成像装置领域的应用开发,如打印机,则需要更多的研究。发明内容
本发明总的构思提供一种用于开发成像装置的应用的方法和装置,由此提供其中缺乏计算机知识的一般用户能够容易地开发应用而无需执行应用的上载或下载过程的环境。本发明总的构思也提供一种用于实现开发应用的装置的记录介质。本发明总的构思不局限于所述技术方面,并且可以从说明书的内容中推出其他的技术方面。
本发明总的构思的另外的特征和用途将部分地在下面的描述中阐明,部分地从描述中明显得出,或由本发明的实践中领悟。
依据本发明总的构思,提供一种开发成像装置的应用的方法,该方法包括执行存储在成像装置的解决方案,该解决方案提供开发成像装置的应用的工具;根据解决方案的执行来显示成像装置的功能;通过基于用户的输入信息组合功能来产生对应于用户的输入信息的应用;和在成像装置中存储产生的应用。
本发明总的构思也提供一种成像装置,包括具有多个功能的硬件元件,该多个功能包括至少一个成像功能;存储器,用于存储解决方案和使用该解决方案开发的至少一个应用,该解决方案提供开发成像装置的应用的工具;和处理器,用于通过执行存储在存储器的应用而根据应用来控制硬件元件的操作,其中通过组合根据解决方案的执行而显示的成像装置的功能来产生该应用。
本发明总的构思也提供一种成像装置的记录介质,在其上按照层次结构记录数据块,该数据块包括固件块,对应于包括成像装置的固有功能的固件;封装块,对应于连接固有功能到成像装置的应用程序接口(API)函数的封装功能的集合;API块,对应于成像装置的API函数的集合;和解决方案块,对应于提供用于开发成像装置的应用的工具的解决方案。
本发明总的构思的前述和/或其他方面也可以通过提供开发成像装置的应用的 方法来实现,该方法包括执行存储在成像装置的解决方案,该解决方案提供开发成像装置 的应用的工具;显示成像装置的功能;依据用户输入的信息组合该功能;以及依据输入信 息产生应用。
该方法还可以包括通过确保成像装置的存储器的存储空间来设置开发应用所需 的成像装置的环境;并且在存储器中存储产生的应用。
本发明总的构思的前述和/或其他方面也可以通过提供一种成像装置来实现,该 成像装置包括包含成像装置的功能的硬件元件;存储器,用于存储解决方案,该解决方案提 供开发应用的工具;和处理器,用于根据存储在存储器的解决方案控制硬件元件的操作,该 应用是通过组合根据用户输入的信息排列的功能而产生的,并且所产生的应用存储在存储 器中。
工具可以利用在主机的操作系统中可执行的二进 制代码来描述,并且该解决方案 通过主机或成像装置的任何一个来执行。


本发明总的构思的这些和/或其他特征和用途将从结合附图的实施例的下述描 述中变得明显和更容易领会,其中I说明依照本发明总的构思的实施例的打印机应用开发环境;2说明依照本发明总的构思的实施例的打印机的框图;3说明依照本发明总的构思的实施例的打印机的应用开发装置的框图;4说明在图3所示的应用程序接口(API)块和模块之间的连接关系;5说明依照本发明总的构思的另一实施例的打印机的应用开发装置的框图;6说明在图5所示的API块和解决方案块之间的连接关系;7是说明依照本发明总的构思的实施例的开发打印机的应用的方法的流程图; 8是说明依照本发明总的构思的实施例的执行打印机的应用的方法的流程图; 9是说明依照本发明总的构思的另一实施例的开发打印机的应用的方法的流








图 程图10是说明依照本发明总的构思的另一实施例的执行打印机的应用的方法的流 程图11说明依照本发明总的构思的实施例的包括用于开发打印机的应用的图形工 具的窗口 ;
图12说明通过使用图11所不的窗口的图形工具开发应用的不例;以及
图13说明通过使用图11所不的窗口的图形工具开发应用的另一不例。
具体实施方式
现在详细参照本发明总的构思的实施例,其示例在附图中示出,其中相同的参考 标记自始至终表示相同的组件。下面描述各实施例以便参考附图来解释本发明总的构思。
具体地,作为在权利要求中公开的成像装置的示例,具有用于在纸张上形成物理 图像的打印功能和用于检测在纸张上记录的图像的扫描功能的打印机将被描述作为本发明总的构思的实施例。然而,打印机可以表示多功能外设(MFP)。此外,在权利要求中公开的成像装置可以除下面描述的打印机之外应用到其他类型的成像装置。
图I是根据本发明总的构思的实施例的打印机应用开发环境。在图I中,作为打印机100的示例,示出了具有打印功能和扫描功能的MFP。然而,这仅仅是一个例子,并且打印机100可以是MFP之外的其它类型的打印机,例如,不具有扫描功能的打印机。此外,在图I中,作为主机200的示例,示出了个人计算机(PC)。然而,这仅仅是一个例子,并且主机 200可以是PC之外的其它类型的主机,例如具有计算功能的蜂窝电话机(诸如智能手机)。
由于打印机100基本上是执行打印从主机200发送的内容(如文本和图像)的功能,所以打印机100和主机200几乎总是以有线或无线方式彼此连接。因此,主机200可以比其它电子设备(如智能手机或电视机)更容易访问打印机100。对打印机100的容易访问可以提供在主机200中开发打印机100的应用所需的良好环境。
同时,在嵌入式系统(如智能手机)的情况中,为了鼓励应用开发,硬件制造商和供应商采用其中向公众开放应用程序接口(API)的开放式架构。通常,应用开发不是在嵌入式系统而是在支持应用开发所需的硬件性能的PC中执行。为了在PC中开发智能手机的应用,必须在PC中安装交叉编译器和仿真器,其中交叉编译器用于将应用翻译成包括在智能手机中可执行的代码的二进制文件,仿真器用于在PC中虚拟执行应用。这样在PC中开发的应用被上载到在线应用商店。用户下载上载的应用到用户的智能手机中,并使用下载的应用。
如上所述,在传统的应用开发环境中,应用开发者必须在PC安装和使用诸如交叉编译器和仿真器之类的程序,而这在缺乏计算机知识的大多数人开发应用时是一种障碍。 此外,上传应用到在线应用商店或从在线应用商店下载应用的过程需要将PC或智能手机连接通用串行总线(USB)或网络的过程,这造成了用户的不便。尤其是,对于缺乏计算机知识的一般用户,当在嵌入系统(如智能手机)中出现某些要求时,他们必须等待固件更新或应用启动以满足这些要求。
在下面描述的实施例中,通过使用对打印机100的容易访问,可以提供其中缺乏计算机知识的一般用户可以容易地通过使用PC的屏幕上的图形工具来开发应用而无需在 PC中安装诸如交叉编译器和仿真器之类的程序的环境。因此,可以立即满足打印机100的用户要求。此外,在下面描述的实施例中,可以通过消除上载应用到在线应用商店和从在线应用商店下载应用的过程而最小化用户不便。
图2是依照本发明总的构思的实施例的打印机100的框图。参照图2,打印机100 包括处理器110、存储器120、打印单元130、扫描单元140、通信单元150和用户界面(UI)面板160。图2中示出的打印机100具有打印机功能和扫描功能。然而,这仅仅是一个例子, 并且下面描述的实施例的技术特征可应用于其它类型的打印机,例如没有扫描功能的打印机。此外,上面描述的硬件元件仅仅是在打印机中具有一般功能的基本组件的示例,并且另外的硬件元件可以进一步增加到图2所示的打印机100中。例如,打印机100还可以包括具有基于公共交换电话网(PSTN)的电话功能以支持传真功能的硬件元件。
处理器110根据存储在存储器120中的应用通过执行该应用来控制打印机100的硬件元件的操作。更具体地,处理器110通过执行打印机100的基于固件(如操作系统(OS) 和设备驱动程序)的应用的指令而根据该应用的指令来控制打印机100的硬件元件(例如存储器120、通信单元150、打印单元130、扫描单元140和Π面板160)的操作。因此,该应用可以实施打印机100的某些功能。在当前实施例中,术语“执行(execution)”表示处理器 110执行应用的指令,而术语“实施(performing)”表示打印机100的某些功能通过执行计算机程序(如应用程序)来实施。处理器110可被实现为单个芯片或多个芯片,如中央处理器(CPU)和专用处理器。专用处理器可以是完全负责打印机100的具体工作的处理器,例如,用于处理通过网络发送和接收的数据分组的网络处理器。
存储器120根据处理器110的控制来存储或提供数据。存储器120存储各种类型的数据(如固件(例如OS和设备驱动程序))、执行文件(例如应用)和打印单元130请求打印的内容(例如文本和图像)。可以利用单个存储介质(诸如快闪存储器)或利用多个存储媒介 (诸如随机存取存储器(RAM)、只读存储器(ROM)、硬盘和快闪存储器)来实现存储器120。此外,存储器120可包括可从打印机100拆卸的存储设备。例如,如下所述的称为应用开发解决方案的应用可存储在可从打印机100拆卸的存储设备中。
打印单元130根据处理器110的控制来打印从处理器110输入的内容(如文本和图像)。打印单元130可分为送纸的机械部分和在纸张上形成图像的引擎部分。扫描单元 140根据处理器110的控制检测在插入扫描单元140的纸张上的图像。扫描单元140可分为用于检测纸张上的图像的图像传感器和用于转动该图像传感器的机械部分。由于打印单元130和扫描单元140的详细结构和操作不对应于目前实施例的特征并且在图2所示的实施例所属的技术领域中公知,所以省略对其的详细说明。
通信单元150根据处理器110的控制与其它设备(如主机200)通信。通信单元 150可以从主机200接收内容和关于内容的打印命令并且向主机200发送指示处理结果的响应。通信单元150可分为机械部件(如连接器(诸如USB线缆和网络线缆之类的通信线缆插入其中))和用于根据不同通信方法(USB标准和网络通信标准)来控制数据传输的电路部件。上面描述的USB和网络仅仅是目前使用的各种通信方法的 例子,并且通信单元150 可以支持其它通信方法(例如,蓝牙)。
在当前实施例中,为了将在主机200中开发的应用直接存储到存储器120中而无需上载或下载该应用,主机200可以从存储器120中读取和执行提供用于开发打印机100 的应用的工具的应用开发解决方案以及存储通过使用该应用开发解决方案开发的应用到存储器120中。要做到这一点,通信单元150可以具有将存储器120连接主机200的功能从而主机200可以识别存储器120。如果应用不是在主机200中开发而是在打印机100中开发,则通信单元150不必有该连接功能。
与执行通常的数据处理工作(如文字处理和网上冲浪)的PC不同,因为打印机100 被设计成一类具有有限资源的、用于打印工作或扫描工作的嵌入系统,所以在打印机100 中一般不包括通常的输入和输出设备(如鼠标、键盘和显示器)。根据将在下面描述的实施例,由于以图形用户界面(GUI)的形式提供开发应用的工具从而不要求文本输入,所以可以使用UI面板160的触摸屏来开发应用。在这种情况下,必须支持打印机100的用于开发应用的足够的硬件性能(例如处理器110的性能)和存储器120的容量。
当通信单元150具有将存储器120连接主机200的功能时,由主机200经由通信单元150读取并执行存储在存储器120中的应用开发解决方案。例如,当打印机100经由 USB连接主机200时,通信单元150通过使用USB的海量存储类(MSC)协议将存储器120连接到主机200。在这种情况下,存储器120可以由主机200通过MSC协议而被识别为可移除盘。另一个例子,当打印机100通过网络连接到主机200时,通信单元150通过使用网络的服务器消息块(SMB)协议将存储器120连接到主机200。在这种情况下,存储器120可以由主机200通过SMB协议而被识别为网络驱动器。
USB和网络仅仅是目前使用的各种通信媒介的例子,并且打印机100的存储器120 可以通过其它通信媒介连接主机200。通过用于将打印机100的存储器120连接到主机200 的通信媒介来发送用于开发打印机100的应用的数据(例如应用开发解决方案和用户输入信息)和通过使用该数据产生的应用。此外,也要求用于发送用于实施打印机100的某些功能的数据(如主机200所期望打印的内容)的通信媒介。前者的通信媒介和后者的通信媒介可以单独存在或可能是相同的通信媒介。例如,主机200和打印机100可以经由USB发送和接收与应用开发相关的数据,并同时经由网络发送和接收与打印机100的打印作业相关的数据。另外,主机200和打印机100可经由单个USB同时发送和接收与应用开发相关的数据以及与打印机100的打印作业相关的数据。在这种情况下,通信单元150通过使用 USB的打印机类协议连接打印机100到主机200,并且主机200通过使用打印机类协议发送与打印机100的打印作业相关的数据。
UI面板160根据处理器110的控制在用户和打印机100之间进行接口操作。例如,Π面板160可以根据处理器110的控制以图形形式显示用户使用来选择并组合打印机 100的各个功能的工具。当用户使用该工具输入某个指令或信息到Π面板160时,Π面板 160将指令或信息发送到处理器110。UI面板160可以以图标形式显示打印机100的功能, 以便以图形形式向用户显示用于使用打印机100的功能的工具。打印机100的功能可以是 API函数的功能或与API函数的组合对应的模块的功能。如上所述,因为打印机100被设计成一类具有有限资源的用于处理打印作业或扫描作业的嵌入系统,所以在打印机100中一般不包括通常的输入和输出设备(如鼠标、键盘和显示器)。因此,通常利用触摸屏或小液晶显示器(IXD)屏幕和几个输入按钮来实现Π面板160。
图3是依照本发明总的构思的实施例的打印机100的应用开发装置的框图。图 3所示的实施例对应于其中通过使用下述模块来开发打印机100的应用的情形所述模块是其中预先交叉编译API函数的组合的形式的二进制文件。不同于其中通过使用存储在主机200中的交 叉编译器来执行编译的情况,因为与作为预先交叉编译形式的二进制文件的模块的组合对应的应用被产生并被自动存储到打印机100的存储器120中,所以不需要在主机200中安装交叉编译器和仿真器,并且不必执行应用的上载和下载过程。参照图3, 存储器120按照层次结构存储数据块,诸如固件(F/W)块31、封装块32、API块33、模块组 (module block) 34和解决方案块35。如上所述,存储器120可进一步存储各种数据,诸如内容(例如文本和图像)和应用。
F/W块31是与通过被处理器110执行并且驱动打印机100的硬件元件来实施打印机100的各种功能的固件对应的数据块。固件的代表性示例是OS (操作系统)和形成打印机100的平台的设备驱动程序。打印机100的硬件元件的例子是通信单元150、打印单元 130、扫描单元140和UI面板160。固件描述打印机100的硬件元件的操作,以利用在处理器110中可执行的代码分别实施打印机100的各种功能,以及处理器110根据固件来控制打印机100的硬件元件的操作。F/W块31包括由处理器110执行的用于实施打印机100的各个单元功能的固有功能(native function)。单个固有功能利用二进制代码来描述打印机100的硬件元件的操作以实施打印机100的相应的单元功能。例如,单个固有功能可执行大功能(如扫描单元140的扫描启动)或小功能(诸如马达的旋转以按1°的角度送纸)。 处理器110控制打印机100的至少一个硬件元件以执行对应于包括在F/W块31中的固有功能的每一个的功能。
封装块32是与一对一地连接F/W块31的固有功能和API块33的API函数的封装功能的集合对应的数据块。API块33是与API函数的集合对应的数据块,该API函数通过经由封装块32的封装功能而被一对一地连接到F/W块31的固有功能以及通过处理器110 来执行而实施打印机100的单元功能。由于API函数存在于固有功能的上层,所以和固有功能不同,可以在应用中直接调用API函数,并且可以在不用考虑任何计算机系统的任何 OS的情况下使用API函数。因此,应用开发人员可以使用在PC中的API函数来开发PC之外的任何嵌入式系统的应用。也就是说,在当前实施例中,API函数作为固件和应用之间的接口,从而应用可以请求打印机100的固件执行预定的功能。
模块组34是与由处理器110执行的并且实施与API块33的API函数中的某一些的组合对应的功能的模块的集合对应的数据块。传统上,应用开发者利用在PC中指定为开发语言的编程语言通过组合由硬件制造商或供应商提供的API函数来产生嵌入式系统(如智能手机)的应用。因此,要求将利用编程语言产生的应用转译成在嵌入式系统中可执行的二进制文件的交叉编译。在当前实施例中,为了消除这样的交叉编译过程,每个模块是通过对API块33的API函数中的某一些的组合进行预先交叉编译而获得的二进制文件。也就是说,在当前实施例的每个模块中,通过使用API块33的API函数中的某一些的组合、利用在打印机100中可执行的二进制代码来描述打印机100的功能(其与API块33的API函数中的某一些的组合对应)。在打印机100中可执行的二进制代码表示在打印机100的固件中可执行的二进制代码并且最终指示由处理器110执行的二进制代码。
图4说明在图3中示出的API块33和模块组34之间的连接关系。参照图4,第一模块I对应于第一 API I和第二 API 2的组合,第二模块2对应于第二 API 2、第三API 3 和第四API 4的组合,而第三模块3对应于第三API 3和第五API 5的组合。例如,可以通过组合用于从打印机100的存储器120中存储的地址簿读取电子邮件地址的API函数、用于指定一些电子邮件地址的API函数、和用于检测通过预定电子邮件地址接收的电子邮件的API函数,来产生用于检测通过在打印机100的用户当中预定的至少一个用户的电子邮件地址接收的电子邮件的模块。
回到图3,解决方案块35是与下述应用开发解决方案对应的数据块,所述应用开发解决方案提供用于通过使用打印机100的API函数以GUI的形式开发打印机100的应用的工具。在图3中示出的实施例中,应用开发解决方案为用户提供了用于选择并组合与API 函数的组合对应的一些模块的图形工具。更具体地,应用开发解决方案可以是负责与用户的交互的最上层,并且通过执行应用开发解决方案,可以从模块组34中读取有关模块的信息,并且可向用户提供有关模块的信息。例如,应用开发解决方案可以以图标形式向用户显示关于模块的信息。用户可以通过参考有关模块的信息而不同地组合各模块来开发各种应用。此外,应用开发解决方案可以提供允许用户修改模块或创建新的模块的功能。例如,应用开发解决方案可以从API块33读取有关API函数的信息,并且向用户提供关于API函数的信息。用户可以通过参考关于API函数的信息来修改模块或创建新的模块。
根据图3中所示的实施例的应用开发解决方案,可以利用在主机200的OS中可执行的二进制代码来描述用于开发打印机100的应用的工具,由此可以由主机200执行应用开发解决方案。另外,根据应用开发解决方案,可以利用在打印机100的OS中可执行的二进制代码来描述用于开发打印机100的应用的工具,由此可以由打印机100实行应用开发解决方案。
图5是依照本发明总的构思的另一实施例的打印机100的应用开发装置的框图。 在图5中示出的实施例对应于其中通过存储在打印机100的存储器120中的交叉编译器来编译用户开发的应用的情形。与使用存储在主机200中的交叉编译器执行编译的情况不同,因为用户开发的应用被自动存储到打印机100的存储器120中并且被编译,所以不必在主机200中安装交叉编译器和仿真器,以及不必执行应用的上载和下载过程。参照图5,存储器120按照层次结构存储数据块,诸如F/W块51、封装块52、编译器块53、API块54和解决方案块55。由于F/W块51、封装块52和API块54和图3所示的F/W块31、封装块32和 API块33是相同的数据块,所以将不再对它们进行描述。
编译器块53是与下述交叉编译器对应的数据块,所述交叉编译器用于将通过使用应用开发解决方案开发的应用的编程代码转译成在打印机100中可执行的二进制代码。 解决方案块55是与下述应用开发解决方案对应的数据块,所述应用开发解决方案提供通过使用打印机100的API函数以⑶I的形式开发打印机100的应用的工具。在图5中示出的实施例中,应用开发解决方案为用户提供用于选择并组合与API函数的组合对应的一些模块的图形工具。更具体地,应用开发解决方案可以是负责与用户的交互的最上层,并且通过执行应用开发解决方案,可以从API块54中读取有关API的信息,并且可提供有关API的信息给用户。例如,应用开发解决方案可以以图标的形式向用户显示关于API的信息。用户可以通过参考有关API的信息而不同地组合各API来开发各种应用。
根据图5中示出的实施例的应用开发解决方案,可以利用在主机200的OS中可执行的二进制代码来描述用于开发打印机100的应用的工具,由此可以由主机200执行应用开发解决方案。另外,根据应用开发解决方案,可以利用在打印机100的OS中可执行的二进制代码来描述用于开发打印机100的应用的工具,由此可以由打印机100执行应用开发解决方案。
图6说明在图5中示出的API块54和解决方案块55之间的连接关系。参考图 6,第一应用I对应于第一 API I和第二 API 2的组合,第二应用2对应于第二 API 2、第三 API 3和第四API 4的组合,而第三应用3对应于第三API 3和第五API 5的组合。例如, 可以通过组合用于从打印机100的存储器120中存储的地址簿读取用户的电子邮件地址的 API函数、用于指定一些电子邮件地址的API函数、用于检测通过预定的电子邮件地址接收的电子邮件的API函数、用于将电子邮件的内容转换为可打印形式的API函数、用于递送打印纸的API函数和用于以可打印形式打印数据的API函数,来产生用于打印通过在打印机 100的用户当中预定的至少一个用户的电子邮件地址接收的电子邮件的应用。上述API函数仅仅是示例,可以由硬件制造商和供应商提供各种API函数。
图7是说明依照本发明总的构思的实施例的开发打印机100的应用的方法的流程图。图7中示出的方法对应于其中通过使用下述模块来开发打印机100的应用的情形所述模块是其中预先交叉编译API函数的组合的形式的二进制文件,并且所述方法包括由图 3中示出的打印机100和主机200顺序处理的操作。因此,虽然以下没有描述,但是上述的关于在图3中示出的打印机100和主机200的内容适用于图7中示出的方法。
在操作71,当用户开启打印机100时,电源被提供给打印机100的硬件元件。打印机100经由诸如USB线缆或网络线缆的通信线缆连接到主机200。在操作72,主机200识别打印机100。例如,打印机100的驱动程序被安装在主机200中,并且主机200的OS可以借助该驱动程序来识别打印机100。如果主机200是一对一地连接到打印机100,则主机200 将打印机100设备为本地打印机。如果主机200经由网络连接到打印机100,则主机200将打印机100识别为网络打印机。
根据图3中示出的实施例,在打印机100的存储器120中存储用于开发打印机100 的应用的数据,诸如打印机100的应用开发解决方案。主机200从打印机100的存储器120 中读取打印机100的应用开发解决方案,并执行打印机100的应用开发解决方案。主机200 在打印机100的存储器120中存储通过使用打印机100的应用开发解决方案所产生的应用。因此,为了让主机200从打印机100的存储器120读取某些数据或在打印机100的存储器120中存储某些数据,主机200必须能够识别打印机100的存储器120,就如它是主机 200的本地存储器一样。也即,在图7中示出的实施例中,主机200将打印机100识别为本地打印机或网络打印机并且同时识别打印机100的存储器120。
为了使主机200识别打印机100的存储器120,主机200必须识别连接主机200到打印机100的存储器120的通信介质、以及用于连接主机200到打印机100的存储器120 的通信协议取决于该通信介质的类型。因此,在操作73,主机200识别在主机200和打印机 100的存储器120之间的连接方案。例如,如果主机200经由USB连接到打印机100的存储器120,则主机200在操作73中将在主机200和打印机100的存储器120之间的连接方案识别为USB并且前进到操作74,如果主机200经由网络连接到打印机100的存储器120,则主机200在操作73中将在主机200和打印机100的存储器120之间的连接方案识别为网络并且前进到操作75。在操作74中,主机200通过USB的MSC协议而将打印机100的存储器120识别为可移除盘。在操作75,主机200通过SMB协议而将打印机100的存储器120 识别为网络驱动器。
在操作76,当主机200从用户接收到打印机100的应用开发解决方案的执行命令并且发送该执行命令到打印机100时,打印机100通过确保执行在存储器120的API块33 中包括的API函数、执行在存储器120的模块组34中包括的模块、以及执行在存储器120的解决方案块35中包括的应用开发解决方案所需的存储器120的存储空间,并且初始化API 函数、模块和应用开发解决方案来设置应用开发所需的打印机100的环境。例如,指示打印机100的应用开发解决方案的图标可以显示在主机200的屏幕上。如果用户通过使用输入设备(如鼠标)点击了此图标,则主机200从用户接收打印机100的应用开发解决方案的执行命令,并且发送该执行命令到打印机100。作为初始化API函数、模块和应用开发解决方案的一个例子是将API函数、模块和应用开发解决方案的程序内部变量组合成初始值。如果在操作76中完成打印机100的环境设置,则主机200可以读取存储在打印机100的存储器120中的应用开发解决方案。可根据打印机100的硬件性能、打印机100的API函数的特征而省略在操作76中设置打印机100的环境的过程。
在操作77中,主机200从在操作74或操作75中识别的打印机100的存储器120 中读取打印机100的应用开发解决方案并且执行它。也即,根据实行的应用开发解决方案, 在主机200的屏幕上显示其上显示用于开发打印机100的应用的图形工具的窗口。在操作 78,主机200在包括用于开发打印机100的应用的图形工具的窗口中从在操作74或操作75 中识别的打印机100的存储器120中读取指示打印机100的功能的模块,并且将模块显示为图标。
在操作79,主机200通过根据用户输入的信息组合在操作78显示的某些模块来产生对应于用户的输入信息的应用。当用户识别出与在操作77中显示的窗口中的模块对应的图标的功能时,用户通过输入设备(如鼠标)组合对应于用户期望的应用的组件的模块。 如上所述,每个模块利用在打印机100可执行的二进制代码描述了与API函数的特定组合对应的打印机100的功能。主机200可通过组合利用二进制代码描述的打印机100的功能通过根据用户指定的模块的组合的模块产生利用二进制代码描述的应用。在操作710,主机200将在操作79中产生的应用存储到在操作74或操作75中识别的打印机100的存储器120中。
另一方面,如果应用是在打印机100中而不是在主机200中开发,则由于主机200 无需识别打印机100和打印机100的存储器120,所以可以省略操作72至75,并且操作76 到710由打印机100而不是由主机200来执行。例如,当打印机100从用户接收到打印机 100的应用开发解决方案的执行命令时,打印机100设置应用开发所需的打印机100的环境并且执行该应用开发解决方案。
图8是说明依照本发明总的构思的实施例的执行打印机100的应用的方法的流程图。图8中示出的方法对应其中执行打印机100的下述应用的情形,其中所述应用是通过使用作为其中预先交叉编译API函数的组合的形式的二进制文件的模块来开发的,并且所述方法包括由图3中示出的打印机100顺序处理的操作。因此,虽然以下没有描述,但是上述的关于在图3中示出的打印机100的内容适用于图8中示出的方法。
在操作81,打印机100显示在打印机100的存储器120中存储的应用。可以在Π 面板160上以图标形式显示该应用。在操作82,当打印机100从用户接收到指示在操作81 中显示的应用中的任何一个的信息时,打印机100执行用户选择的应用。用户可以通过触摸(或经由 UI面板开启)在UI面板160上显示的图标中的任何一个来选择应用。在操作 83,根据操作82中应用的执行,打印机100以模块的组合顺序从模块组34中顺序读取并执行在应用中包括的模块。在操作84,根据操作83中模块的执行,打印机100以API函数的组合顺序从API块33中顺序读取并执行在每个模块中包括的API函数。在操作85,根据在操作84中API函数的执行,打印机100通过将API函数分别连接到固有功能的封装功能从F/W块31顺序读取并且执行分别与API函数对应的固有功能来驱动打印机100的硬件元件。通过驱动打印机100的硬件元件,实现由选择的应用指示的打印机100的功能。
图9是说明依照本发明总的构思的另一实施例的开发打印机的应用的方法的流程图。图9中示出的方法对应于其中通过在打印机100的存储器120中存储的交叉编译器来编译用户开发的应用的情形,并且所述方法包括由如图5中所示的打印机100和主机200 顺序处理的操作。因此,虽然以下没有描述,但是上述的关于在图5中示出的打印机100和主机200的内容适用于在图9中示出的方法。
由于识别打印机100和打印机100的存储器120的过程和图7中示出的方法相同, 所以操作91至95和操作71至75相同。此外,对于其余的操作,只描述不同于图7中示出的方法的部分。
在操作96,当主机200从用户接收到打印机100的应用开发解决方案的执行命令并且发送该执行命令到打印机100时,打印机100通过确保执行在打印机100的存储器120 的编译器块53中包括的交叉编译器、执行在存储器120的API块54中包括的API函数以及执行在存储器120的解决方案块55中包括的应用开发解决方案所需的存储器120的存储空间以及初始化交叉编译器、API函数和应用开发解决方案来设置应用开发所需的打印机 100的环境。在操作97,主机200从在操作94或操作95中识别的打印机100的存储器120 中读取并执行打印机100的应用开发解决方案。在操作98,主机200在包括用于开发打印机100的应用的图形工具的窗口中从在操作94或95中识别的打印机100的存储器120读取指示打印机100的功能的API,并且将所述API显示为图标。在操作99,主机200根据用户输入的信息通过组合在操作98中显示的某些API来生成对应于用户的输入信息的应用。 在操作910中,主机200将在操作99中产生的应用存储到在操作94或95中识别的打印机 100的存储器120中。在操作911,打印机100通过交叉编译在操作910中存储的应用来产生具有在打印机100中可执行的二进制代码的应用并且将产生的应用存储到打印机100的存储器120中。
如图7中示出的方法一样,如果应用是在打印机100而不是在主机200中开发,则由于主机200不必识别打印机100和打印机100的存储器120,所以省略操作92至95,并且操作96到910由打印机100而不是由主机200来执行。
图10是说明依照本发明总的构思的另一实施例的执行打印机的应用的方法的流程图。图10中示出的方法对应于其中通过在打印机100的存储器120中存储的交叉编译器来编译和执行应用的情形,并且所述方法包括由图5中示出的打印机100顺序处理的操作。因此,虽然以下没有描述,但是上述的关于在图5中示出的打印机100的内容适用于图 10所示的方法。
由于用户选择应用的过程和图8中示出的方法相同,所以操作101和102与操作 81和82相同。此外,对于其余的操作,将仅描述不同于图8中示出的方法的部分。
在操作103,根据操作102中应用的执行,打印机100以API函数的组合顺序从API 块54中顺序读取并执行在应用中包括的API函数。在操作104,根据在操作103中API函数的执行,打印机100通过将API函数分别连接到固有功能的封装功能从F/W块51顺序读取并执行分别对应于API函数的固有功能来驱动打印机100的硬件元件。
图11说明依照本发明总的构思的实施例的包括用于开发打印机100的应用的图形工具的窗口 110。图11中示出的窗口 110可以包括模块区域114,在其中显示指示分别描述打印机100的功能的模块的图标;工作区域115,用于通过组合对应的图标来产生对应于模块的组合的应用;和其它工具。如图11中所示,在窗口 110上侧的其它工具的例子是 “应用列表”框111,其中显示应用的列表;“添加项目”按钮112,用于将新应用添加到应用列表中;和“删除项目”按钮113,用于删除应用列表中的现有应用。在窗口 110的下侧的其它工具的其它例子是“确认”按钮116,用于完成应用的生成;和“取消”按钮117,用于取消应用生成工作。
如图11中所示,在模块区域114中显示的图标的例子是“文件扫描”模块的图标, 用于描述扫描放入打印机100的文件的功能;“数据打印”模块的图标,用于描述打印存储在打印机100中的数据(例如文本和图像)的功能;和“文件复制”模块的图标,用于描述通过扫描和打印文件来复制放入打印机100的文件的功能。
在模块区域114中显示的图标的其它例子是“邮件生成”模块的图标,用于描述生成包括存储在打印机100中的数据(例如文本和图像)的电子邮件的功能;“邮件发送”模块的图标,用于描述向在打印机100的用户当中预定的至少一个用户的电子邮件地址发送电子邮件的功能;和“邮件接收”模块的图标,用于描述检测通过在打印机100的用户当中预定的至少一个用户的电子邮件地址接收的电子邮件的功能。
由于图标通常被显示为具有特定形状,如相同大小的矩形或圆形,所以它限制了在图标上显示关于与图标对应的模块的信息。因此,当用户双击某个图标时,对应于该图标的模块的详细信息或附加信息可以以在图标周围的气球的形式单独显示。另外,当用户双击某个图标时,对应于该图标的模块的详细信息可以显示在窗口 110的特定区域中而不是在图标周围。例如,当双击用于执行向在打印机100的用户当中预定的至少一个用户的电子邮件地址发送电子邮件的功能的“邮件发送”模块的图标时,在打印机100的地址簿中注册的用户的电子邮件地址可以以气球的形式来显示。
打印机100的应用开发者(即,主机200的用户)可以通过在点击状态移动在模块区域114中显示的图标到工作区域115中,以用户期望的顺序排列移动的图标,并点击“确定”按钮116来产生应用。在图11中示出的窗口 110的工作区域115中的图标排列顺序指示在对应于图标的模块之间的数据输入/输出关系。例如,在对应于图标的模块之间的数据输入/输出关系可以如下定义。如果图标B位于图标A的左边或上边,则从对应于图标 B的模块输出的数据被输入到对应于图标A的模块,以及,如果图标C位于图标A的右边或下边,则从对应于图标A的模块输出的数据被输入到对应于图标C的模块。指示数据输入 /输出关系的箭头可显示在图标之间从而用户可以容易地识别在对应于图标的模块之间的数据输入/输出关系。
图12示出通过使用图11中示出的窗口 110的图形工具来开发应用的示例。图12 中示出的例子对应于开发下述应用的情形,其中该应用用于扫描放入打印机100的文件并自动将扫描的文件发送到在打印机100的地址簿中注册的用户当中的预定用户。当打印机 100的应用开发者(即主机200的用户)点击在主机200的屏幕上的指示打印机100的应用开发解决方案的图标时,执行该应用开发解决方案,从而在主机200的屏幕上显示在图11 中示出的窗口 110。
此后,为了产生用于实施如上所述的功能的应用,主机200的用户移动“文件扫描”模块的图标、“邮件生成”模块的图标和“邮件发送”模块的图标到工作区域115中,对它们进行排列,并点击“确认”按钮116。更具体地,如图12中所示,主机200的用户将“邮件生成”模块的图标安置在“文件扫描”模块的图标的右边,从而生成包括放入打印机100 的文件的扫描图像的电子邮件。因此,从“文件扫描”模块输出的文件的扫描图像被输入到 “邮件生成”模块,并且“邮件生成”模块生成包括文件的扫描图像的电子邮件。此外,主机 200的用户将“邮件发送”模块的图标安置在“邮件生成”模块的图标的右侧以发送包括放入打印机100的文件的扫描图像的电子邮件到由主机200的用户从在打印机100的地址簿中注册的用户当中指定的至少一个用户的电子邮件地址。如果主机200的用户双击“邮件发送”模块,则显示在打印机100的地址簿中注册的用户的电子邮件地址。此后,主机200 的用户可以通过点击至少一个电子邮件地址来选择对应于电子邮件的目的地的至少一个电子邮件地址。因此,从“邮件生成”模块输出的电子邮件被输入到“邮件发送”模块,并且 “邮件发送”模块发送该电子邮件到用户选择的至少一个电子邮件地址。
此后,用户的主机200点击“确认”按钮116以完成用于实施以上描述的功能的应用的产生,并且在窗口 Iio的工作区域115中显示新的应用。如果主机200的用户双击显示在窗口 110的工作区域115中的应用,则可以产生用于输入应用的名称的框以便主机200 的用户在框中输入的应用的名称。例如,如果主机200的用户选择的属于组A,则可以输入名称“组A文件发送”。此后,主机200的用户可以通过点击“添加项目”按钮112来添加新的应用到该应用列表。如果新的应用被添加到应用列表中,则在打印机100的UI面板160 上显示该新的应用。打印机100的用户可以通过打印机100的Π面板160执行新的应用。
例如,打印机100的Π面板160可利用触摸屏来实现,其中用户可利用手指触摸在触摸屏上的新应用来执行该新应用。只有当打印机100的用户把某个文件放入打印机并且触摸在打印机100的Π面板160上显示的新应用时,文件的副本才自动发送到预先指定的用户。
图13示出通过使用图11中示出的窗口 110的图形工具来开发应用的另一示例。 图13中示出的例子对应于开发用于当通过预定义的电子邮件地址接收到对打印机100的电子邮件时自动打印该电子邮件的应用的情形。由于执行打印机100的应用开发解决方案和添加针对应用开发的完成的应用的描述与图12中示出的示例中的那些相同,下文将仅描述在窗口 110的工作区域115中产生应用的过程。
为了生成用于实现上述功能的应用,主机200的用户将“邮件接收”模块的图标和“数据打印”模块的图标移动到工作区域115中,对它们进行排列,并且单击“确认”按钮 116。更具体地,如图13中所示,主机200的用户将“数据打印”模块的图标安置在“邮件接收”模块的图标的右侧,以便打印由打印机通过预定的电子邮件地址接收的电子邮件。因此,从“邮件接收”模块输出的电子邮件被输入到“数据打印”模块, 并且“数据打印”模块打印该电子邮件。
在图11到13中示出的应用开发例子也可以适用于图5中示出的应用开发装置和图9中示出的应用开发方法。例如,窗口 110可以包括API区域(其中显示用于描述打印机 100的功能的指示API函数的图标)而不是具有模块区域114 (其中显示指示用于描述打印机100的功能的模块的图标)。由于可以在使用和打印机100的处理器或固件相同的处理器或固件的其他类型的产品中执行这样开发的应用,所以可通过使用数字生活网络联盟 (DLNA)技术与其他类型的产品共享在打印机100中保护的应用。
根据上述的实施例,应用开发解决方案可存储在打印机100中,并且使用应用开发解决方案开发的应用可以直接存储在打印机100中,从而上载和下载应用的过程是不必要的。此外,由于用户能够通过组合打印机100的功能(其以图形方式显示)而开发应用,所以可以提供一种环境,其中缺乏计算机知识的一般用户可以容易地开发应用。此外,通过组合作为预先交叉编译的二进制文件的模块来产生应用或通过使用存储在打印机100中的交叉编译器来编译该应用,主机200无需安装任何交叉编译器或仿真器,以及可以提供一种环境,其中缺乏计算机知识的一般用户可以容易地开发应用。因此,可以立即满足打印机 100的用户要求。
应用开发方法和应用执行方法可以写成计算机程序,并且可以在使用计算机可读记录介质执行程序的通用数字计算机中执行。计算机可读记录介质的例子包括存储介质, 诸如磁存储介质(如ROM、软盘、硬盘等)和光记录介质(如⑶-ROM或DVD)。
虽然已经示出和描述了本发明总的构思的几个实施例,但是本领域的技术人员将能够理解,在不脱离本发明的原则和精神的情况下,可以在这些实施例中进行改变,本发明总的构思的范围在所附的权利要求及其等同内容中定义。
权利要求
1.一种开发成像装置的应用的方法,该方法包括 执行存储在成像装置中的解决方案,其中所述解决方案提供开发成像装置的应用的工亘..,N 9 根据所述解决方案的执行来显示所述成像装置的功能; 通过基于用户的输入信息组合所述功能来产生对应于所述输入信息的应用;并且 在所述成像装置中存储所产生的应用。
2.根据权利要求I所述的方法,其中,所述显示包括显示描述与所述成像装置的某些应用程序接口(API)函数的组合对应的所述成像装置的功能的模块,以及 所述产生包括通过基于所述输入信息来组合某些显示的模块而产生对应于所述输入信息的应用。
3.根据权利要求I所述的方法,其中,所述模块的每一个通过使用组合利用在所述成像装置中可执行的代码来描述与所述成像装置的某些API函数的组合对应的成像装置的功能。
4.根据权利要求I所述的方法,其中,所述显示包括显示描述所述成像装置的功能的API函数,以及 所述产生包括通过基于所述输入信息来组合某些显示的API函数而产生对应于所述输入信息的应用。
5.根据权利要求4所述的方法,还包括通过对所产生的应用进行交叉编译来产生具有在所述成像装置中可执行的代码的应用。
6.根据权利要求I所述的方法,还包括通过连接所述成像装置的主机来识别所述成像装置的存储器, 其中,所述执行包括通过主机从所述成像装置的存储器中读取所述解决方案并且执行所述解决方案。
7.根据权利要求6所述的方法,其中,所述成像装置的存储器和主机经由通用串行总线(USB)彼此连接,以及 所述识别包括通过所述USB的海量存储类(MSC)协议来识别所述成像装置的存储器。
8.根据权利要求6所述的方法,其中,所述成像装置的存储器和主机经由网络彼此连接,以及 所述识别包括通过所述网络的服务器消息块(SMB)协议来识别所述成像装置的存储器。
9.一种成像装置,包括 具有多个功能的硬件元件,其中所述多个功能包括至少一个成像功能; 存储器,用于存储解决方案和通过使用所述解决方案开发的至少一个应用,其中所述解决方案提供开发所述成像装置的应用的工具;和 处理器,用于通过执行存储在所述存储器的所述解决方案而根据所述解决方案来控制所述硬件元件的操作, 所述至少一个应用是通过组合根据所述解决方案的执行而显示的所述成像装置的功能产生的。
10.根据权利要求9所述的成像装置,其中,所述存储器还存储所述成像装置的应用程序接口(API)函数以及通过使用某些API函数的组合利用在所述成像装置中可执行的代码描述所述成像装置的功能的模块,以及 所述处理器执行从某些模块的组合产生的应用。
11.根据权利要求9所述的成像装置,其中,所述存储器还存储所述成像装置的API函数和交叉编译器,所述交叉编译器用于将所述成像装置的应用转译为在所述成像装置中可执行的代码,以及 所述处理器通过执行所述交叉编译器来编译从某些API函数的组合产生的应用并且执行所编译的应用。
12.根据权利要求9所述的成像装置,其中,所述硬件元件包括通信单元,其具有连接所述存储器到主机的功能从而所述主机能够识别所述存储器,以及 通过所述主机经由所述通信单元读取存储在所述存储器中的所述解决方案并且通过所述主机执行所述解决方案。
13.根据权利要求12所述的成像装置,其中,所述通信单元通过使用通用串行总线(USB)的海量存储类(MSC)协议来将所述存储器连接到所述主机,以及 所述主机通过所述MSC协议来识别所述存储器。
14.根据权利要求12所述的成像装置,其中,所述通信单元通过使用网络的服务器消息块(SMB)协议来将所述存储器连接到所述主机,以及 所述主机通过所述SMB协议来识别所述存储器。
15.一种成像装置的记录介质,在其上按照层次结构记录数据块,所述数据块包括 固件块,对应于包括所述成像装置的固有功能的固件; 封装块,对应于连接所述固有功能到所述成像装置的应用程序接口(API)函数的封装功能的集合; API块,对应于所述成像装置的API函数的集合;和 解决方案块,对应于提供用于开发所述成像装置的应用的工具的解决方案。
全文摘要
提供用于开发成像装置的应用的工具的解决方案被存储在成像装置中,以及根据解决方案的执行显示成像装置的功能。通过基于用户的输入信息组合成像装置的功能来产生对应于用户的输入信息的应用,并且在成像装置中存储该应用。
文档编号G06F9/44GK102981814SQ20121018159
公开日2013年3月20日 申请日期2012年6月4日 优先权日2011年6月3日
发明者高彰健, 李南洙 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1