CN100426903C - 一种用于驱动无线电通信模块的方法 - Google Patents
一种用于驱动无线电通信模块的方法 Download PDFInfo
- Publication number
- CN100426903C CN100426903C CNB028070720A CN02807072A CN100426903C CN 100426903 C CN100426903 C CN 100426903C CN B028070720 A CNB028070720 A CN B028070720A CN 02807072 A CN02807072 A CN 02807072A CN 100426903 C CN100426903 C CN 100426903C
- Authority
- CN
- China
- Prior art keywords
- software
- client
- application
- customer
- main
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W92/00—Interfaces specially adapted for wireless communication networks
- H04W92/04—Interfaces between hierarchically different network devices
- H04W92/08—Interfaces between hierarchically different network devices between user and terminal device
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
- Information Transfer Between Computers (AREA)
- Transceivers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种用于驱动无线电通信模块的方法,无线电通信模块宿留和执行主软件,无线电通信模块还宿留和执行至少一个客户软件,客户软件被称为客户嵌入式软件,其包括客户主应用和至少一个从属于客户主应用的客户次级应用,由客户嵌入式软件执行的处理被在客户主应用与至少一个客户次级应用之间分配,驱动方法包括在客户嵌入式软件和主软件之间进行通信的步骤,使得客户嵌入式软件能够执行下述两种作用中的至少一种:客户驱动软件的作用,客户驱动软件发送驱动指令到主软件,并从主软件接收由执行一些驱动指令产生的响应;客户监控软件的作用,客户监控软件管理由客户驱动软件发送的驱动指令的执行,客户监控软件被称为客户外部软件,由与无线电通信模块协作的终端设备宿留和执行。
Description
技术领域
本发明的领域涉及无线电通信系统,尤其是GSM(全球移动通信系统)标准、DSC 1800(1800MHz数字蜂窝系统)、PCS 1900(个人通信系统)、GPRS(通用分组无线电业务)或UMTS(通用移动电信系统),但并不仅限于此。
更精确地说,本发明涉及一种无线电通信模块。应当牢记的是,所述无线电通信模块是无线电话的关键单元。所述无线电通信模块宿留并执行主软件(通常被称为“无线电通信软件”或“GSM软件”),所述的主软件尤其执行无线通信功能(无线电通信)并控制所述无线电话的其它各种硬件单元(显示屏、键盘、扬声器等)。
背景技术
一般而言(第一种应用),所述无线电通信模块被包括在与SIM(用户身份模块)卡协作的终端(或ME“移动设备”)内。
以下将设想上述无线电通信模块的其它应用。
尤其建议将所述无线电通信模块并入除无线电通信终端之外的但仍然要求无线通信功能的设备(第二种应用)。例如,所述设备是遥测设备(以读取米数)、告警设备或银行卡阅读器。
还建议以独立形式提供所述无线电通信模块(第三种应用);于是所述无线电通信模块具有调制解调器的功能。这种类型的调制解调器并不包括任何硬件人机接口单元(显示屏、键盘、扬声器等)。其被设计为与具有硬件人机接口单元的终端设备(支持客户软件)协作。所述移动设备尤其可能是微型计算机,但并不仅限于此。一般而言,所述终端设备宿留并执行客户驱动软件,所述客户驱动软件使用一组AT格式的驱动指令来控制所述无线电通信模块。所述AT(引起注意指令)指令使得所述终端设备(TE)能够请求与其连接的无线电通信终端执行某些预定行为。为此,所述的主软件(宿留在所述无线电通信模块上)包括执行AT指令的单元,所述AT指令由所述客户驱动软件(宿留在所述终端设备上)发送至所述的主软件。
至于其它关于AT指令的信息,首先参照ETSI“GSM 07.05”和“GSM 07.07”标准,其次参照ITU-T建议V25ter,它们在此引入作为参考。
一般而言,无线电通信模块不仅可在上述第三种应用的框架内(无线电通信模块形成调制解调器)由终端设备使用AT指令驱动,也可在上述第一种和第二种应用的语境内(无线电通信模块被包括在无线电通信终端或其它系统内)由终端设备使用AT指令驱动。
换言之,无论是何种应用,所述无线电通信模块都可由与其协作(通常通过串行链路)的终端设备驱动。在这种情况下,由所述终端设备宿留并执行的客户驱动软件(包括“客户外部应用”)将AT指令发送到由所述无线电通信模块宿留并执行的主软件,从而使得所述无线电通信模块能够执行所述AT指令。
如图2所示,终端设备驱动无线电通信模块的现有技术操作可如下概括:
步骤“1”:所述客户外部应用(客户驱动软件)2发送AT指令;
步骤“2”:所述串行链路5将所述AT指令发射至所述的主软件3内包括的AT指令执行单元4,所述的主软件3由所述无线电通信模块1宿留并执行;
步骤“3”:所述执行单元4执行所述AT指令;
步骤“4”:在所述执行之后,所述执行单元4将AT响应发送至所述客户外部应用2;
步骤“5”:所述响应是通过所述串行链路5发送的;
步骤“6”:所述客户外部应用2接收所述响应。
上述的每一个步骤都是由图2内带有相关步骤数字的圆示出的。在以下关于本发明的图中也采用相同的惯例(以下描述中将会详细描述)。
终端设备驱动无线电通信模块的现有技术具有若干缺点。
首先,它需要两组资源(处理器和存储器)。所述无线电通信模块包括处理器和存储器(第一组资源),而所述终端设备也具有处理器和存储器(第二组资源)。因此,上述现有技术在设备与能量消耗方面较为昂贵。
上述现有技术的另一缺点是所述无线电通信模块完全由所述终端设备驱动。所述终端设备宿留并执行的客户驱动软件是“主控的”,而所述无线电通信模块宿留并执行的主软件是“从属的”。
为了克服本领域内的上述缺点,申请人(Wavecom公司)提出了法国专利申请No.FR 0103909,2001年3月22日,标题为“宿留和执行客户软件的无线电通信模块以及使用客户驱动软件的对应过程”。该申请FR 0103909的原文与附图在此引入作为参考,该申请提议了一种用于驱动无线电通信模块的新技术,该技术包括在所述无线电通信模块上宿留至少一个客户软件,以起到客户驱动软件的作用和/或起到客户监控软件的作用。
因此,如果所述客户嵌入式软件起到客户驱动软件的作用,则所述无线电通信模块独立且经济地操作。在这种情况下,所述无线电通信模块无需与终端设备协作,且所述的主软件与所述客户驱动软件使用相同的资源(相同的处理器与相同的存储器)。
此外,如果所述客户嵌入式软件起到所述客户监控软件的作用,则所述无线电通信模块并不仅限于起到相对于执行所述客户驱动软件的终端设备的从属作用。所述客户监控软件由所述无线电通信模块执行,并管理所述客户驱动软件所请求且所述终端设备所执行的驱动。在这种情况下,应当注意所述客户嵌入式软件是现有技术的上述配置的附加软件。但是,所述附加软件并不昂贵,因为它与所述无线电通信模块宿留的主软件使用相同的资源(处理器与存储器)。
在上述新技术的一个优选实施例中:
所述的主软件尤其包括二进制文件,所述二进制文件包括主应用;
所述客户软件尤其包括第一二进制文件以及第二二进制文件(例如,预先编译的程序库的形式),所述第一二进制文件包括所述客户应用,所述第二二进制文件包括与所述客户应用相关的源函数和与所述主应用相关的执行函数之间的接口应用。
所述的用于驱动无线电通信模块的新技术可能被视为软件平台,从而使得客户能够开发他们自己的客户应用,并能够将所述客户应用下载到无线电通信模块内。
在上述的优选实施例中,所述的主软件以及所述接口应用都是由无线电通信模块制造商研发的“专有”二进制文件,而所述客户应用是由所述客户研发的“客户”二进制文件。
应当牢记的是,用于研发二进制文件的过程包括以下步骤:
写源文件,例如以“C”语言写源文件;
编译所述源文件,以生成目标文件(以位于所述无线电通信模块上的微处理器的机器语言)
链接编辑所述目标文件(编译后的源文件),以生成二进制文件(其随后被下载到所述无线电通信模块内)。
在上述用于驱动无线电通信模块的新技术的语境内,本发明的目的是使所述客户易于完成客户应用的研发过程。
本发明的另一目的是提议一种简单且有效的技术方案来解决由使用本发明的一般概念所产生的应用(主客户与次级客户)之间的对话问题。
以下将简要介绍两种解决两个应用之间的对话问题的现有技术,每一种技术都具有缺点。
根据第一种现有技术,两个软件应用之间的对话问题是在链接编辑期间内解决的。但这必需了解所有的对话点。此外,两个应用之间的所有对话源函数的交换需要每个应用与另一应用都相互适应。结果是,一个应用(次级应用)的研发商必须为每个希望将所述次级应用并入其应用(主应用)的客户写不同版本的次级应用。
解决两个应用之间的对话问题的第二种现有技术包括使用诸如动态链接编辑的机制。借助这种类型的机制,只须将实际上所使用的函数装入存储器。例如,该技术可能是Windows(注册商标)内使用的DLL(动态链接库)。遗憾的是,该技术需要大量存储器,且该技术并不适合于在对无线电通信模块内的CPU、存储器和实时存在严重限制时使用。
发明内容
上述各种目的以及以下将清楚描述的其它目的是根据本发明使用宿留并执行主软件型无线电通信模块来实现的,所述的主软件尤其执行无线电通信功能并包括执行驱动指令的单元,所述驱动指令由至少一个客户驱动软件发送至所述的主软件,并属于预定驱动指令组。
根据本发明,提供了一种用于驱动无线电通信模块的方法,所述无线电通信模块宿留和执行主软件,所述主软件执行无线电通信功能并包括执行驱动指令的单元,所述驱动指令由至少一个客户驱动软件发送至所述主软件,并属于预定驱动指令组,
其特征在于,所述无线电通信模块还宿留和执行至少一个客户软件,所述客户软件被称为客户嵌入式软件,其包括客户主应用和至少一个从属于所述客户主应用的客户次级应用,由所述客户嵌入式软件执行的处理被在所述客户主应用与所述至少一个客户次级应用之间分配,
所述驱动方法包括在所述客户嵌入式软件和所述主软件之间进行通信的步骤,使得所述客户嵌入式软件能够执行下述两种作用中的至少一种:
-客户驱动软件的作用,所述客户驱动软件发送驱动指令到所述主软件,并从所述主软件接收由执行一些所述驱动指令产生的响应;
-客户监控软件的作用,所述客户监控软件管理由客户驱动软件发送的驱动指令的执行,所述客户监控软件被称为客户外部软件,由与所述无线电通信模块协作的终端设备宿留和执行。
因此,本发明是在上述用于控制无线电通信模块的新技术的语境内描述的,根据所述的新技术所述无线电通信模块宿留并执行客户软件,所述客户软件可起到客户驱动软件和/或客户监控软件的作用。
在此语境中,本发明的一般目的包括使用客户“复块”应用,而非客户“单块”应用,所述客户“复块”应用包括客户主应用与一个或若干客户次级应用的组合。就起动与停止而言,每个客户次级应用都从属于调用它的客户主应用。但是一旦所述客户次级应用被起动,其可完全独立于所述客户主应用来接入所有所述的主软件可利用的执行函数(通过对于从所述主软件发送消息的业务的预约机制,以下将对其进行描述)。
客户次级应用是可能由第三方研发商(通常是所述无线电通信模块的制造商)向用户提供的“基本块”。因此,客户的研发工作会有所减少,因为客户执行的所有研发是通过调用一个或多个客户次级应用来转包某些处理的“客户主应用”。
应当注意的是,如果所述客户意欲以其正在研发的不同客户主应用来调用客户次级应用,则所述客户还可自己研发客户次级应用。
在本发明的第一优选实施例中,所述客户软件包括二进制文件,所述二进制文件包括所述客户主应用和所述至少一个客户次级应用。
在这种情况下,所述客户次级应用优选的是被以目标文件的形式提供。因此,并不提供所述源文件,以保护专有(或第三方)知识。包括所述客户次级应用的目标文件必须与包括所述客户主应用的目标文件链接编辑,而由所述的链接编辑产生的二进制文件被下载到所述模块内。
在本发明的第二优选实施例中,所述客户软件包括第一二进制文件和至少一个第二二进制文件,所述第一二进制文件包括所述客户主应用,每个所述第二二进制文件包括至少一个客户次级应用。
在这种情况下,所述客户次级应用被以二进制文件的形式提供。因此,和其它情况一样,并不通信所述源文件,以保护专有(或“第三方”)知识。包括所述客户次级应用的二进制文件可能被直接下载到所述模块内。
优选的是,提供以下特征以使所述客户嵌入式软件起到客户驱动软件的作用:
所述客户嵌入式软件包括将驱动指令发送到所述的主软件内包括的执行单元的单元;
所述的主软件包括将其内包括的所述执行单元执行一些驱动指令所产生的响应发送到所述客户嵌入式软件的单元;
所述客户嵌入式软件包括处理由所述的主软件发送至所述客户嵌入式软件的响应的单元。
优选的是,提供以下特征以使所述客户嵌入式软件起到客户监控软件的作用:
所述的主软件包括将指令预分析为所确定预分析策略的函数的单元,以将驱动指令从所述客户外部软件发送至所述客户嵌入式软件和/或所述的主软件内包括的执行单元;
所述客户嵌入式软件包括处理由所述预分析单元交换到所述客户嵌入式软件的驱动指令的单元。
这样,所述客户嵌入式软件能够:
无操作,所述指令仅被发送至所述的主软件,所述的主软件直接执行所述指令;
或是过滤被发射至所述客户嵌入式软件的不再由主软件执行的指令。例如,所述客户嵌入式软件可能会判定哪些指令应当由所述的主软件执行,哪些指令无需执行即应当做出作为所确定准则的函数的响应;
或是“侦查”接收到其拷贝的指令,所述指令同样由所述的主软件直接执行。
有利的是,所述客户嵌入式软件包括从一组预分析策略中选择由所述预分析单元应用的预分析策略的单元,所述预分析策略例如是:
从所述客户外部软件始发的驱动指令仅被发送至所述的主软件内的执行单元;
从所述客户外部软件始发的驱动指令仅被发送至所述客户嵌入式软件;
从所述客户外部软件始发的驱动指令被发送至所述的主软件内包括的执行单元以及所述客户嵌入式软件。
有利的是,所述指令处理单元对每个指令做出属于判定组的至少一种判定,所述判定组包括:
将所述驱动指令发送至所述的主软件内包括的所述执行单元,所述客户嵌入式软件包括为此目的将驱动指令发送至所述执行单元的单元;
提供或不提供仅作为关于所述指令的至少一个信息项的函数的响应,而无需执行所述指令,所述客户嵌入式软件包括为此目的将所述响应通过主软件发送至所述客户外部软件的单元。
有利的是,为使所述客户嵌入式软件能够起到客户监控软件的作用:
所述的主软件包括将响应预分析为所确定响应预分析策略的函数的单元,以将主软件内包括的执行单元执行一些驱动指令所产生的响应发射至所述客户嵌入式软件和/或所述客户外部软件;
所述客户嵌入式软件包括处理由所述响应预分析单元交换到所述客户嵌入式软件的响应的单元。
这样,所述客户嵌入式软件能够:
无操作,所述的主软件所生成的响应仅被发送至所述客户外部软件;
或是过滤被发射至所述客户嵌入式软件的但不再被发射至所述客户外部软件的响应。例如,所述客户嵌入式软件可能从而判定哪些作为所定义准则的函数的响应应当被发送至所述客户外部软件(被修改或未被修改),哪些响应不应当被发射至所述客户外部软件;
或是“侦查”接收到其拷贝的响应,所述响应同样被直接发送至所述客户外部软件。
有利的是,所述客户嵌入式软件包括从一组响应预分析策略中选择由所述响应预分析单元应用的响应预分析策略的单元,所述响应预分析策略例如是:
从执行单元始发的响应仅被发射至所述客户外部软件;
从执行单元始发的响应仅被发射至所述客户嵌入式软件;
从执行单元始发的响应被发射至所述客户嵌入式软件以及所述客户外部软件。
优选的是,所述无线电通信模块包括在属于以下设备组的设备内:
无线电通信终端;
需要无线通信特征的除无线电通信终端之外的设备;
调制解调器。
优选的是,所述的主软件包括至少一个与一组执行函数相关的主应用,每个执行函数都能够执行至少一个所述驱动指令。所述客户主应用与客户次级应用两者都与一组源函数相关,每个源函数都能够从所述的主应用接收驱动指令或对于驱动指令的响应,或是将驱动指令或对于驱动指令的响应发送至所述的主应用。所述的主软件和/或所述客户嵌入式软件包括用于接口所述的源函数与所述执行函数的应用接口。
结果是限制了研发成本,这归因于所述接口应用(以下也被称为应用接口库)可与不同的客户应用(主应用)一起使用,甚至是可与不同的主软件一起使用,如果所述不同的主软件已被研发的话。
在本发明的一个优选实施例中,所述的一组与客户主应用相关的源函数尤其包括在起动所述无线电通信模块时调用的客户主应用初始化源函数。
优选的是,所述的一组与客户主应用相关的源函数包括用于预约发送从主软件始发的消息的业务的源函数。在所述预约时,所述客户主应用将其中所述客户主应用希望从主软件接收消息的消息处理源函数的地址发送到所述的主软件。
所述对于发送从主软件始发的消息的业务的预约机制使得所述客户主应用能够调用所有主软件提供的执行函数,同时还能够接收由主软件发送的消息,以执行所述函数。
优选的是,所述的一组与所述客户次级应用相关的源函数尤其包括用于初始化由所述客户主应用调用的客户次级应用的源函数。
优选的是,所述的一组与所述客户次级应用相关的源函数包括用于预约发送从主软件始发的消息的业务的源函数。在所述预约时,所述客户次级应用将其中所述客户次级应用希望接收从主软件始发的消息的源消息处理函数的地址发送到所述的主软件。
有利的是,所述客户次级应用的所述源初始化函数包括至少一个使得所述客户主应用与客户次级应用之间的对话机制能够使用的参数。
优选的是,所述的一组与所述客户次级应用相关的源函数还包括用于停止所述客户主应用所调用的客户次级应用的源函数。
优选的是,所述的一组与所述客户次级应用相关的源函数包括用于不再预约发送从主软件始发的消息的业务的源函数。
这样,所述客户主应用仅需了解此对话点(用于初始化所述客户次级应用的源函数)及其下述的对应函数(用于停止所述客户次级应用的源函数)。因此,这是一种简单且有效的解决客户主应用与客户次级应用之间的对话问题的技术方案。客户次级应用的研发商无需为每个希望将客户次级应用并入其客户主应用的客户写一个版本。所述研发商只需向其自身通知上述的两个对话点。
应当注意的是,避免客户次级应用的两个研发商使用相同的对话点是很重要的。例如,如果每个研发商为每个其希望研发的客户次级应用的唯一识别符请求中央业务,则可避免客户次级应用的两个研发商使用相同的对话点。
此外,所述客户主应用与所述客户次级应用之间的对话机制使得所述客户次级应用能够向所述客户主应用通知其任务的执行结果。所述对话可能是双向的或单向的。
有利的是,所述消息类型属于以下消息类型组,所述消息类型组包括:
包括对于先前由所述客户嵌入式软件发送至主软件的驱动指令的响应的消息;
包括主动提供的驱动指令的消息;
包括客户外部软件通过主软件发送的驱动指令的消息;
包括主软件执行所述客户外部软件所发送的驱动指令所产生的响应的消息;
在超时期满时发送的消息。
在本发明的一个优选实施例中,所述的一组驱动指令是一组标准AT指令。这使得所述客户嵌入式软件能够得到快速发展,因为AT指令众所周知,且已被用于研发客户外部软件(宿留在所述终端设备上)。这同样便利了主要基于现有客户外部软件的客户软件的开发。
本发明还涉及一种用于实施客户软件来驱动无线电通信模块的进程,所述无线电通信模块是宿留和执行主软件型无线电通信模块,所述的主软件尤其用于执行无线电通信功能并包括执行驱动指令的单元,所述驱动指令由所述客户驱动软件发送至所述主软件,并属于预定驱动指令组。根据本发明,所述无线电通信模块还宿留和执行至少一个客户软件,所述客户软件被称为客户嵌入式软件,其包括客户主应用以及至少一个从属于所述客户主应用的客户次级应用,由所述客户嵌入式软件执行的处理被在所述客户主应用与所述至少一个客户次级应用之间分配。所述客户嵌入式软件和主软件包括使得所述客户嵌入式软件能够执行下述两种作用中的至少一种的单元:
所述客户驱动软件的作用,所述客户驱动软件发送驱动指令到所述主软件,并从所述主软件接收由执行一些所述驱动指令所产生的响应;
客户监控软件的作用,所述客户监控软件管理由所述客户驱动软件发送的驱动指令的执行,所述客户监控软件被称为客户外部软件,由与所述无线电通信模块协作的终端设备宿留和执行。
附图说明
在阅读以下作为非限制性实例给出的本发明优选实施例描述以及附图之后,本发明的其它特征和优点将变得清晰,在附图中:
图1是根据本发明的无线电通信模块的特定实施例的简化图,示出了所述客户主应用和客户次级应用;
图2(现有技术)示出了终端设备驱动无线电通信模块的现有技术操作;
图3示出了一种起动所述客户主应用并使该应用预约用于发送主软件所始发消息的业务的机制;
图4示出了一种起动所述客户次级应用并使该应用预约用于发送主软件所始发消息的业务的机制;
图5示出了一种停止所述客户次级应用且不再使该应用预约用于发送主软件所始发消息的业务的机制;
图6示出了如果所述无线电通信模块根据其中所述客户嵌入式软件起到客户驱动软件作用的本发明第一实施例来操作,则所述用户次级应用可能会执行的处理(发送指令以及接收对应响应)。
具体实施方式
因此,本发明涉及使用同一组资源(处理器和存储器)来宿留和执行主软件和至少一个客户嵌入式软件的无线电通信模块。
根据惯例,通常是所述的主软件(例如“GSM软件”)执行无线电通信功能并包括执行驱动指令(由客户驱动软件发送至所述的主软件)的单元。
所述客户嵌入式软件(特定于本发明的概念)可作为:
客户驱动软件,和/或
客户监控软件。
在本说明书的剩余部分中,假定所述驱动指令为AT指令。但是,本发明显然并不仅限于此类驱动指令。
在图1所示的特定实施例中,所述的主软件3包括尤其是基于一组执行函数的主应用3a,每个所述执行函数都能够执行至少一个AT指令。
此外,所述客户嵌入式软件6包括:
与一组源函数相关的客户主应用6a,每个所述的源函数都能够发送AT指令到主应用3a,或是从所述应用接收AT指令;
客户次级应用6c,其同样与一组类似上述源函数的源函数相关;
接口应用6b,其能够将所述的源函数(来自所述客户主应用6a和客户次级应用6c)与(主应用3a的)执行函数接口。
因此,所述客户主应用6a通过所述接口应用6b与所述的主应用3a通信。类似的,所述客户次级应用6c通过所述接口应用6b与所述的主应用3a通信。
因此,每个应用(主应用6a、次级应用6c以及接口应用6b)都包括“API”(应用程序接口)。应当注意的是,API是对应于特定功能组件的通信规则的描述。
所述客户主应用6a包括形成将被在所述客户主应用内定义的接口描述函数的“应用必备API”块。
所述客户次级应用6c同样包括形成将被在所述客户次级应用中定义的接口描述函数的“应用必备API”块(与所述客户主应用内包括的同名块部分地相同)。
所述接口应用(或应用接口库)6b包括以下三块:
形成到ATI指令接入的接口描述的“AT指令API”块,所述接口描述功能位于所述应用接口程序库内;
形成到操作系统功能接入的接口描述的“OS API”块,所述接口描述功能位于所述应用接口程序库内;
形成到标准功能接入的接口描述的“标准API”,所述接口描述功能位于所述应用接口程序库内。
在所述的主软件3中,所述的主应用3a包括:
“AT指令API”块,其与所述接口应用6b内包括的具有相同名称的块类似;
“OS API”块,其与所述接口应用6b内包括的具有相同名称的块类似。
所述的主应用3a形成所述的主软件3的核心,而所述客户主应用6a、客户次级应用6c以及接口应用6b形成所述客户嵌入式软件6的核心。
例如,所述接口应用6b可能是先前编译的程序库形式的二进制文件。
所述客户主应用6a是由多个目标文件(它们自身是从源文件的编译产生的)之间的链接编辑产生的二进制文件。
可能会为所述客户次级应用6c考虑以下两种变化:
它被以目标文件的形式提供,且在这种情况下,所述目标文件被在链接编辑时考虑,以生成包括所述客户主应用6a的二进制文件。换言之,特定二进制文件包括所述客户主应用和客户次级应用;
或它被以二进制文件的形式直接提供。换言之,所述客户主应用6a和客户次级应用6c包括在两个不同的二进制文件内。
所述客户嵌入式软件6和主软件3都使用相同RAM的不同部分。所述客户定义正确执行所述客户嵌入式软件必需的存储组件的大小。所述两个软件程序的其中一个尝试接入RAM的为另一软件保留的部分将终止操作。
以下将参照图3来描述一种用于起动所述客户主应用6a并使该应用预约发送主软件3始发消息的业务的机制。
通常包括在无线电通信模块内并在以上参照图2(现有技术)描述的单元具有相同的参考数字。因此,所述无线电通信模块1宿留和执行尤其包括执行AT指令的单元的主软件3。
此外,根据本发明以及以上参照图1所描述,无线电通信模块1宿留并同样执行客户嵌入式软件6,所述客户嵌入式软件6起到客户驱动软件或客户监控软件的作用,尤其包括客户主应用6a、客户次级应用6c以及接口应用6b。
可如下总结起动所述客户主应用并使该应用预约用于发送消息的业务的所述机制的操作:
步骤“1”:所述的主应用3检测客户主应用6a的存在,并起动所述客户主应用6a;
步骤“2”:通过所述接口应用6b来起动所述客户主应用6a,所述接口应用6b调用所述客户主应用6a内的源函数用于所述客户主应用6a的初始化。所述的源函数(“wm_apmAppliInit”)将在本说明书的剩余部分内详细说明;
步骤“3”:在所述客户主应用6a内,所述的“wm_apmAppliInit”源函数初始化所述客户主应用。如以下步骤(“4”至“6”)中详细解释的,所述初始化尤其包括将源函数(例如“wm_apmAppliParser”)的地址提供给所述的主软件3,以使所述客户主应用6a可以接收从所述的主软件始发的消息;
步骤“4”:所述客户主应用6a调用一个源函数(“wm_osMsgParserSubscribe”)用于预约发送从所述的主软件始发的消息的业务。所述的源函数将在本说明书的剩余部分内详细描述;
步骤“5”:所述接口应用6b调用主软件3内的适当执行函数来注册对于发送消息到所述客户主应用6a的业务的预约;
步骤“6”:所述的主软件3通过所述接口应用6b生成所述客户主应用6a所请求的注册。
根据一种变化,所述客户主应用6a在其需要时即可调用所述“wm_osMsgParserSubscribe”源函数(独立于所述客户主应用6a的源初始化函数的执行)。
以下将参照图4来描述一种用于起动所述客户次级应用6c并使其预约发送来自主软件3的消息的业务的机制。
可如下总结该机制的操作:
步骤“1”:在其源函数“wm_apmAppliParser()”接收到消息之后,所述客户主应用6a调用所述客户次级应用6c的一个源函数,即源函数(“wm_app2Pipe(init)”)来初始化所述客户次级应用6c。所述的源函数(必然为所述客户主应用6a所知)将在本说明书的剩余部分内详细描述;
步骤“2”:所述客户次级应用6c 内的源函数“wm_app2Pipe(init)”初始化所述客户次级应用6c。如在以下步骤(“3”至“5”)中详细描述的,所述初始化尤其包括将所述客户次级应用6c用于接收主软件3始发消息的源函数(例如“wm_app2MsgParser”)的地址提供给主软件3;
步骤“3”:所述客户次级应用6c调用所述的源函数(“wm_osMsgParserSubscribe”)用于预约发送主软件始发消息的业务。所述的源函数将在本说明书的其余部分内详细说明;
步骤“4”:所述接口应用6b调用主软件3内的适当执行函数来注册对于发送寻址到所述客户次级应用6c消息的业务的预约;
步骤“5”:所述的主软件3通过所述接口应用6b生成所述客户次级应用6c所请求的注册。
在所述客户次级应用6c已被以这种方式起动之后,它独立于所述客户主应用6a执行其功能(一组处理或任务)。如以下详细描述的,它将所述的主软件3提供的一组执行函数用于该目的。
根据一种变化,所述客户次级应用6c在需要时即可调用“wm_osMsgParserSubscribe”源函数(独立于执行该源函数以初始化所述客户次级应用6c)。
应当注意的是,所述客户次级应用的源初始化函数可能包括至少一个用于实施所述客户主应用6a和客户次级应用6b之间的对话机制的参数。本发明的这一特征将在本说明书的剩余部分内详细描述。
以下将参照图5来描述一种用于停止所述客户次级应用6c且使该应用不再预约发送主软件3始发消息的业务的机制。
可如下总结该机制的操作:
步骤“1”:在其源函数“wm_apmAppliParser()”接收到消息之后,所述客户主应用6a调用所述客户次级应用6c的源函数,即源函数(“wm_app2Pipe(stop)”)来停止所述客户次级应用6c。所述的源函数(必须为所述客户主应用6a所知)将在本说明书的剩余部分内详细描述。
步骤“2”:所述客户次级应用6c 内的源函数“wm_app2Pipe(stop)”执行处理以停止所述客户次级应用6c。如以下步骤(“3”至“5”)内详细解释的,所述处理尤其包括使所述客户次级应用6c不再预约发送主软件3始发消息的业务;
步骤“3”:所述客户次级应用6c调用源函数(“wm_osMsgParserUnsubscribe”)用于不再预约发送从主软件始发的消息的业务。所述的源函数将在本说明书的剩余部分内详细说明。
步骤“4”:主应用3内的所述接口应用6b调用称为不预约函数的适当执行函数来停止预约发送寻址到所述客户次级应用6c消息的业务;
步骤“5”:所述的主软件3通过所述接口应用6b来停止所述客户次级应用6c所请求的注册。
以下将参照图6来描述可由所述客户次级应用执行以释放所述客户主应用6a的处理实例。
在此例中,假定:
所述无线电通信模块根据本发明第一实施例操作,其中所述客户嵌入式软件起到客户驱动软件的作用;
所述处理包括所述客户次级应用6c发送指令并接收对应响应;
所述客户次级应用6c被初始化并被预约发送从主软件3始发消息的业务(见图4);
在预约时,所述客户次级应用6c给出作为消息接收源函数的“wm_app2MsgParser()”。
可如下总结所述处理实例的操作:
步骤“1”:所述次级应用6c调用源函数以发送一个或多个AT指令至所述的主软件3,从而使得所述的主软件可以执行它们(“AT指令处理”从而完成)。所述的源函数(“wm_atSendCommand”)将在本说明书的剩余部分内详细描述;
步骤“2”:所述接口应用6a调用称为AT指令处理函数的适当执行函数,该函数在所述的主软件3中包括的所述执行单元4内;
步骤“3”:所述执行单元4执行所述AT指令;
步骤“4”:在执行之后,所述执行单元4发送AT响应至所述客户次级应用6c(如果所述发送源函数被配置为执行该功能);
步骤“5”:这个或这些响应被通过所述接口应用6a发送至所述客户次级应用6c;
步骤“6”:所述客户次级应用6c内的源接收和处理函数“wm_app2MsgParser()”处理所述响应。所述的源函数是所述客户次级应用6c在注册接收从主软件3始发消息期间内指定的函数。包括上述响应的消息是所述的源接收和处理函数的参数。
应当注意的是,上述图6是从本申请人(Wavecom公司)在2001年3月22日提出的法国专利申请No.FR0103909中的图3置换而来。仅有的差别是在此情况下涉及所述客户次级应用(而非专利申请No.FR 0103909中的客户嵌入式应用)。
还提供了本发明第二实施例,其中所述客户嵌入式软件起到客户监控软件的作用。在此情况下,所述客户次级应用例如可能会执行以下处理:
使用指令预分析机制,以使所述客户次级应用能够过滤或侦查从所述客户外部软件始发的指令;
使用响应预分析机制,使得所述客户次级应用过滤或侦查发送至客户外部软件的响应。
以下将更为详细地描述这些由所述客户次级应用执行的处理实例(并未在图中示出),其中所述无线电通信模块根据上述本发明第二实施例来操作。
但应当注意的是,可通过以下置换得到与所述客户次级应用实施上述两种预分析机制相关的解释文本和图表(用于指令和相应):
从上述法国专利申请No.FR 0103909的图4至7以及对应解释文本开始,以及
考虑到涉及所述客户次级应用(而非专利申请No.FR 0103909内的“客户嵌入式应用”)。
附件1包括一些所述客户主应用6a和客户次级应用6c所基于的源函数的详细说明。
作为选择,为了实现本发明的目的,除了标准AT指令之外还可以使用至少一种下述附加AT指令:
装入客户软件的指令(AT+WDWL),从而使得所述客户外部软件能够将新客户软件或客户软件的新部分装入所述无线电通信模块;
使得所述客户外部软件能够去激活所述客户嵌入式软件或所述客户嵌入式软件的一部分的去激活指令(AT+WOPEN)。
附件1
所述客户主应用与所述客户次级应用
所基于的一些源函数的详细说明
A1)(“wm apmAppliInit”)
用于初始化所述客户主应用的函数;在起动所述无线电通信模块时调用此函数。
准确名称:
Void wm_apmAppliInit(wm_apmInitType_e InitType)
参数:
InitType
此参数判定是什么起动初始化,它的值为:
Typedef enum
{
WM_APM_POWER_ON
WM_APM_REBOOT_FROM_EXCEPTION
} wm_apmIniType_e;
WM_APM_POWER_ON
正常起动
WM_APM_REBOOT_FROM_EXCEPTION
所述模块在出现异常之后重启。
A2)“wm osMsgParsersubscribe()”
该函数使客户应用(主应用或次级应用)向主软件注册接收从主软件始发消息的业务。所述的主软件存储该函数,并在具有发射到相关客户应用(主应用或次级应用)的消息时使用该函数。
准确名称:
Viod wm_osMsgParsersubscribe(void
SubscribeFunction)(wm_apmMsg_t*)
参数:
SubscribeFunction(wm_apmMsg_t*):主叫用户(主应用或次级应用)所提供的函数,从而使所述的主软件能够发送消息到所述主叫用户。以下将描述所提供函数的原型(“wm_apmAppliParser”代表所述客户主应用,或“wm_app2MsgParser”代表所述客户次级应用)。
返回值:
所述返回参数指示所述预约是(TRUE)否(FALSE)被接受。
A3)“wm osMsgParserUnsubscribe()”:
该函数停止使客户应用(主应用或次级应用)向主软件注册接收从主软件始发消息的业务。所述的主软件忘记先前记忆的函数。
准确名称:
Bool
wm_osMsgParserUnsubscribe(void(*SubsFunction)(wm_apmMsg_t*));
参数:
SubsFunction(wm_apmMsg_t*):主叫用户(主应用或次级应用)所提供的函数,从而使所述的主软件能够发送消息到所述主叫用户。该函数必须与预约所述业务期间内给出的函数相同,否则将不再停止所述预约。
返回值:
所述返回参数指示所述预约是(TRUE)否(FALSE)被停止。
A4)“wm app2Pipe(FunctionType function,…)”:
由所述客户次级应用向所述客户主应用提供以能够与其对话的函数的原型。该函数具有可变自变量,且自变量的数字与类型取决于第一“函数”参数。
准确名称:
Void wm_app2Pipe(FunctionType function,…);
参数:
函数:所请求函数。该函数包括以下参数的数字和类型。一些值会被保留(例如0到127),其它的值(例如128至255)留供所述客户主应用与所述客户次级应用之间的特定对话使用。
A4-1)函数=WM_APP_FUNCTION_INIT的可变参数:
Viod wm_app2Pipe(
FunctionType_t function,
InitType_t Init,
Void (*MainAppDialogFunction)(wm_apmMsg_t*)
Void *(*SecondaryAppDialogFunction)(wm_apmMsg_t*),
);
所述次级应用必须被初始化且必须执行其处理。
InitType_t Init:初始化类型(APM_INIT_POWER_ON或APM_INIT_REBOOT)
Void(*Main AppDialogFunction)(wm_apmMsg_t):所述客户次级应用必须使用以发送消息到所述客户主应用的函数地址。如果所述客户主应用并不需要该函数,则其发送NULL值。
Void*(*SecondaryAppDialogFunction)(wm_apmMsg_t*):所述客户次级应用必须给出其向所述客户主应用提供的函数的地址。如果所述客户次级应用并不提供该函数,则其必须将该值设置为NULL。
A4-2)函数=WM_APP_FUNCTION_STOP的可变参数:
Void wm_app2Pipe
FuntionType_t function,
);
所述客户次级应用必须停止其处理,停止其所有预约并释放所有使用的资源。
A5)“wm apmAppliParser”
所述客户主应用必须提供以接收从主软件始发消息的源函数的原型。形成该处理函数(也称为“接收”函数)的参数的消息尤其包括AT指令或对于AT指令的响应。
应当注意的是,以下所有描述同样适用于源函数,其中所述客户次级应用愿意接收从所述的主软件始发的消息。所有的改变只是函数名称自身(例如“wm_app2MsgParser”代替“wm_apmAppliParser”)。
准确名称:
Bool wm_apmAppliParser(wm_apmMsg_t*Message);
参数:
Message
所述消息结构对于每一类型的所接收消息而言都是不同的:
Typedef struct
{
S16 MsgTyp;
/*“MsgTyp”是用于确定所述消息主体的相关结构的所接收消息类型*/wm_apmBody_t Body;/*“Body”是特定消息主体*/
}wm_apmMsg_t
“MsgTyp”的值:
WM_AT_SEND_RSP
该消息包括对于先前由所述客户嵌入式软件发送至主软件的AT指令的响应
WM_AT_UNSOLICITED
该消息包括主动提供的AT指令
WM_AT_CMD_PRE_PARSER
该消息包括客户外部软件通过主软件发送的AT指令。
WM_AT_RSP_PRE_PARSER
该消息包括由所述的主软件执行从外部应用始发的AT指令产生的AT响应。
WM_OS_TIMER
该消息在超时期满时发送。
主体结构是:
typedef union
{
/*以下包括所有与“MsgTyp”相关的特定结构/消息类型
/*WM_AT_SEND_RSP*/
wm_atResponse_t ATResponse;
/*WM_AT_UNSOLICITED*/
wm_atUnsolicited_t ATUnsolicited;
/*WM_AT_CMD_PRE_PARSER */
wm atCmdPreParser t ATCmdPreParser;
;/*WM_AT_RSP_PRE_PARSER */
wm_atRspPreParser_t ATRspPreParser
/*WM_O S_TIMER */
wm_osTimer_t OSTimer;
}wm_apmBody_t;
主体的子结构如下:
WM_AT_SEND_RSP的主体:
typedef struct{
wm_atSendRspType_e Type;
u16 Strlength;/*strData的长度*/
char StrData[1];/*AT响应
*/
}wm_atResponse_t;
typedef enum
WM_AT_SEND_RSP_TO_EMBEDDED,
WM_AT_SEND_RSP_TO_EXTERNAL,
WM_AT_SEND_RSP_BROADCAST,
}wm_atSendRspType_e;
(见用于描述“wm_atSendRspType_e描述”的“wm_atSendCommand”函数的细节)
WM_AT_UNSOLICITED的主体:
typedef struct{
wm_atUnsolicited_e Type;
u16 Strlength;
char StrData[1]
}wm_atUnsolicited_t;
typedef enum {
WM_AT_UNSOLICITED_TO_EXTERNAL,
WM_AT_UNSOLICITED_TO_EMBEDDED,
WM_AT_UNS_OLICITED_BROADCAST,
}wm_atUnsolicited_e;
(见用于描述“wm_atUnsolicited_e”的“wm_atUnsolicitedSubscription”函数的细节)
WM_AT_CMD_PRE_PARSER的主体:
typedef struct{
wm_atCmdPreSubscribe_e Type;
u16 Strlength;
char StrData[1]
}wm_atCmdPreParser_t;
typedef enum {
WM_AT_CMD_PRE_WAVECOM_TREATMENT,/*DEFAULTVALUE*/
WM_AT_CMD_PRE_EMBEDDED_TREATMENT,
WM_AT_CMD_PRE_BROADCAST,
}wm_atCmdPreSubscribe_e;
(见用于描述“wm_atCmdPreSubscribe_e”的“wm_atRspPreParserSubscribe”函数的细节)。
WM_AT_RSP_PRE_PARSER的主体:
typedef struct{
wm_atRspPreSubscribe_e Type;
u16 Strlength;
char StrData[1];
}wm_atRspPreParser_t;
typedef enum {
WM_AT_RSP_PRE_WAVECOM_TREATMENT,/*DEFAULTVALUE*/
WM_AT_RSP_PRE_EMBEDDED_TREATMENT,
WM_AT_RSP_PRE_BROADCAST,
}wm_atRspPreSubscribe_e;
(见用于描述“wm_atRspPreSubscribe_e”的“wm_atRspPreParserSubscribe”函数的细节)。
WM_OS_TIMER的主体:
typedef strct{
u8 Ident;/*Timeout idenfier
*/
}wm_osTimer_t;
(见用于描述“Ident”的“wm_osStartTimer”函数的细节)
所返回的参数
返回参数指示所述消息是(TURE)否(FALSE)被处理。
A6)“wm_atSendCommand”
用于将至少一个AT指令发送至所述的主软件的函数,其中一个参数指示执行所述AT指令所产生的响应的目的地应用(即客户嵌入式应用(主应用或次级应用)和/或客户外部应用)。
准确名称:
Void_wm_atSendCommand(u16 AtStringSize
wm_atSendRspType_e Responsetype,
char *AtString,);
参数:
AtString
该参数可能是使用ASCII字符的任何类型的AT指令串。若干字符串可能被同时发送。
AtStringSize
先前参数:AtString的尺寸。
ResponseType
Response type
Typedef enum
WM_AT_SEND_RSP_TO_EMBEDDED,/*DEFAULT VALUE*/
WM_AT_SEND_RSP_TO_EXTERNAL,
WM_AT_SEND_RSP_BROADCAST,
}wm_atSendRspType_e;
WM_AT_SEND_RSP_TO_EMBEDDED
所有响应都被改发到所述客户嵌入式应用(主应用或次级应用)。这是缺省模式。
WM_AT_SEND_RSP_TO_EXTERNAL
所有响应都被改发至所述客户外部应用(PC)。
WM_AT_SEND_RSP_BROADCAST
所有响应都被改发(广播)至所述客户嵌入式应用(主应用或次级应用)以及所述客户外部应用(PC)。
A7)“wm AtUnsolicitedSubscription”
向主软件注册接收主动提供的AT指令的业务的注册函数,其中一个参数指示每个所述主动提供的AT指令必须被改发到的目的地应用(即所述客户嵌入式应用(主应用或次级应用)和/或所述客户外部应用)。
准确名称:
Void wm_atUnsolicitedSubscription(wm_atUnsolicited_eUnsolicited);
参数:
Unsolicited
该参数描述在主动提供的AT指令到达时所执行的动作。
Typedef enum
WM_AT_UNSOLICITED_TO_EXTERNAL,/*Default value*/
WM_AT_UNSOLICITED_TO_EMBEDDED,
WM_AT_UNSOLICITED_BROADCAST,
}wm_atUnsolicited_e;
WM_AT_UNSOLICITED_TO_EXTERNAL
所有主动提供的指令都将被改发至所述客户外部应用(PC)(缺省值)。
WM_AT_UNSOLICITED_TO_EMBEDDED
所有主动提供的指令都将被改发至所述客户嵌入式应用(主应用或次级应用)。
WM_AT_UNSOLICITED_BROADCAST
所有主动提供的指令都将被改发(广播)至所述客户外部应用(PC)以及所述客户嵌入式应用(主应用或次级应用)。
A8)“wm atCmdPreParserSubscribe”
向主软件注册AT指令预分析业务的注册函数,其中一个参数指示每个从外部应用始发的AT指令必须被指向的目的地应用(即所述客户嵌入式应用(主应用或次级应用)和/或所述的主应用)。
准确名称:
Void wm_atCmdPreParserSubscribe(wm_atCmdPreSubscribe_e SubscribeType);
参数
SubscribeType
该参数描述在AT指令到达时所执行的动作
Typedef enum
WM_AT_CMD_PRE_WAVECOM_TREATMENT,/*DEFAULTVALUE*/
WM_AT_CMD_PRE_EMBEDDED_TREATMENT,
WM_AT_CMD_PRE_BROADCAST,
}wm_atCmdPreSubscribe e;
WM_AT_CMD_PRE_WAVECOM_TREATMENT
所述客户嵌入式应用(主应用或次级应用)并不愿意过滤(或侦查)所述客户外部应用所发送的指令(缺省模式)。
WM_AT_CMD_PRE_EMBEDDED_TREATMENT
所述客户嵌入式应用(主应用或次级应用)愿意过滤所述客户外部应用所发送的指令。
WM_AT_CMD_PRE_BROADCAST
所述客户嵌入式应用(主应用或次级应用)愿意侦查所述客户外部应用所发送的指令。
A9)“wm atRspPreParserSubscribe”
向所述的主软件注册AT响应预分析业务的注册函数,其中一个参数指示从外部应用始发的每个AT响应都必须被指向的目的地应用(即所述客户嵌入式应用(主应用或次级应用)和/或所述客户外部应用)。
准确名称:
Void wm_atRspPreParserSubscribe(wm_atRspPreSubscribe_eSubscribeType);
参数
SubscribeType
该参数描述在AT指令到达时所执行的动作
Typedef enum
WM_AT_RSP_PRE_WAVECOM_TREATMENT,/*DEFAULTVALUE*/
WM_AT_RSP_PRE_EMBEDDED_TREATMENT,
WM_AT_RSP_PRE_BROADCAST,
}wm_atRSPPreSubscribe_e;
WM_AT_RSP_PRE_WAVECOM_TREATMENT
所述客户嵌入式应用(主应用或次级应用)并不愿意过滤(或侦查)被发送至所述客户外部应用的响应(缺省模式)。
WM_AT_RSP_PRE_EMBEDDED_TREATMENT
所述客户嵌入式应用(主应用或次级应用)愿意过滤被发送到所述客户外部应用的响应。
WM_AT_RSP_PRE_BROADCAST
所述客户嵌入式应用(主应用或次级应用)愿意侦查被发送到所述客户外部应用的响应。
A10)“wm atSendRspExternalApp”
用于将至少一个响应通过所述的主软件发送至所述客户外部软件的函数。仅在预先注册了尤其包括将响应的拷贝转发至所述客户嵌入式应用(主应用或次级应用)的响应预分析业务的情况下,方可使用该函数。
准确名称:
Viod wm_atSendRspExternalApp(u16AtStringSize,
Char*AtSting,);
参数:
AtSting
可能是ASCII字符的任何类型AT响应字符串。
AtStringSize
先前参数:AtString的尺寸
A11)“DataFlowService”
所述客户嵌入式应用(主应用或次级应用)在数据通信被建立之后通过所述主软件发送和/或接收数据的函数。
A12)“wm osStartTimer”
起动超时的函数,所述启动函数的参数指示哪个超时将被起动。
A13)“wm osStopTimer”
停止超时的函数,所述停止函数的参数指示哪个超时将被停止。
Claims (25)
1、一种用于驱动无线电通信模块的方法,所述无线电通信模块宿留和执行主软件,所述主软件执行无线电通信功能并包括执行驱动指令的单元,所述驱动指令由至少一个客户驱动软件发送至所述主软件,并属于预定驱动指令组,
其特征在于,所述无线电通信模块还宿留和执行至少一个客户软件,所述客户软件被称为客户嵌入式软件,其包括客户主应用和至少一个从属于所述客户主应用的客户次级应用,由所述客户嵌入式软件执行的处理被在所述客户主应用与所述至少一个客户次级应用之间分配,
所述驱动方法包括在所述客户嵌入式软件和所述主软件之间进行通信的步骤,使得所述客户嵌入式软件能够执行下述两种作用中的至少一种:
-客户驱动软件的作用,所述客户驱动软件发送驱动指令到所述主软件,并从所述主软件接收由执行一些所述驱动指令产生的响应;
-客户监控软件的作用,所述客户监控软件管理由客户驱动软件发送的驱动指令的执行,所述客户监控软件被称为客户外部软件,由与所述无线电通信模块协作的终端设备宿留和执行。
2、根据权利要求1的驱动方法,其特征在于,所述客户软件包括一个二进制文件,所述二进制文件包括所述客户主应用和所述至少一个客户次级应用。
3、根据权利要求1的驱动方法,其特征在于,所述客户软件包括第一二进制文件和至少一个第二二进制文件,所述第一二进制文件包括所述客户主应用,每个所述第二二进制文件都包括至少一个客户次级应用。
4、根据权利要求1至3中任何一个的驱动方法,其特征在于,所述通信步骤包括下面的步骤,以使所述客户嵌入式软件起到客户驱动软件的作用:
-所述客户嵌入式软件发送至少一个驱动指令到所述主软件内包括的执行单元;
-所述主软件发送至少一个响应到所述客户嵌入式软件,所述响应是由所述主软件内包括的执行单元执行所述至少一个驱动指令所产生的;
-所述客户嵌入式软件处理由所述主软件发送至所述客户嵌入式软件的至少一个响应。
5、根据权利要求1的驱动方法,其特征在于,所述通信步骤包括下面的步骤,以使所述客户嵌入式软件起到客户监控软件的作用:
-所述主软件将至少一个指令预分析为确定的指令预分析策略的函数,以将所述驱动指令从所述客户外部软件发送到所述客户嵌入式软件和/或所述主软件内包括的执行单元;
-所述客户嵌入式软件处理被交换到所述客户嵌入式软件的至少一个驱动指令。
6、根据权利要求5的驱动方法,其特征在于,所述通信步骤包括下面的步骤:所述客户嵌入式软件从一组指令预分析策略中选择这样的指令预分析策略,所述预分析策略是:
-从所述客户外部软件始发的驱动指令仅被发送至所述主软件内的执行单元;
-从所述客户外部软件始发的驱动指令仅被发送至所述客户嵌入式软件;
-从所述客户外部软件始发的驱动指令被发送至所述主软件内包括的执行单元以及所述客户嵌入式软件。
7、根据权利要求5和6中任何一个的驱动方法,其特征在于,由所述客户嵌入式软件所执行的处理步骤使得对于每个指令做出属于下述判定组的至少一种判定:
-将所述驱动指令发送至所述主软件内包括的执行单元,所述客户嵌入式软件包括为此目的将驱动指令发送至所述执行单元的单元;
-提供或不提供仅作为关于所述指令的至少一个信息项的函数的响应,而无需执行所述指令,所述客户嵌入式软件包括为此目的将所述响应通过所述主软件发送至所述客户外部软件的单元。
8、根据权利要求1的驱动方法,其特征在于,所述通信步骤包括按照下面的步骤,以使所述客户嵌入式软件能够起到客户监控软件的作用:
-所述主软件将至少一个响应预分析为确定的响应预分析策略的函数,以将由所述主软件内包括的执行单元执行至少一个驱动指令所产生的至少一个响应传送至所述客户嵌入式软件和/或所述客户外部软件;
-所述客户嵌入式软件处理被交换到所述客户嵌入式软件的至少一个响应。
9、根据权利要求8的驱动方法,其特征在于,所述通信步骤包括下面的步骤:
所述客户嵌入式软件从一组响应预分析策略中选择这样的响应预分析策略,所述响应预分析策略是:
-从所述主软件内包括的执行单元始发的响应仅被发送至所述客户外部软件;
-从所述主软件内包括的执行单元始发的响应仅被发送至所述客户嵌入式软件;
-从所述主软件内包括的执行单元始发的响应被发送至所述客户嵌入式软件以及所述客户外部软件。
10、根据权利要求1的驱动方法,其特征在于,所述无线电通信模块包括在属于以下设备组的设备内:
-无线电通信终端;
-需要无线通信特征的、除无线电通信终端之外的设备;
-调制解调器。
11、根据权利要求1的驱动方法,其特征在于,所述主软件包括与一组执行函数相关的至少一个主应用,每个所述执行函数都能够执行至少一个所述驱动指令,
所述客户主应用与客户次级应用中的每一个都与一组源函数相关,每个所述源函数都能够将驱动指令或是对于驱动指令的响应发送至所述主应用,或者从所述主应用接收驱动指令或是对于驱动指令的响应,
所述主软件和/或所述客户嵌入式软件包括用于接口所述源函数与所述执行函数的应用接口。
12、根据权利要求11的驱动方法,其特征在于,与所述客户主应用相关的所述源函数组包括在起动所述无线电通信模块时调用的客户主应用初始化源函数(“wm_apmAppliInit”)。
13、根据权利要求12的驱动方法,其特征在于,与所述客户主应用相关的所述源函数组包括用于预约以发送从所述主软件始发消息的业务的源函数(“wm_osMsgParsersubscribe”),
在所述预约时,所述客户主应用将其中所述客户主应用希望从所述主软件接收消息的消息处理源函数(“wm_apmAppliParser”)的地址发送到所述主软件。
14、根据权利要求11至13中任何一个的驱动方法,其特征在于,与所述客户次级应用相关的所述源函数组包括用于初始化由所述客户主应用调用的所述客户次级应用的源函数(“wm_app2Pipe(Init)”)。
15、根据权利要求14的驱动方法,其特征在于,与所述客户次级应用相关的所述源函数组包括用于预约以发送从所述主软件始发消息的业务的源函数(“wm_osMsgParserSubscribe”),
在所述预约时,所述客户次级应用将其中所述客户次级应用希望接收从所述主软件始发消息的源消息处理函数(“wm_app2MsgParser”)的地址发送到所述主软件。
16、根据权利要求14的驱动方法,其特征在于,所述客户次级应用的源初始化函数包括使得所述客户主应用与所述客户次级应用之间的对话机制能够使用的至少一个参数。
17、根据权利要求14的驱动方法,其特征在于,与所述客户次级应用相关的所述源函数组还包括用于停止所述客户主应用所调用的所述客户次级应用的源函数(“wm_app2Pipe(Stop)”)。
18、根据权利要求14的驱动方法,其特征在于,与所述客户次级应用相关的所述源函数组包括不预约以发送从所述主软件始发消息的所述业务的源函数(“wm_osMsgParserUnsubscribe”)。
19、根据权利要求13的驱动方法,其特征在于,所述消息是处理来自所述主软件消息的所述源函数(“wm_apmAppliParser”、“wm_app2MsgParser”)的参数,
形成所述参数的所述消息的结构包括:
-第一字段,其包括与所述消息的类型相关的信息;
-第二字段,其包括所述消息的具体数据体。
20、根据权利要求19的驱动方法,其特征在于,所述消息类型属于以下消息类型组:
-包括对于先前由所述客户嵌入式软件发送至所述主软件的驱动指令的响应的消息;
-包括主动提供的驱动指令的消息;
-包括由客户外部软件通过所述主软件发送的驱动指令的消息;
-包括由所述主软件执行所述客户外部软件所发送的驱动指令产生的响应的消息;
-在超时满期时发送的消息。
21、根据权利要求11的驱动方法,其特征在于,与所述客户主应用以及客户次级应用相关的所述源函数组还包括至少一个属于以下源函数组的源函数:
(“wm_atSendCommand”)函数,其用于将至少一个驱动指令发送至所述主软件,所述发送函数的第一参数为所述至少一个驱动指令,所述发送函数的第二参数指示由执行所述驱动指令产生的响应被发送至的(多个)应用,即所述客户嵌入式软件内的客户主应用和/或客户次级应用,和/或所述客户外部软件内包括的客户外部应用;
(“wm AtUnsolicitedSubscription”)注册函数,其向所述主软件注册用于接收主动提供的驱动指令的业务,所述注册函数的一个参数指示每个所述主动提供的驱动指令将被改发至的应用,即所述客户嵌入式软件内的客户主应用和/或客户次级应用,和/或所述客户外部软件内包括的客户外部应用;
(“wm atCmdPreParserSubscribe”)注册函数,其向所述主软件注册驱动指令预分析业务,其中所述注册函数的一个参数指示从所述客户外部软件始发的每个驱动指令必须被指向的目的地应用,即所述客户嵌入式软件内包括的客户主应用和/或客户次级应用和/或所述主软件;
(“wm atRspPreParserSubscribe”)注册函数,其向所述主软件注册响应预分析业务,其中所述注册函数的一个参数指示所述主软件执行驱动指令所产生的每个响应必须被指向的目的地应用,即所述客户嵌入式软件内包括的客户主应用和/或客户次级应用,和/或所述客户外部软件内包括的客户外部应用;
(“wm_atSendRspExternalApp”)函数,其用于将至少一个响应通过所述主软件发送至所述客户外部软件,所述发送函数的一个参数为所述至少一个响应。
22、根据权利要求1的驱动方法,其特征在于,所述客户嵌入式软件与所述主软件中的每一个都使用RAM的不同部分,且所述两个软件程序中的一个尝试接入为另一软件程序保留的RAM部分都将停止操作。
23、根据权利要求1的驱动方法,其特征在于,所述一组驱动指令是一组标准AT指令。
24、根据权利要求23的驱动方法,其特征在于,除了标准AT指令之外,所述驱动指令组还包括附加的AT指令(AT+WDWL),所述附加AT指令(AT+WDWL)用于装入客户软件,使得所述外部客户软件能够将新客户软件或所述客户软件的新部分装入所述无线电通信模块。
25、根据权利要求23和24中任何一个的驱动方法,其特征在于,除了标准AT指令之外,所述驱动指令组还包括称为去激活指令的附加AT指令(AT+WOPEN),所述附加AT指令(AT+WOPEN)使得所述客户外部软件能够去激活所述客户嵌入式软件或所述客户嵌入式软件的一部分。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0103909A FR2822627B1 (fr) | 2001-03-22 | 2001-03-22 | Module de radiocommunication hebergeant et executant un logiciel client, et procede correspondant de mise en oeuvre d'un logiciel client de pilotage |
| FR01/03909 | 2001-03-22 | ||
| FR0112693A FR2822628B1 (fr) | 2001-03-22 | 2001-10-02 | Module de radiocommunication executant un logiciel principal et un logiciel client comprenant plusieurs applications clientes |
| FR01/12693 | 2001-10-02 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN1498510A CN1498510A (zh) | 2004-05-19 |
| CN100426903C true CN100426903C (zh) | 2008-10-15 |
Family
ID=26212931
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CNB028070720A Expired - Fee Related CN100426903C (zh) | 2001-03-22 | 2002-03-22 | 一种用于驱动无线电通信模块的方法 |
Country Status (8)
| Country | Link |
|---|---|
| EP (1) | EP1371252B1 (zh) |
| CN (1) | CN100426903C (zh) |
| AT (1) | ATE431692T1 (zh) |
| AU (1) | AU2002253260B2 (zh) |
| DE (1) | DE60232313D1 (zh) |
| FR (1) | FR2822628B1 (zh) |
| PL (1) | PL364084A1 (zh) |
| WO (1) | WO2002078376A1 (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101364847B (zh) * | 2008-09-25 | 2011-06-29 | 上海交通大学 | 认知无线电中的协作通信方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2775550A1 (fr) * | 1998-02-24 | 1999-09-03 | Schlumberger Systems & Service | Station mobile pour l'execution de programmes de jeu |
| WO1999063767A2 (en) * | 1998-06-05 | 1999-12-09 | Telia Ab (Publ) | Device and method for updating of service logic in a mobile unit |
| WO2000033538A1 (en) * | 1998-12-01 | 2000-06-08 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for dial-up networking over infrared data link |
-
2001
- 2001-10-02 FR FR0112693A patent/FR2822628B1/fr not_active Expired - Fee Related
-
2002
- 2002-03-22 WO PCT/FR2002/001028 patent/WO2002078376A1/fr not_active Ceased
- 2002-03-22 CN CNB028070720A patent/CN100426903C/zh not_active Expired - Fee Related
- 2002-03-22 EP EP02722373A patent/EP1371252B1/fr not_active Expired - Lifetime
- 2002-03-22 DE DE60232313T patent/DE60232313D1/de not_active Expired - Fee Related
- 2002-03-22 AU AU2002253260A patent/AU2002253260B2/en not_active Ceased
- 2002-03-22 PL PL02364084A patent/PL364084A1/xx not_active Application Discontinuation
- 2002-03-22 AT AT02722373T patent/ATE431692T1/de not_active IP Right Cessation
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2775550A1 (fr) * | 1998-02-24 | 1999-09-03 | Schlumberger Systems & Service | Station mobile pour l'execution de programmes de jeu |
| WO1999063767A2 (en) * | 1998-06-05 | 1999-12-09 | Telia Ab (Publ) | Device and method for updating of service logic in a mobile unit |
| WO2000033538A1 (en) * | 1998-12-01 | 2000-06-08 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for dial-up networking over infrared data link |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1371252B1 (fr) | 2009-05-13 |
| EP1371252A1 (fr) | 2003-12-17 |
| CN1498510A (zh) | 2004-05-19 |
| WO2002078376A1 (fr) | 2002-10-03 |
| AU2002253260B2 (en) | 2006-03-09 |
| FR2822628B1 (fr) | 2003-05-09 |
| DE60232313D1 (de) | 2009-06-25 |
| FR2822628A1 (fr) | 2002-09-27 |
| ATE431692T1 (de) | 2009-05-15 |
| PL364084A1 (en) | 2004-12-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU730088B2 (en) | A system, method and article of manufacture for seamless, server application support of network and non-network client terminals | |
| US20020004850A1 (en) | System and method of providing a messaging engine for an enterprise javabeans enabled server to achieve container managed asynchronous functionality | |
| JP2005518015A (ja) | 移動体端末用プラットフォーム・システムのミドルウエア・サービス・レイヤ | |
| CN111400070B (zh) | 终端设备及其跨进程接口调用实现和执行方法 | |
| US20020083322A1 (en) | Distribution of deployment information for remote applications | |
| JP2010152917A (ja) | 周辺デバイスとワイアレス・デバイスとの間の通信を確立するためのシステム及び方法 | |
| US6163797A (en) | Application dispatcher for seamless, server application support for network terminals and non-network terminals | |
| JPH11353198A (ja) | 分散オブジェクト・システムにおいてフィルタを サポートするための整列・整列解除構造 | |
| CN111142910B (zh) | 一种面向多界面的资源调配处理方法及系统 | |
| WO2011023020A1 (zh) | 客户端/服务端架构中服务端和客户端的业务执行方法及系统 | |
| US6981251B1 (en) | Agent system for mobile agents, computer network and method for downloading an agent system from a host computer to a client computer of a computer network | |
| US7653382B2 (en) | Radiocommunication module executing a main software and a client software comprising several client applications | |
| CN100426903C (zh) | 一种用于驱动无线电通信模块的方法 | |
| US20140173635A1 (en) | System and method for adding local resources for use by a mobile agent object | |
| CN100514990C (zh) | 运行主软件程序并且所述程序底层向所运行的客户软件程序开放的无线电通信模块 | |
| CN115442913A (zh) | 协议接入方法、通信方法、开发设备、网关及存储介质 | |
| CN116149883A (zh) | 用于Web系统中的RPA软件快速嵌入方法及系统 | |
| KR100494827B1 (ko) | 하드웨어 독립적인 통신 인터페이스를 가지는 분산객체모델 기반의 라디오 서버와 이를 이용한 통신제어방법 | |
| WO2021057351A1 (zh) | 在glibc环境下控制安卓蓝牙的装置、方法及终端设备 | |
| CN110855745B (zh) | 一种通讯软件的程序的接入方法 | |
| CN111708568A (zh) | 一种组件化开发解耦方法及终端 | |
| JP2003076563A (ja) | 分散オブジェクトミドルウェア連携方法及びプログラムを記録した記録媒体並びにプログラム | |
| CN117992118A (zh) | 一种自适应混合应用JavaScript桥接的方法 | |
| CN117201577A (zh) | 基于pisa的跨平台api和spi的通讯方法和系统 | |
| HK1072867B (zh) | 运行主软件程序并且所述程序底层向所运行的客户软件程序开放的无线电通信模块 |
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: 20081015 Termination date: 20170322 |
|
| CF01 | Termination of patent right due to non-payment of annual fee |