用于在一外围装置与一无线装置之间建立通信的系统及方法转让专利

申请号 : CN200480037148.7

文献号 : CN1902609B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 布赖恩·哈罗德·凯利

申请人 : 高通股份有限公司

摘要 :

本发明揭示一种用于在一外围装置与常驻于一无线计算机装置上的程序之间建立通信的系统、方法及计算机程序。所述装置具有一个带有一无线通信端口及一个或多个常驻程序的计算机平台,且所述计算机平台包括一管理无线装置资源及所述无线装置与其他计算机装置的相互作用的操作系统。当一外围装置通过一有线或无线通信选择性地与所述无线装置的计算机平台进行通信时,所述无线装置的操作系统识别至少外围装置的类型并将所述外围装置与一个或多个所述常驻计算机程序相链接。

权利要求 :

1.一种具有一计算机平台(30)及至少一无线通信端口的移动无线装置(12),所述计算机平台(30)包括一用于管理装置资源及所述移动无线装置(12)与一个或多个与所述移动无线装置(12)进行通信的其他外围装置(14)的相互作用的操作系统,所述计算机平台(30)进一步包括一个或多个常驻程序,且其特征在于一旦一外围装置(14)与所述移动无线装置(12)的所述计算机平台进行通信,所述移动无线装置(12)的所述操作系统即经安排以识别所述外围装置(14)并将至少一个或多个常驻程序与所述外围装置(14)相链接,并且其中所述移动无线装置(12)经安排以使所述操作系统保持对所述外围装置(14)与所述移动无线装置(12)之间的通信的控制,或者将控制交给所述链接的常驻程序。

2.如权利要求1所述的移动无线装置(12),其中所述移动无线装置(12)通过一来自所述无线装置的所述计算机平台的有线连接与一外围装置(14)进行通信。

3.如权利要求1所述的移动无线装置,其中所述无线装置通过一来自所述无线装置(12)的所述计算机平台(30)的无线连接(16)与一外围装置进行通信。

4.如权利要求1所述的移动无线装置,其中所述无线装置(12)的所述操作系统根据一自所述外围装置(14)发送的装置标识符来确定与所述无线装置(12)进行通信的外围装置(14)的类型并根据所述类型来选择适用于该外围装置(14)的处理程序。

5.如权利要求1所述的移动无线装置(12),其中所述无线装置(12)的所述操作系统根据在通信开始时所给定的所述外围装置(14)的一特定标识符来识别进行通信的所述外围装置(14)中的一个特定的外围装置。

6.如权利要求1所述的移动无线装置(12),其中所述外围装置(14)与所述计算机平台(30)的通信是通过所述通信端口来进行。

7.一种在一移动无线计算机装置(12)处用于管理与一外围装置(14)的通信的方法,其包括如下步骤:在所述移动无线计算机装置(12)的一计算机平台(30)处自一外围装置(14)接收(80)一通信,所述计算机平台(30)具有至少一通信端口且包括一用于管理移动无线计算机装置(12)资源及所述移动无线计算机装置(12)与其他计算机装置的相互作用的操作系统,所述计算机平台(30)包括一个或多个常驻程序;

在所述移动无线计算机装置(12)的所述操作系统处,确定已与所述移动无线计算机装置(12)开始进行通信的所述外围装置(14)的身份;及通过所述操作系统来链接所述外围装置(14)与所述移动无线计算机装置(12)的一个或多个常驻程序,并通过所述操作系统保持对所述外围装置(14)与所述移动无线计算机装置(12)之间的通信的控制,或者将控制交给所述链接的常驻程序。

8.如权利要求7所述的方法,其中所述接收一通信的步骤是通过一与所述无线装置(12)的所述计算机平台(30)的有线连接来进行。

9.如权利要求7所述的方法,其中所述接收一通信的步骤是通过一与所述无线装置(12)的所述计算机平台(30)的无线连接来进行。

10.如权利要求7所述的方法,其进一步包括如下步骤:

在所述无线装置的所述操作系统处接收所述外围装置的一装置类别标识符;及

根据所述类别标识符在所述操作系统处选择适合于该外围装置的处理程序。

11.如权利要求7所述的方法,其进一步包括:

在通信开始时在所述无线装置的所述操作系统处接收一特定标识符;及

在所述操作系统处,根据在通信开始时所给定的所述外围装置的一特定标识符来识别进行通信的所述外围装置中的一个特定的外围装置。

12.如权利要求9所述的方法,其中所述自一外围装置接收一通信的步骤是通过所述计算机平台的所述通信端口来进行。

13.一种用于在一外围装置(14)与一移动无线装置(12)的操作系统之间进行通信的系统,其包括:一移动无线装置(12),其具有一计算机平台(30)及至少一通信端口,所述计算机平台(30)包括一用于管理无线装置资源及所述移动无线装置(12)与其他计算机装置之间的相互作用的操作系统,所述计算机平台(30)包括一个或多个常驻程序;及至少一个外围装置(14),其选择性地与所述移动无线装置(12)的所述计算机平台(30)进行通信;

其特征在于一旦所述外围装置(14)与所述移动无线装置(12)的所述计算机平台(30)进行通信,所述移动无线装置(12)的所述操作系统经安排以识别所述外围装置(14)并至少将一个或多个常驻程序与所述外围装置相链接,并且所述移动无线装置(12)经安排以使所述操作系统保持对所述外围装置(14)与所述移动无线装置(12)之间的通信的控制,或者将控制交给所述经链接的常驻程序。

14.如权利要求13所述的系统,其中外围装置(14)通过一与所述无线装置(12)的所述计算机平台(30)的有线连接来进行通信。

15.如权利要求13所述的系统,其中所述外围装置(14)通过一与所述无线装置(12)的所述计算机平台(30)的无线连接来进行通信。

16.如权利要求13所述的系统,其中所述外围装置(14)向所述无线装置(12)的所述操作系统发送一类别标识符且所述操作系统根据所述类别标识符来确定与所述无线装置进行通信的外围装置(14)的类型并选择适合于所述外围装置(14)的处理程序。

17.如权利要求13所述的系统,其中所述无线装置(12)的所述操作系统根据在通信开始时给定的所述外围装置(14)的一特定标识符来识别进行通信的所述外围装置(14)中的一个特定的外围装置。

18.如权利要求13所述的系统,其中外围装置将所述无线装置用作一通往因特网的通信端口。

19.如权利要求13所述的系统,其中所述外围装置将所述无线装置用作一在一电话网络上的通信端口。

20.如权利要求13所述的系统,其中所述外围装置通过所述移动无线装置的所述通信端口与所述无线装置的所述计算机平台进行通信。

说明书 :

技术领域

本发明大体而言涉及具有无线通信能力的计算机装置。更具体而言,本发明涉及一种用于在一外围装置与一无线计算机装置的常驻计算机程序之间建立及控制数据通信的系统及方法。

背景技术

将例如打印机、扫描仪、照相机等外围装置链接至个人计算机(PC)以使计算机可利用该外围装置已为人们所知。外围装置通常以并行或串行数据通信方式与PC的计算机平台相连接。具体而言,PC中之串行输入/输出(I/O)(SIO)涉及到通过将外部装置连接至PC的串行线连接点而与所述外部装置进行通信。该机构使外部装置能够使用串行数据流与PC软件进行通信。PC的操作系统(例如Windows或Linux)可检测自外围装置输入的初始通信并确定适于操作所述外围装置的软件或驱动程序,或者以其他方式控制通信。
一般而言,例如移动电话及寻呼机等主要用于实施无线通信的计算机装置不具有带有复杂常驻OS的有效计算机平台。移动装置制造商通常将所述装置配置成以“数据“模式与任何其他计算机装置进行通信。换句话说,装置处理器或逻辑仅接受数据命令且常常用作其他装置的外围装置。例如,存在可为其他装置提供无线通信能力的移动装置,例如膝上型计算机。在一种常用配置中,移动电话的行为对于膝上型计算机而言仅如同一调制解调器,并响应于电话协议拨号命令而发起数据服务连接。一旦建立起数据连接,发至及来自膝上型计算机的数据即不加修改地通过移动电话传递,且移动电话的处理器或逻辑大多被绕过。
另一问题在于,对于具有更大计算机平台的移动装置而言,装置通常仅具有一非常小的OS且无法将大量的资源专用于外围装置通信。结果,即便常驻OS处理来自外围装置的输入通信来建立正确的通信,移动装置OS也将不会有效地保持从事对正在进行的通信的管理。在某些情形中,移动装置OS不具备与外围装置进行相互作用以使所述移动装置可控制外围装置的功能的能力。
相应地,较佳应提供一种能提供一可与一外围计算机装置实施复杂通信的无线计算机装置的系统及方法。所述无线装置应能部分地至完全地控制所述移动装置与所述外围装置之间正在进行的通信。进一步,所述移动装置应能够或者部分地或者完全地在软件中(例如以装置的常驻OS)控制所述通信。因此,本发明主要涉及到提供此种系统、方法及移动装置。

发明内容

本发明包括一种用于在一外围装置与无线装置的操作系统之间进行通信的无线计算机装置、系统、方法及计算机程序.所述无线装置包括一具有至少一无线通信端口的计算机平台,并可具有其他通信端口-有线的及无线的两种、及一个或多个常驻计算机程序.所述计算机平台还具有一操作系统,所述操作系统管理无线装置资源及所述无线装置与其他计算机装置(包括外围计算机装置)的相互作用.一外围装置将通过一有线或无线连接选择性地与所述无线装置的计算机平台进行通信,且一旦所述外围装置与所述无线装置的计算机平台进行通信,所述无线装置的操作系统就将识别外围装置的类别或者正通信的特定装置,并随后将一个或多个常驻计算机程序与所述外围装置相链接.所述装置的OS可对所述外围装置与所述无线装置之间的通信保持部分的或完全的控制,或者可将对所述通信的控制转交给一所链接的常驻程序.
用于在一外围装置与一无线装置的操作系统之间进行通信的方法包括如下步骤:在一外围装置与一具有一计算机平台的无线装置之间开始一通信,所述计算机平台具有至少一通信端口,其中所述计算机平台包括一用于管理无线装置资源及所述无线装置与其他计算机装置的相互作用的操作系统。所述方法然后包括如下步骤:在所述无线装置的操作系统处确定已与所述无线装置开始通信的外围装置的身份,并随后通过所述操作系统链接所述外围装置与一个或多个常驻程序。一种计算机程序可使一无线计算机装置实施所述方法的各步骤。
因此,所述无线通信装置的一个目的是允许与外围计算机装置进行复杂的通信,而未必仅将无线通信装置用作调制解调器。所述无线计算机装置可相应地能部分地或完全地控制所述无线装置的计算机平台与所述外围装置之间正在进行的通信,并可使用在初始通信时使用即插即用驱动器及其他机构来确证对所述外围装置的控制。所述通信可通过有线或无线数据链路或其组合、按串行或并行数据交换形式进行。
如作为所述无线装置操作系统的软件的一部分所实施,所述外围装置与一操作系统实体(例如动态应用程序或内部对象)进行通信。一旦在内部应用程序与所述外围装置之间建立起通信链路,所述操作系统就将确定用于利于其通信之协议,或者所述操作系统就将与所述外围装置相互作用并共同地配置最佳通信协定。所述操作系统可根据需要来控制对与所链接程序的通信或放弃所述控制。为在初始通信时得知所述外围装置,所述装置的OS可调用一预规定的协议来发现关于所述外围装置的具体身份,或者至少所述外围装置所属的类别,并然后,在一实施例中,可确定可服务于所述外围装置的无线装置常驻应用程序或者内部对象实体。
在审阅下文所述附图简要说明、具体实施方式及权利要求书后,本发明的其它目标、优点及特征将显而易见。

附图说明

图1为一与一无线计算机装置(在此处显示为一移动电话)进行有线链接的外围装置(显示为一照相机)的代表图。图2为一与无线装置的计算机平台上的操作系统进行通信的外围装置的计算机平台的方块图。图3为一具有具备外围装置支持能力的无线装置的无线移动网络的代表图。图4为一流程图,其例示在无线装置计算机平台上执行的用于与外围装置进行通信的方法的一实施例。

具体实施方式

参照附图,在各附图中,相同编号自始至终代表相同元件,图1显示一系统10,其中一外围装置(即照相机14)通过串行线16与一无线装置(在此处显示为一移动电话12)进行有线通信.外围装置14可传输一特定命令以在所述连接上-或者为有线连接(如串行连接或USB,例如串行端口20及22)或者为无线连接(例如IRDA或RF)-呼叫无线装置12的OS.一旦接收到所述呼叫命令,无线装置12的OS就将建立所述连接使用一将在本文中进一步解释的预规定协定来与外围装置14进行通信.然后,所述OS可将一适合的程序与所述外围装置相链接并部分地或完全地释放对与所述程序的通信的控制.
如在图1中所示,插入移动电话12内的照相机14可与移动电话12相互作用以在显示器18上显示照片,且在一实施例中,移动电话12可启动照相机14的控制器件来检索照片以供存储在移动电话12中及/或拍摄其他照片。无线装置12可为移动电话、双向寻呼机、个人数字助理(PDA)、或其他具备无线通信能力的计算机装置,而外围装置14可为照相机、阅读器、打印机、扫描仪、监视器、键盘、游戏控制杆、鼠标、扬声器、或所属技术领域中所知的任何其他常用外围装置。
如在图2中更具体地显示,在用于在外围装置14与一无线装置12的操作系统之间进行通信的系统10中,无线装置12具有一计算机平台30、及至少一通信端口或接口40,且计算机平台30包括一用于管理无线装置资源及无线装置12与其他计算机装置(例如外围装置14)之间的相互作用的操作系统。一个或多个外围装置可选择性地与计算机平台12进行通信,以便一旦外围装置14与计算机平台30进行通信,无线装置12的操作系统就将链接外围装置14与外围装置14中的一个或多个常驻计算机程序,例如一驱动程序、控制程序等。
更具体而言,无线装置12具有一计算机平台30,计算机平台30可接收及处理自其他计算机电信装置通过无线网络或通过直接数据通信所发送的数据。计算机平台30除其它组件外还包括一应用专用集成电路(“ASIC”)36,或其它处理器、微处理器、逻辑电路、可编程门阵列、或其它数据处理装置。ASIC 36是在制造无线装置时安装且在正常情况下不能升级。ASIC 36或其它处理器执行一应用程序编程接口(“API”)层34,该应用程序编程接口层34包括常驻应用程序环境,且可包括加载于ASIC 36上的操作系统。该常驻应用程序环境与所述无线装置的存储器32内的任何常驻程序通过接口连接。一常驻应用程序环境的实例是由针对无线装置平台所开发的“无线用二进制运行时间环境”(BREWTM)软件。目前可在Qualcomm网站(www.qualcomm.com)上访问BREW开发工具。
如在此处所示,该无线装置可为一具有图形显示器的蜂窝电话12,但也可为所属技术领域中所知的具有计算机平台的任一种无线装置,例如个人数字助理(PDA)、具有图形显示器的寻呼机、或甚至一具有无线通信端口的单独计算机平台,且可另外具有一接至一网络或因特网的有线连接。进一步,存储器32可由只读或随机存取存储器(RAM及ROM)、EPROM、EEPROM、闪存卡、或任一为计算机平台所共用的存储器构成。计算机平台30亦可包括一本地数据库38来存储未在存储器32中现用的软件应用程序、以及操作系统的计算机代码。该本地数据库38通常由一个或多个快闪存储器单元构成,但也可为所属技术领域中所知的任何第二级及第三级存储装置,例如磁性媒体、EPROM、EEPROM、光学媒体、磁带、或软盘或硬盘。
所述无线装置,例如蜂窝电话12,具有经由一通过无线网络60选择性地发送及接收数据的无线通信端口或通信接口24实施无线通信的能力.计算机平台30常驻应用程序环境可通过所述平台、经由所述端口(接口40)传送数据,并可与任何输入通信流相互作用并对其进行屏蔽以得到对其的一预定响应.
目前所制造的蜂窝电话及电信装置,例如蜂窝电话10,具有日益增强的计算能力且正变得相当于个人计算机及手持式个人数字助理(“PDA”)。这些“智能型”蜂窝电话允许软件开发者创建可在无线装置12的处理器(例如ASIC 36)上下载及执行的软件应用程序。无线装置(例如移动电话12)可下载并执行许多类型的应用程序,例如网页、小应用程序、MIDlet、游戏及股票监控程序,或诸如新闻及有关体育的数据等简单数据。所下载数据或可执行的应用程序可即刻显示在无线装置12的显示器上或在不使用时存储于本地数据库38内。可将所述软件应用程序视为一常驻于无线装置12上的常规软件应用程序或计算机程序,且用户可有选择性地将所存储的常驻应用程序自本地数据库38下载至存储器32以供在API 34上执行,即在常驻应用程序环境内执行。相应地,可在制造所述装置时在计算机平台30上加载一用于在输入通信连接中进行屏蔽的程序,或者可通过无线网络25向计算机平台30下载所述程序。
例如照相机等外围装置14通常包括一计算机平台50,计算机平台50具有其自身的常驻通信接口52(其可为有线接口或无线接口)、及一常驻存储器54及中央处理器56或其他逻辑。因此,照相机14或其他外围装置可与无线装置12的任一常驻程序进行双工通信,或执行其他高级功能。
图3为一更全面地例示无线装置70及74在其中运行的无线网络60中各组件的方块图。无线网络60仅为实例性且可包括任何使远程模组赖以在彼此之间及/或在无线网络60的各组件之间进行无线通信的系统,包括但不限于无线网络运营商及/或服务器。运营商网络62控制发送至一消息接发服务控制器(“MSC”)64的消息(通常为数据包形式)。运营商网络62通过一网络、因特网及/或POTS(“普通电话系统”)与MSC 64通信。通常,运营商网络62与MSC 64之间的网络或因特网连接用来传送数据,而POTS用来传送声音信息。MSC 64连接至多个基地台(“BTS”)66。以与运营商网络类似的方式,MSC 64通常既可通过网络及/或因特网连接至BTS 66来进行数据传输也可通过POTS连接至BTS 66来用于声音信息传输。BTS 66最终通过短信服务(“SMS”)或其它在所属技术领域中已知的无线传输方法将消息无线广播至诸如蜂窝电话70及74等无线装置。
因此,在无线网络60上,一个无线装置70可尝试向另一装置(例如无线装置74)传送声音或数据。此处将无线装置70显示成以有线方式连接有一打印机72,以使无线装置70可在打印机72上打印数据。将无线装置74显示成与数据远程存储器76进行无线通信,从而使无线装置74可在远程存储器76中存储及检索数据。在每一种情形中,无线装置70、74的操作系统均可处理与外围装置72、76的通信。在一实施例中,无线装置70、74可通过彼此进行通信,以便访问与另一无线装置进行通信的外围装置。换句话说,无线装置74可通过无线装置70访问打印机72,且无线装置70可通过无线装置74访问远程存储器76。在此种情形中,无线装置的操作系统将处理适合于路过式通信的数据选路。
在一使用BREW操作系统来控制外围装置通信的实施例中,当例如照相机14等外围装置在开始通信时,其将首先与AT命令处理器(ATCOP)进行通信。通过发出一命令,所述外围装置通知ATCOP将对特定SIO连接的控制传递至BREW SIO命令处理器(BSCOP)。一旦外围装置14从所述操作系统得到一正响应,外围装置14即可向BREW SIO命令处理器发出命令.这些命令允许外围装置14或者发起与一个或多个特定BREW应用程序的通信或者对无线装置12执行其他任务.
在该实施例中,BREW SIO还依据在无线装置12的串行端口上当前现用的其他客户端而允许一应用程序单方面地掌握对所述串行端口的控制。ATCOP及BSCOP将通常让步于一发出请求的应用程序,但其他更高优先权客户端(例如服务编程)可拒绝释放所述端口。将使一外围装置处理应用程序不能获得对所述端口的控制的具体情形将因具体的无线装置制造及配置情况而异。由应用程序发起的与外围装置14的通信是为支持与不介接BREW或常驻操作系统的外围装置进行通信所必需的。在由应用程序发起的通信中,常常需要使无线装置12的用户借助发起合适的应用程序来协调对外围装置14的连接、或者使用户帮助识别至少外围装置的类型。
对于外围装置在与无线装置12进行通信时断开的情形,在一由外围装置12发起的通信中,在检测到装置断开时,通信端口被移交给ATCOP。无线装置12常驻应用程序对所述端口的任何进一步的读取/写入调用均将会造成错误。无线装置12的常驻应用程序可通过调用合适的功能或对象(例如Writeable())来重新登记以便重新连接先前的端口。在由无线装置12的常驻应用程序发起的服务中,若外围装置14断开,端口或接口40也仍将由所述常驻应用程序控制。任何进一步的读取/写入调用仍将会造成错误,但无线装置12的常驻应用程序可将对所述端口的控制交回ATCOP或仍保持控制。
当在无线装置12正与一外围装置14对话的同时退出一无线装置12的常驻应用程序时,所述应用程序将关闭所述端口或接口的控制功能或对象,此将使所述端口/接口被移交给ATCOP。若重新进入无线装置12的常驻应用程序,则会进行用于获得一端口或接口的标准协议。
BREW接口也可在与外围装置14的通信中处理意外数据。以显式方式打开并控制一端口或接口的无线装置12常驻应用程序会辨知BSCOP及ATCOP的正常功能,并在连接至预计将与ATCOP或BSCOP进行对话的外围装置时作出正确反应。一旦接收到错误数据,无线装置12常驻应用程序即通常会释放所述端口/接口并让BREW来决定下一步骤。在BREW中,DTR跃迁是UART用于检测外围装置14断开的方法,但在某些情形中,可能无法进行可靠的检测。例如,若一无线装置12常驻应用程序正与一特定外围装置14进行对话,而所述特定外围装置14在通信过程中随后发生变化。无线装置12常驻应用程序或一单独的无线装置12常驻错误检查应用程序应检测到外围装置14的变化并交出对所述端口/接口的控制以使所述控制回到ATCOP。
下文是对所连接装置在BSCOP模式中可发出的命令的大体说明。每一命令均包含于一以一两字节标签开头并以一(ASCII OxOD)字符结尾的数据包中。跟随于一命令数据包之后的(ASCII OxOA)字符被忽略。响应数据包是以一两字节标签开头并以(ASCII OxOD OxOA)结尾。BSCOP所支持的最大数据包大小为512个字节。
随命令所发送的标签应由两个字母数字ASCII字符组成。附加至一响应中的标签与随该对应命令所发送的标签相同。此旨在由装置用于消除响应的模棱两可性。通过随每一命令发送一不同的标签,所述装置即可确定响应是起因于哪一命令。此可适用于当建立连接或从数据错误进行恢复时将通信同步化。



以下是一BSCOP命令序列的实例,其中以“D:”开头的行代表由外围装置14所发送的命令,而以“P:”开头的行则代表由无线装置发送至外围装置14的命令。
D:01AT$BREW
P:01ATOK
D:02VER
P:02OK:3.0.0.1
D:03DEV:BREW.siotest
P:03ERROR 0C01
D:04DEV:BREW.siotest
P:04OK
D:99END
P:99OK
在发送另一命令之前,外围装置14不需要等待响应。例如,可出现该序列:
D:02VER
D:03DEV:kb
P:02OK:3.0.0.1
P:03OK
以下显示一允许在外围装置14与无线装置12之间进行双工通信的BREW接口的一个实例。该接口通过添加Write(写入)及Writeable(可写入)项来扩展Isource接口:
AEEINTERFACE(IPort){
INHERIT_ISource(IPort);
Int(*GetLastError)(IPort*po);
int32(*Write)(IPort*pme,char*pBuf,int32cbBuf);
void(*Writeable)(IPort*pme,AEECallback*pcb);
int(*IOCtl)(IPort*po,int nOption,uint32dwVal);
int(*Close)(IPort*po);
int(*Open)(IPort*po,const char*szPort);
};
GetLastError()函数报告在Iport运行过程中所发生的最后一个错误。返回值是在AEEError.h中所规定的其中一个全局BREW错误代码。Open()函数允许所述应用程序将Iport结合至一实体端口。当创建AEECLSBD_SERIAL的一实例时,返回一不与任何实体端口相关联的Iport。必须使用IPORT_Open()来指示所期望端口的名称。Open()是一非阻塞调用,当其不能立即得到满足时,其可能会返送回AEEPORT_WAIT。然后,当调用程序应再次试图访问所述端口时,所述调用程序可使用IPORT_Writeable()来得到通知。
当调用Open()时,调用程序可通过一包含其名称的以0结尾的串来指示所期望的串行端口。BREW规定了通常可供用于外围装置的端口类型的数个名称。串行端口名称是由短的ASCII序列组成,从而以一种可扩展的方式允许不同的移动装置支持不同的端口。通常,电话底部的主要端口是UART。所有UARTS均使用AEE_PORT_SI01(″PORT1″)、AEE_PORT_SIO2(″PORT2″)等串来表示。USB端口是使用“USB1”、“USB2”等来表示。BREW也规定一专用名称AEE_PORT_INCOMING(“inc”),所述专用名称可用于与一正试图发起与一特定无线装置12常驻应用程序的通信的外围装置14建立一通信链路。
对于由外围装置14发起的与无线装置12的通信-例如在BREW根据DEV(自外围装置14所发送的串)执行一无线装置12常驻应用程序时所出现,所述无线装置常驻应用程序通过自外围装置14接收命令的Iport与外围装置14进行通信.当一能够使用SIO进行通信的无线装置12常驻应用程序开始时,所述应用程序将使用AEECLSID_SERIAL的CLSEID创建一IPort接口,并随后使用AEE_PORT_INCOMING调用Open().如果Open()返送回AEEPORT_WAIT,则所述应用程序将随后通过注册一使用Writeable()的回调而等待外围装置14发起的连接.当一外围装置14得到连接时,调用所述Writable回调,从而促使无线装置12常驻应用程序重新尝试Open()作业-该作业将会成功.
如果无线装置12的用户开始一常驻应用程序而不连接适当的外围装置14,则无线装置12常驻应用程序仍遵循一类似于上文所述的过程并等待至连接外围装置14为止。通过此种方式,使一在相应无线装置12应用程序起动之后所连接的外围装置14仍可得到连接。在所述装置得到连接之前,Open()将继续返送回AEEPORT_WAIT,且Writeable()将不执行。
AEESIO_PORT_INCOMING仅适用于已请求正运行的无线装置12常驻应用程序的外围装置。如果一个无线装置常驻应用程序请求AEESIO_PORT_INCOMING且随后一请求一不同的无线装置12常驻应用程序的外围装置14得到连接,则第一个应用程序的Open()将得不到满足。而是,将起动另一被请求的无线装置常驻应用程序且其打开AEESIOJPORTJNCOMING的尝试将会成功。AEESIO_PORT_INCOMING可指任何串行端口或接口。一无线装置12可具有多个UART或多个USB虚拟串行端口,每一个虚拟串行端口均可接纳由外围装置14所发起的连接。
对于由无线装置12常驻应用程序发起的通信,所述常驻应用程序会使用Open()函数创建一IPort接口。端口串自变量决定打开哪一端口。BREW所支持的端口id在AEESio.h中给出。例如,为打开主串行端口,使用串AEESIO_PORT_SIO1。Open()可能会因例如以下等多种原因而失败:不可用性(例如正在进行服务编程,无线装置“忙”,未允许打开)、无该端口等。在此种情形中,所述Writeable回调得到调用且一对GetLastErrorO的调用会报告错误细节。
当一IPort被关闭时,其与实体端口分离,且所述端口被交回至OS(ATCOP)。当所有对端口对象的引用均被释放时,端口对象将也被隐式关闭,但提供Close()来允许进行显式关闭。当无线装置常驻应用程序的不同层或模块使用同一端口对象时,对所述对象进行显式关闭较佳。此还允许重新使用一Ipport,这是因为一旦其处于关闭状态,即可重新调用Open()并重复打开过程。
串行端口配置是根据用于使用在AEESio.h中所规定的AEESIOConfig数据结构来设定及获得配置的旗标AEESIO_IOCTL_SCONFIG及AEESIO_IOCTL_GCONFIG来进行。AEESIOConfig具有用于控制UART的信息,例如波特率、奇偶性、停止位等。倘若为虚拟串行端口,例如基于USB的虚拟串行端口,则可忽略某些或所有这些设定值。由于IPort的一实施方案可能并不支持AEESIOConfig的所有条目,因而返送值SUCCESS可能并不真正意味着所有选项均得到设定。在设定所述配置之后获取所述配置会返送回当前改变后的配置。例如,若不能设定一特定的波特率,则可设定所支持的最接近的波特率。通过将波特率设定为38500,可实际上将实际配置设定为所支持的最接近的波特率38400。IOCtl也支持用于调整内部缓冲器大小的选项、为进行有效读取设定触发值(例如在使状态可读之前的最小字节数量)。
无线装置12常驻应用程序在OS进行登记来指明所述应用程序所支持的特定外围装置、或外围装置的类别,以便一旦外围装置与无线装置12进行通信,常驻应用程序即可得到通知。在BREW中,将登记信息存储于可使用MIF编辑器来更新的无线装置12常驻应用程序MIF文件中(通常是以MIME类型的装置id串形式)。一基本的外围装置类别将具有一预确定的处理程序类型,例如在AEESio.h中将SIO装置的处理程序类型规定为AEECLSID_HTYPE_SERIALDEVICE(0x01011be6)。处理程序类别id将与无线装置12常驻应用程序的CLSID相同。
为更全面地例示在无线装置12计算机平台30上执行的用于与一外围装置14进行通信的过程,图4提供一例示其一实施例的流程图。无线装置12自外围装置14接收一输入通信尝试,如在步骤80中所示,然后判定是否可对外围装置14进行归类或以其他方式进行识别,如在决策82中所示。该过程可在将一外围装置14插入无线装置12内时开始。另一选择为,无线装置12的用户可在无线装置12处请求开始通信,且所述无线装置将发起通信,并可在下文所进一步说明的步骤92中开始所述过程。所述识别或归类可根据一由外围装置14在初始通信中所发送的标识符来进行,或者可由无线装置12的OS例如通过探测命令、审查输入数据流、或通过所属技术领域中已知的其他方法来探知所述信息。如果可在决策82处识别出外围装置14,则所述过程接着判定是否存在一用于与该类别的特定外围装置14进行通信的已知协议,如在决策14中所示。
反之,如果在决策82中不能识别出外围装置14,则判定用户是否需要对外围装置14进行归类或以其他方式进行识别,如在决策84中所示。换句话说,外围装置可能不能桥接与无线装置84的任何通信,且决策84判定用户干预是否可提供对所述类别或外围装置的识别以便可找到一通信协议。如果用户不需要在决策84中识别外围装置14,则要求用户对所述外围装置进行识别或归类,如在步骤86中所示,并随后判定用户是否已对外围装置14进行了识别或归类,如在决策88中所示。如果在决策88中用户尚未对外围装置14进行识别或归类,或者可能已指示在一由外围装置14的可能类别的有限选项构成的菜单情况下无法识别出外围装置14,则所述过程然后在实现与外围装置14的通信连接过程中向用户输出一错误,如在步骤98中所示,且所述过程结束。
反之,如果在决策88中用户已对外围装置14进行了识别或归类,或者如果用户不需要在决策84中对外围装置14进行识别或归类,或者如果在决策82中已对外围装置进行归类或识别,则然后判定是否存在一用于处理与外围装置14的通信的预规定协议,如在决策90中所示。如果在决策90中存在一用于处理与外围装置14的通信的预确定协议,则执行所述预确定的通信协议以允许与外围装置14进行通信,如在预确定过程96中所示,且随后在无线装置12与外围装置14之间的通信会话结束时,所述过程终止。反之,如果在决策90中不存在预确定的协议,则请求外围装置14指示一通信协议,如在步骤92中所示。换句话说,无线装置OS将促使外围装置14(通常通过一通用信号交换命令)返送回指示由外围装置14用于进行通信的通信协议的数据。
然后,在决策94中判定外围装置14是否已指明一已知的通信协议.如果在决策94中,外围装置尚未指明一已知协议或者已指明一未知协议,则在实现与外围装置14的连接过程中向用户输出一错误,如在步骤98中所示,且随后所述过程终止.反之,如果在决策94中,外围装置14已指明一已知通信协议,则执行所述预确定的通信协议来与外围装置14进行通信,如在预确定过程96中所示,且随后在通信会话结束时,所述过程终止.所述过程将在步骤80处对来自同一外围装置14或一新的外围装置14的另一通信请求进行重复.
因此,本发明提供一种用于在一外围装置14与一无线装置12的计算机平台30上的常驻计算机程序之间进行通信的方法,其包括如下步骤:在一外围装置12与无线装置12的计算机平台30之间开始一通信,所述计算机平台30包括一管理无线装置资源及无线装置12与其他计算机装置(例如外围装置14)之间的相互作用的操作系统、及一个或多个常驻计算机程序;及在所述无线装置的操作系统中确定已开始与无线装置12进行通信的外围装置14的身份;及随后通过所述操作系统来链接外围装置14与一个或多个所述常驻计算机程序。换句话说,一旦无线装置12的OS与外围装置14建立起令人满意的通信,装置OS即可保持对所述通信的控制,或者可将控制让给另一常驻程序。
在一外围装置14与一无线装置12之间开始一通信的步骤可通过一接至无线装置12的计算机平台30的有线或无线连接来进行。进一步,所述方法可包括如下步骤:向无线装置12的操作系统发送一装置类别标识符,并随后在操作系统处根据所选类别来选择适用于该外围装置14的处理程序。另一选择为,所述方法可包括如下步骤:在通信开始时向无线装置12的操作系统发送一特定标识符,并在所述操作系统处根据在通信开始时所给出的外围装置14的所述特定标识符来识别进行通信的特定外围装置14。所述在一外围装置14与一无线装置12之间开始一通信的步骤也可通过计算机平台30的通信端口或接口40来进行。
鉴于所述方法可在一无线计算机装置的计算机平台上执行,本发明包括一种能够使一计算机装置执行所述方法的各步骤的计算机可读媒体。所述计算机可读媒体可为计算机平台30的存储器32。在图4所示背景中,本方法可例如由无线网络60及/或任一计算机装置(例如移动电话70及74)的操作部分来执行,以执行一机器可读指令序列。所述指令也可驻存于各种类型的可部分地或完全地载入至计算机平台30上的第一级、第二级或第三级信号承载或数据存储媒体上。所述媒体可包括(例如)可由无线网络60的组件存取或驻存于其内的RAM(未显示)。无论是包含于RAM、磁盘、还是其它第二级存储媒体内,所述指令均可存储在各种各样的机器可读数据存储媒体上,例如DASD存储器(例如,传统的“硬盘驱动器”或RAID阵列)、磁带、电子只读存储器(例如,ROM、EPROM、或EEPROM)、快闪存储卡、光学存储装置(例如,CD-ROM、WORM、DVD、数字光带)、纸“打孔”卡、或包括数字及模拟传输媒体在内的其它适合的数据存储媒体上。
尽管上文揭示内容显示了本发明的若干例示性实施例,然而应注意,可对其作出各种改变及修改,此并不背离由随附权利要求书所界定的本发明的范畴。此外,尽管本文可能以单数来说明或请求本发明元件的权利,但本发明也涵盖复数,除非已明确地声明限定为单数。