首页 / 专利库 / 专利权 / 申请 / 国际申请 / 权利要求 / 从属权利要求 / 运行主软件程序并且所述程序底层向所运行的客户软件程序开放的无线电通信模块

运行主软件程序并且所述程序底层向所运行的客户软件程序开放的无线电通信模

阅读:209发布:2022-10-22

专利汇可以提供运行主软件程序并且所述程序底层向所运行的客户软件程序开放的无线电通信模专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种如下类型的无线电通信模 块 ,所述模块托管并运行一个主 软件 程序,该程序包括用于管理 操作系统 (OS)、无线电通信(第三层GSM)以及 外围设备 (HWL)的应用。根据本发明,每一个所述应用都与一组第一级运行函数相关联。此外,本发明的无线电通信模块托管并运行至少一个客户机软件程序,所述程序包括至少一个与一组第一级源函数相关联的客户机应用。主软件程序和/或客户机软件程序包括一个第一级 接口 应用,该应用可以将关联于客户机应用的第一级源函数与关联于操作系统管理应用以及用于管理无线电通信和外围设备的应用中的至少一个应用的第一级运行函数相对接。这样一来,可以向至少一个客户机应用提供对于主软件程序的至少某些功能的 访问 。,下面是运行主软件程序并且所述程序底层向所运行的客户软件程序开放的无线电通信模专利的具体信息内容。

1.一种托管和运行一个主软件程序的无线电通信模,包括:
一个操作系统管理应用(OS),
一个无线电通信管理应用(第三层GSM),
一个用于管理可以连接到无线电通信模块的外围设备的应用 (HWL),
其特征在于,包含在主软件程序中的每一个所述应用都与一组 第一级执行函数相关联,
其中所述无线电通信模块还托管并运行至少一个客户软件程 序,所述程序包括至少一个与一组第一级源函数相关联的客户应用,
并且其中所述主软件程序和/或所述客户软件程序包括一个第一 级接口应用,由此允许关联于所述客户应用的第一级源函数与关联于 所述操作系统管理应用以及所述无线电通信管理应用和外围设备管理 应用中的至少一个的第一级执行函数相对接,由此向至少一个客户应 用开放对于主软件程序的至少某些功能的访问
2.根据权利要求1的无线电通信模块,其特征在于,所述接口 应用包含在所述客户软件程序中。
3.根据权利要求1和2中任何一个权利要求的无线电通信模块, 其特征在于,所述客户软件程序包括一个包含了至少两个客户应用的 二进制文件。
4.根据权利要求1和2中任何一个权利要求的无线电通信模块, 其特征在于,所述客户软件程序包括至少两个二进制文件,其中每一 个二进制文件都包含至少一个客户应用。
5.根据权利要求1到4中任何一个权利要求的无线电通信模块, 其特征在于,所述客户软件程序包括一个全局初始化客户应用,以及 至少一个执行至少一个实时任务的客户任务应用,
并且其中与全局初始化客户应用相关联的该组第一级源函数包 括一个第一级全局初始化源函数(“wm_apmGlobalInit_level1”),其 作用是为主软件程序提供允许所述程序初始化每个客户任务应用并与 之进行交互的信息。
6.根据权利要求1到5中任何一个权利要求的无线电通信模块, 其特征在于,所述客户软件程序包括至少两个客户任务应用,其中每 一个应用都与一组第一级源函数相关联并且执行至少一个不同的实时 任务,
并且其中所述主软件程序和/或所述客户软件程序包括在所述客 户任务应用之间共享计算资源,以便允许进行实时多任务操作的装置。
7.根据权利要求5和6中任何一个权利要求的无线电通信模块, 其特征在于,与每一个客户任务应用相关联的该组第一级源函数包括 一个第一级初始化源函数(“AppliInit_nx_level1”),由此允许初始化 所述客户任务应用。
8.根据权利要求5或7的无线电通信模块,其特征在于,由全 局初始化源函数提供给主软件程序的所述信息包括:
将要初始化的客户任务应用的数目;
用于每一个将要初始化的客户任务应用的相应的第一级初始化 源函数。
9.根据权利要求5到8中任何一个权利要求的无线电通信模块, 其特征在于,与每一个客户任务应用相关联的该组第一级源函数都包 括一个对来自主软件程序的消息进行接收和处理的第一级源函数 (“AppliParser_nx_level1”),其中所述第一级接收和处理源函数的 一个参数即为所述消息。
10.根据权利要求8或9的无线电通信模块,其特征在于,由第 一级全局初始化源函数提供给主软件程序的所述信息还包括:
用于每一个将要初始化的客户任务应用的第一级接收和处理源 函数。
11.根据权利要求5到10中任何一个权利要求的无线电通信模 块,其特征在于,与每一个客户任务应用相关联的第一级源函数组包 括一个预订主软件程序所管理的邮箱服务的第一级源函数 (“wm_apmMbxSubscribe”),由此允许为所述客户任务应用自身分 配一个邮箱,其中所述邮箱为所述客户任务应用所特有并且在所述邮 箱中所述客户任务应用希望接收来自至少一个预定信源的信息。
12.根据权利要求11的无线电通信模块,其特征在于,每一个 预定信源都是一个给主软件程序执行的至少一个主任务分配的邮箱, 并且包含了所述主任务希望与一个或多个其他实体通信的信息。
13.根据权利要求1到12中任何一个权利要求的无线电通信模 块,其特征在于,所述客户软件程序包括至少一个客户任务应用,其 中所述客户任务应用与一组第一级源函数相关联并且每一个都执行至 少一个不同的实时任务,
并且其中与每一个客户任务应用相关联的第一级源函数组包含 至少一个函数,所述函数归属于如下的组群:
经由所述接口应用以及所述主软件程序而将一个(先前分配和 完成的)消息发送到另一个客户任务应用的第一级源函数 (“wm_osSendMsg_level1”);
在所述主软件程序中触发一个时延的第一级源函数 (“wm_osStartTimer_level1”);
停止所述主软件程序中先前触发的一个时延的第一级源函数 (“wm_osStopTimer_level1”);
跟踪调试操作的第一级源函数(“wm_osDebugTrace_level1”);
显示一个致命错误并且重新启动的第一级源函数 (“wm_osDebugFatalError_level1”);
在无线电通信模块包含的存储器中写入数据的第一级源函数 (“wm_osWriteFlashData_level1”);
读取无线电通信模块包含的存储器中的数据的第一级源函数 (“wm_osReadFlashData_level1”);
提供无线电通信模块包含的存储器中保存数据的长度的第一级 源函数(“wm_osGetLenFlashData_level1”);
删除无线电通信模块包含的存储器中保存的数据的第一级源函 数(“wm_osDeleteFlashData_level1”);
提供无线电通信模块包含的存储器内部分配的存储量的第一级 源函数(“wm_osGetAllowedMemoryFlashData_level1”);
提供无线电通信模块包含的存储器内部的自由存储量的第一级 源函数(“wm_osGetFreeMemoryFlashData_level1”);
请求分配无线电通信模块包含的存储器内部的存储区的第一级 源函数(“wm_osGetMemory_level1”);
请求释放无线电通信模块包含的存储器内部的存储区的第一级 源函数(“wm_osReleaseMemoryFlashData_level1”)。
14.根据权利要求1到13中任何一个权利要求的无线电通信模 块,其特征在于,嵌入的客户软件程序和主软件程序各自使用了同一 随机存取存储器的不同部分,而所述软件程序之一尝试访问为另一个 软件程序保留的随机存取存储器的一部分则将会导致操作停止。
15,根据权利要求1到14中任何一个权利要求的无线电通信模 块,其特征在于,所述模块包含在一个归属于以下群组的设备之中, 所述群组包括:
无线电通信终端;
不同于无线电通信终端但需要无线通信功能的设备;
调制解调器
16.根据权利要求1到15中任何一个权利要求的无线电通信模 块,其特征在于,所述客户软件程序至少包括:
一个实施第一实时任务的第一客户应用,所述任务执行的是由 至少一个客户控制应用发送到所述第一应用并归属于预定的一组控制 命令的控制命令,特别地,所述第一客户应用基于一组第二级执行函 数,所述函数特定于控制命令并且每一个函数都允许执行至少一个所 述控制命令,
一个实施第二实时任务的第二客户应用,以使所述第二客户应 用至少起到以下应用的作用之一:*客户控制应用,向第一客户应用发 送控制命令并且从客户应用中接收执行某些控制命令所产生的响应;* 客户监督应用,管理客户控制应用发送的控制命令的执行,其中所述 客户应用处于外部并由与无线电通信模块接合的第三方设备托管和运 行;特别基于一组第二级源函数的所述第二客户应用,所述第二级源 函数特定于控制命令并且每一个第二级源函数都允许发送和接收往返 于第一客户应用的控制命令以及对应于控制命令的响应;
一个专用于控制命令并允许将所述第二级源函数与执行函数对 接的第二级接口应用,所述第二级接口应用自身基于所述第一级接口 应用。
17.根据权利要求16的无线电通信模块,其特征在于,为了允 许第二客户应用起到客户控制应用的作用:
第二客户应用包括向第一客户应用中包含的执行装置发送控制 命令的装置;
第一客户应用包括将第一客户应用中包含的执行装置执行某些 控制命令所产生的响应发送到第二客户应用的装置;
第二客户应用包括对第一客户应用向其发送的响应进行处理的 装置。
18.根据权利要求16和17中任何一个权利要求的无线电通信模 块,其特征在于,为了允许第二客户应用起到客户监督应用的作用:
第一客户应用包含作为预置命令切换策略的函数的命令切换装 置,以便将来自外部客户应用的控制命令发送到第二客户应用和/或发 送到第一客户应用中包含的执行装置;
第二客户应用包含对所述命令切换装置为其切换的控制命令进 行处理的装置。
19.根据权利要求18的无线电通信模块,其特征在于,第二客 户应用包含在一组命令切换策略中选择所述命令切换装置施加的命令 切换策略的装置,由此分别实现以下操作:
将来自外部客户应用的控制命令只发送到第一客户应用中包含 的执行装置;
将来自外部客户应用的控制命令只发送到第二客户应用;
将来自外部客户应用的控制命令发送到第一客户应用和第二客 户应用中包含的执行装置。
20.根据权利要求18和19中任何一个权利要求的无线电通信模 块,其特征在于,所述命令处理装置为每个命令做出至少一个决定, 所述决定归属于包含以下决定的群组:
向第一客户应用中包含的执行装置发送控制命令,为此目的, 第二客户应用包含了用于向执行装置发送控制命令的装置;
在没有执行命令的情况下,提供或不提供仅仅作为至少一条命 令相关信息的函数的响应,为此目的,第二客户应用包含将响应经由 第二客户应用发送到外部客户应用的装置。
21.根据权利要求16到20中任何一个权利要求的无线电通信模 块,其特征在于,为了允许第二客户应用发挥客户监督应用的作用:
第一客户应用包含作为预置响应切换策略的一个函数的响应切 换装置,以便将第一客户应用中包含的执行装置执行某些控制命令所 产生的响应发送到第二客户应用和/或外部客户应用;
第二客户应用包含由所述响应切换装置为其切换的响应进行处 理的装置。
22.根据权利要求21的无线电通信模块,其特征在于,第二客 户应用包含在一组响应切换策略中选择由所述响应切换装置施加的响 应切换策略的装置,由此分别实现以下操作:
只将来自执行装置的响应发送到外部客户应用;
只将来自执行装置的响应发送到第二客户应用;
将来自执行装置的响应既发送到第二客户应用又发送到外部客 户应用。
23.根据权利要求16到22中任何一个权利要求的无线电通信模 块,其特征在于,所述第二级源函数组特别包含了一个对来自第一应 用的消息进行处理的函数(“wm_apmAppliParser_level2”),其中所 述处理函数的一个参数即为所述消息。
24.根据权利要求23的无线电通信模块,其特征在于,形成所 述处理函数的一个参数的所述消息具有包含如下字段的结构:
包含一个涉及所述消息类型的信息的第一字段;
包含所述消息的特定主体的第二字段。
25.根据权利要求24的无线电通信模块,其特征在于,所述消 息类型归属于包含以下消息的群组:
包含一个针对先前由第二应用发送到第一应用的控制命令的响 应的消息;
包含一个未经请求的控制命令的消息;
包含外部客户应用经由第一应用发送的控制命令的消息;
包含由第一应用执行外部客户应用发送的控制命令所产生的响 应的消息;
在时延终止时发送的消息。
26.根据权利要求23到25中任何一个权利要求的无线电通信模 块,其特征在于,所述第二级源函数组还包括至少一个归属于包含以 下函数的群组:
一个向第一应用发送至少一个控制命令的第二级源函数 (“wm_atSendCommand_level2”),所述发送函数的第一参数即为所 述至少一个控制命令,所述发送函数的第二参数表示的是执行所述控 制命令而产生的响应所定址的一个或多个应用,即第二应用和/或外部 客户应用;
一个结合第一应用来预订一个接收未经请求的控制命令的服务 的第二级源函数(“wm_atUnsolicitedSubscription_level2”),所述预 订函数的一个参数表示将每一个未经请求的控制命令重定向到哪些收 件人应用,即第二客户应用和/或外部客户应用;
一个结合第一应用来预订一个控制命令切换服务的第二级源函 数(“wm_atCmdPreParserSubscribe_level2”),所述预订函数的一个 参数表示的是将每一个来自外部客户应用的控制命令切换到哪些应 用,即第一应用和/或第二应用;
一个结合第一应用来预订响应切换服务的第二级源函数 (“wm_atRspPreParserSubscribe_level2”),所述预订函数的一个参 数表示的是将第一应用执行控制命令所产生的每一个响应切换到哪些 应用,即外部客户应用和/或第二应用;
一个经由第一应用来向外部客户应用发送至少一个响应的第二 级源函数(“wm_atSendRspExternalApp_level2”),所述发送函数的 一个参数即为所述至少一个响应。
27.根据权利要求16到26中任何一个权利要求的无线电通信模 块,其特征在于,所述控制命令组是一个标准的AT命令组。
28.根据权利要求27的无线电通信模块,其特征在于,除了标 准的AT命令之外,所述控制命令组还包括一个附加的AT命令 (AT+WDWL),也就是所谓的加载命令,由此允许外部客户应用将 一个新的第二客户应用或是新的客户软件程序整体加载到无线电通信 模块中。
29.根据权利要求27和28中任何一个权利要求的无线电通信模 块,其特征在于,除了标准的AT命令之外,所述控制命令组还包括 一个附加的AT命令,也就是所谓的禁用命令(AT+WOPEN),由此 允许外部客户应用禁用第二客户应用。
30.根据权利要求16到29中任何一个权利要求的无线电通信模 块,其特征在于,所述第二客户应用包括一个主客户子应用以及至少 一个作为主客户子应用的从属应用的辅助客户子应用,由所述第二客 户应用执行的处理操作是在所述主客户子应用与所述至少一个辅助客 户子应用之间共享的。
31.根据权利要求30或7的无线电通信模块,其特征在于,所 述第一级初始化源函数(“AppliInit_nx_level1”)包含在与第二客户任 务应用相关联的第一级源函数组中并且允许初始化所述主客户子应 用。
32.根据权利要求31的无线电通信模块,其特征在于,主客户 子应用与一组第二级源函数相关联,该组源函数包括一个对发送来自 第一客户应用的消息的服务进行预订的第二级源函数 (“wm_osMsgParserSubscribe_level2”),
并且其中在进行这个预订的时候,主客户子应用将第二级消息 处理源函数(“wm_apmAppliParser_level2”)的地址发送到第一客户 应用,其中主客户子应用希望在该地址中接收来自第一客户应用的消 息。
33.根据权利要求30到32中任何一个权利要求的无线电通信模 块,其特征在于,辅助客户子应用与一组第二级源函数相关联,该组 源函数包括一个由主客户子应用调用并初始化辅助客户子应用的第二 级源函数(“wm_app2pipe(Init)_level2”)。
34.根据权利要求33的无线电通信模块,其特征在于,与辅助 客户子应用相关联的第二级源函数组包括一个对发送来自第一客户应 用的消息的服务进行预订的第二级源函数 (“wm_osMsgParserSubscribe_level2”),
并且其中在进行这个预订的时候,辅助客户子应用将第二级消 息处理源函数(“wm_app2MsgParser_level2”)的地址发送到第一客 户应用,其中辅助客户应用希望在所述地址中接收来自第一客户应用 的消息。
35.根据权利要求33和34中任何一个权利要求的无线电通信模 块,其特征在于,所述初始化辅助客户子应用的第二级源函数包括至 少一个允许在主客户子应用与辅助客户子应用之间执行对话机制的参 数。
36.根据权利要求33到35中任何一个权利要求的无线电通信模 块,其特征在于,与辅助客户子应用相关联的第二级源函数组包括一 个停止辅助客户子应用的第二级源函数 (“wm_app2Pipe(Stop)_level2”),所述函数是由主客户子应用调用 的。
37.根据权利要求33到36中任何一个权利要求的无线电通信模 块,其特征在于,与辅助客户子应用相关联的第二级源函数组包括一 个对发送来自第一客户应用的消息的服务进行退订的第二级源函数 (“wm_osMsgParserUnscribe_level2”)  。
38.一种开放对于无线电通信模块主软件程序中的至少某些功能 的访问的处理,所述无线电通信模块的类型是托管并运行一个主软件 程序,其中包括:
一个操作系统管理应用(OS),
一个无线电通信管理应用(第三层GSM),
一个用于管理可以连接到无线电通信模块的外围设备的应用 (HWL),
其特征在于,包含在主软件程序中的每一个所述应用都与一组 第一级执行函数相关联,
其中所述无线电通信模块还托管并运行至少一个客户软件程 序,所述程序包括至少一个与一组第一级源函数相关联的客户应用,
并且其中所述主软件程序和/或所述客户软件程序包括一个第一 级接口应用,由此允许关联于所述客户应用的第一级源函数与关联于 所述操作系统管理应用以及所述无线电通信管理应用和外围设备管理 应用中的至少一个的第一级执行函数相对接。

说明书全文

技术领域

发明的领域是无线电通信系统领域,并且尤其涉及而不局限于 依照GSM(全球移动通信系统)、DCS1800(1800MHz数字蜂窝系 统)、PCS1900(个人通信系统)、GPRS(通用无线分组业务)或 UMTS(通用移动电信系统)标准的无线电通信系统。

更准确地说,本发明涉及一种无线电通信模。在这里应该记住 的是,无线电通信模块是无线电话的一个主要部件。

背景技术

通常(第一个应用),无线电通信模块包含在一个与SIM(用户 标识模块)卡接合的终端或ME(移动设备)中。
此外,在这里还为上述无线电通信模块设想了其它应用。
特别地,在这里提出了一个建议,用于在将无线电通信模块引入 那些与无线电通信终端不同但却需要无线通信功能的设备的无线电通 信模块(第二个应用)。举例来说,我们可以列举遥测设备(仪表读 数)或报警设备,此外也可以列举行卡读取设备。
目前还提出了一个建议,用于以一种独立形式来提供无线电通信 模块(第三个应用):也就是通常所说的调制解调器。这种调制解调 器不包括任何人/机接口硬件组成部分(屏幕、键盘、扬声器等等)。 它旨在与不包括人/机接口硬件组成部分的第三方设备(支持客户软件 程序)接合。特别地,所述第三方设备可以是微型计算机,但是并不 局限于此。
通常,无线电通信模块托管(host)并运行了一个包含下列应用 的主软件程序:
-操作系统管理应用,又名“OS”(操作系统)程序块(block), 它管理的是系统方面,例如任务管理器、存储管理器、时延管理器等 等;
-无线电通信管理应用,又名“第三层GSM”程序块,它管理的是 网络方面,例如输出和输入呼叫管理、短文本消息的接收和发送管理 等等。需要注意的是,“第三层GSM”程序块可以不遵守整个的三层 GSM建议。它还可以符合其它的标准(DCS1800、PCS1900、GPRS、 UMTS等等);
-用于管理那些可以连接到无线电通信模块的外围设备的应用, 又名“HWL”(硬件层)程序块。特别地,外围设备指的是屏幕、键盘、 麦克、扬声器、串行总线、GPIO(通用输入/输出)组件、电池、 SIM读取器等等,但不局限于此;
-专有应用,它使用了以上这三个程序块“OS”、“第三层GSM” 以及“HWL”,以便为用户提供结合了无线电通信模块的设备所专有的 多种功能。应该记住的是,举例来说,该设备是一个无线电话(上述 第一个应用),一个“其他设备”(上述第二个应用),或者是一个调 制解调器(上述第三个应用)。
在当前情况下,主软件程序是一个由无线电通信模块制造商开发 的专用软件程序。它包括一个二进制文件,其中尤其包含了专有应用 以及前面提到的“OS”、“第三层GSM”以及“HWL”程序块。通常,这 个二进制文件是通过(例如使用“C”语言)编译多个源文件以及随后 在经过编译的源文件(目标文件)之间进行链接编辑所产生的结果。
根据当前技术,主软件程序是一个专用软件程序,然而这种技术 存在几个缺点。
首先,它不允许客户亲自开发自己的应用。实际上,客户必然需 要无线电通信模块制造商开发其应用(以便得到前面描述的专有应 用)。
当前技术的另一个缺点是:如果客户希望修改专有应用,那么他 必须借助于无线电通信模块的制造商。因此,顾客无法控制他希望对 其应用进行的变化并且必须永久依赖于无线电通信模块制造商的资 源。

发明内容

本发明的一个特定目的是克服现有技术中的这些不同缺点。
更准确的说,本发明的一个目的是提供一种技术方法,该技术方 法允许客户开发自己的应用并且随后嵌入所述应用以及使用一个无线 电通信模块来运行该应用。这种应用也称为“客户应用”,它必须能够 由客户在不依赖于无线电通信模块制造商的情况下自行开发。在无线 电通信模块内部,它必须替换先前所述的“专有应用”。
本发明的另一个目的是允许客户开发一个“分布式”客户应用,所 述应用包含了执行众多实时任务的多个“任务”应用,其中客户可以在 这些应用之间规定优先级。
本发明的另一个目的是在无线电通信模块内部提供软件架构,由 此可以(按照硬件和能量消耗)支持简单廉价的新的无线电通信模块 驱动技术。
需要记住的是,使用了第三方设备的当前的无线电通信模块控制 技术存在几个缺点。首先,这种技术需要两组资源(处理器和存储器)。 实际上,无线电通信模块包括一个处理器和一个存储器(第一组资源), 第三方设备也具有一个处理器和一个存储器(第二组资源)。因此, 前面提到的当前技术在硬件和能源消耗方面的成本很高。而前述当前 技术的另一个缺点则是无线电通信模块完全受控于第三方设备。实际 上,由第三方设备托管和运行的客户控制软件程序为“主程序”,而无 线电通信模块托管和运行的主软件程序则是“从属程序”。
根据本发明的另一个目的,由依照本发明的新软件体系结构支持 的新的无线电通信模块控制技术允许无线电通信模块在受控于第三方 设备的时候监督(包括作用于)这个控制操作。换句话说,在这里希 望无线电通信模块不应该只起到从属的作用。
本发明的另一目的是在前述新的无线电通信模块控制技术的环 境中简化客户在开发自己的客户应用的过程中的任务。
本发明的另一个目的是提出一种旨在解决执行本发明特定实施 例所产生的客户(主要和辅助)子应用之间的对话问题的简单有效的 解决方案,其中:
-在先前意义上,客户应用是“分布式”的并且包括:
*第一“任务”应用,它完成的是一个执行控制命令(例如AT命 令)的第一实时任务,
*第二“任务”应用,它完成的是一个第二实时任务,以使第二“任 务”应用起到客户控制应用和/或客户监督应用的作用。
-第二“任务”应用本身包括:
*一个主客户子应用,
*至少一个辅助客户子应用。
这些不同目的以及后续出现的其他目的都是根据本发明并使用 一个如下类型的无线电通信模块来满足的,其中所述无线电通信模块 托管并运行一个主软件程序应用,所述应用包括:一个操作系统(OS) 管理应用、一个(第三层GSM)无线电通信管理应用以及一个用于管 理那些可以连接到无线电通信模块的外围设备的应用(HWL)。根据 本发明,在主软件程序中包含的每一个所述应用都与一组第一级执行 函数相关联。所述无线电通信模块还托管并运行至少一个客户软件程 序,而所述程序则包含了至少一个与一组第一级源函数相关联的客户 应用。所述主软件程序和/或所述客户软件程序包括一个第一级接口应 用,它允许将与所述客户应用相关联的第一级源函数对接到与所述操 作系统管理应用、所述无线电通信管理应用以及外围设备管理应用中 的至少一个应用相关联的第一级执行函数。这样一来,所述至少一个 客户应用具有为主软件程序的至少某些功能所开放的通路。
因此,本发明的一般原理在于使用两个能够相互作用的软件程序 (主软件程序和客户软件程序)以及在嵌入的客户软件程序托管(至 少)一个客户应用。这样一来,主软件程序不再包含专有的主应用。 换句话说,针对无线电通信模块制造商开发的无线电通信模块(上述 “OS”、“第三层GSM”以及“HWL”程序块)所进行的访问将会向客户 开发的客户应用开放。在说明书的剩余部分,有时也将这些底层系列 称为“开放堆栈”。
在这里可以将根据本发明的新技术视为是一个允许客户开发自 己的客户应用并且将所述应用下载到无线电通信模块中的软件平台。
客户能在不依赖于无线电通信模块制造商的情况下开发自己的 应用,然后嵌入所述应用并且通过无线电通信模块来运行该应用。同 样,客户可以在不需要无线电通信模块制造商介入的情况下修改或开 发它们的客户应用。
这样一来,我们可以依照本发明并借助于第一级接口应用来区分 以下三种接口类型:
-将一个或多个客户应用与“OS”和“第三层GSM”程序块相对接;
-将一个或多个客户应用与“OS”和“HWL”程序块相对接;
-将一个或多个客户应用与“OS”、“第三层GSM”以及“HWL”程 序块相对接。
需要注意的是:所述一个或多个客户应用能以多种形式包含在客 户软件程序中:
-在客户软件程序中包含了一个以二进制文件为形式的单独的客 户应用。在这种情况下,第一级接口应用包含在这个二进制文件(假 设已经结合包含了第一级接口应用的目标文件而对包含客户应用的目 标文件进行了链接编辑)或是另一个二进制文件中;
-或者在客户软件程序中包含了以相同的二进制文件为形式的多 个客户应用。在这种情况下,第一级接口应用处于包含在这个二进制 文件(假设已经结合包含第一级接口应用的目标文件而对包含多个客 户应用的目标文件进行了链接编辑)或是另一个二进制文件中;
-或者在客户软件程序中包含了以多个二进制文件为形式的多个 客户应用(每个二进制文件都包含了一个或多个客户应用)。在这种 情况下,第一级接口应用包含在其中一个二进制文件(对相关的二进 制文件来说,假设已经结合包含第一级接口应用的目标文件而对包含 一个或多个客户应用的一个或多个目标文件进行了链接编辑)或是另 一个二进制文件中。
需要指出的是,在这里使用了“第一级”这个表述方式来表示包含 在处于一个或多个客户应用与主软件程序中包含的一个或多个应用之 间的联系之中的实体。特别地,这些“第一级实体”可以是与主软件程 序中包含的应用相关联的执行函数,也可以是与一个或多个客户应用 相关联的源函数,还可以是介于一个或多个客户应用与主软件程序中 包含的一个或多个应用之间的接口应用。
随后,使用的是一个“第二级”这个不同的表达,以便表示在涉及 无线电通信模块控制的本发明的某个特定实施例的环境中的两个客户 应用之间的联系中所包含的实体。特别地,这些“第二级实体”可以是 专用于控制命令(例如根据AT标准)的执行函数和源函数,也可以 是在其间进行对接的应用。
优选地,所述客户软件程序包括一个全局初始化客户应用以及执 行至少一个实时任务的至少一个客户任务应用。与全局初始化客户应 用相关联的第一级源函数组包括一个第一级全局初始化源函数,它为 主软件程序提供了允许所述程序初始化各个客户任务应用并且与之进 行交互的信息。
这样一来,在主软件程序希望运行全局初始化客户应用的时候, 它只需要知道能够运行全局初始化客户应用的第一级全局初始化源函 数就能够运行所述全局初始化客户应用。因此,所述程序不必了解用 于各个客户任务应用的对话点(第一级消息初始化和处理源函数)。 在下文中将会详细介绍这些对话点。
优选地,所述客户软件程序包括至少两个客户任务应用,其中每 一个应用都与一组第一级源函数相关联并且每一个应用都执行至少一 个不同的实时任务。所述主软件程序和/或所述客户软件程序包含在所 述客户任务应用之间共享计算资源的装置,由此允许进行多任务实时 操作。
非常有利的是,这组与各个客户任务应用相关联的第一级源函数 包含了一个第一级初始化源函数,由此允许初始化所述客户任务应用。 这个第一级初始化源函数由主软件程序调用一次,以便对涉及的客户 任务应用所执行的任务进行初始化。
优选地,由全局初始化源函数提供给主软件程序的所述信息包 括:
-将要初始化的客户任务应用的数目;
用于将要初始化的各个客户任务应用的相应的第一级初始化源 函数。
优选地,这组与每个客户任务应用相关联的第一级源函数包含接 收并处理来自主软件程序的消息的第一级源函数,其中所述第一级接 收和处理源函数的一个参数即为所述消息。
每次当主软件程序向相关客户任务应用发送信息的时候,将会调 用这个第一级消息接收和处理源函数。每个客户应用都拥有自己的第 一级消息接收和处理源函数。
优选地,由第一级全局初始化源函数提供给主软件程序的所述信 息还包括用于将要初始化的各个客户任务应用的第一级接收和处理源 函数。
这样一来,主软件程序与每一个客户应用都具有两个对话点(第 一级源函数),即第一级初始化源函数以及第一级接收和处理源函数。
在本发明的一个特定实施例中,这组与每个客户任务应用相关联 的第一级源函数包括一个预订(subscribe)由主软件程序管理的邮箱 服务的第一级源函数,由此允许所述客户任务应用为自身分配一个邮 箱,其中所述邮箱为所述应用所特有并且其中所述应用希望接收来自 至少一个预定信源的信息。
优选地,每个预定信息源都是一个分配给由主软件程序执行的至 少一个主任务的邮箱,并且包含了所述主任务希望与一个或多个其他 实体通信的信息。而主任务希望传递信息的其他的一个或多个实体即 为客户任务应用和/或其他主任务。
在本发明的一个有利的实施例中,所述客户软件程序至少包括:
-第一客户应用,所述应用实施执行控制命令的第一实时任务, 其中所述控制命令由至少一个客户控制应用发送到所述第一应用并且 归属于一组预定的控制命令,特别地,所述第一客户应用基于一组特 定于控制命令的第二级执行函数,其中每一个执行函数都允许执行至 少一个所述控制命令。
-一个第二客户应用,所述应用执行第二实时任务,以使所述第 二客户应用至少起到下列作用之一:
*客户控制应用,向第一客户应用发送控制命令并且从客户应用 中接收执行某些控制命令所产生的响应;
*客户监督应用,管理客户控制应用发送的控制命令的执行,其 中所述客户应用处于外部,它由与无线电通信模块接合的第三方设备 托管和运行;
*尤其基于一组第二级源函数的所述第二客户应用,所述第二级 源函数特定于控制命令并且每一个第二级源函数都允许发送或接收往 返于第一客户应用的控制命令或者对应于控制命令的响应。
-一个特定于控制命令并且允许对接所述第二级源和执行函数的 第二级接口应用,所述第二级接口应用自身基于所述第一级接口应用。
这样一来,本发明提出了一种处于无线电通信模块内部的新的软 件架构(向嵌入的客户软件程序开放底层),由此可以支持一种简单 廉价的新的无线电通信模块控制技术。
这个新的无线电通信模块控制技术是在无线电通信模块上托管 一个客户软件程序,所述程序包括:
-一个能够执行控制命令(例如AT命令)的第一客户应用。在实 践中,这个第一客户应用可以由无线电通信模块制造商提供;
-一个第二客户应用,所述应用控制和/或监督无线电通信模型, 以使第一客户应用执行命令。
如果第二客户应用控制无线电通信模块,则后者将会给出一个自 主和廉价的操作。实际上,所述无线电通信模块无须与第三方设备接 合,并且主软件程序和客户软件程序使用的是相同的资源(相同的处 理器和相同的存储器)。
如果第二客户应用监督无线电通信模块,那么后者对运行客户控 制软件程序的第三方设备而言并不仅限于起到从属的作用。实际上, 第二客户应用对第三方设备运行的(外部)客户控制软件程序所请求 的控制加以管理。需要指出的是,在这种情况下,嵌入的客户软件程 序是一个涉及现有技术结构的一个附加软件程序。然而,由于所述附 加软件程序与无线电通信模块托管的主软件程序使用的是相同的资源 (处理器和存储器),因此这种附加软件程序的成本将会很低。
优选地,为了允许第二客户应用起到客户控制应用的作用:
-第二客户应用包含向第一客户应用中包含的执行装置发送控制 命令的装置;
-第一客户应用包含将第一客户应用中包含的执行装置执行某些 控制命令所产生的响应发送到第二客户应用的装置;
-第二客户应用包含对第一客户应用发送的响应进行处理的装 置。
优选地,为了允许第二客户应用起到客户监督应用的作用:
-第一客户应用包含作为预置命令切换策略函数的命令切换装 置,以便将来自外部客户应用的控制命令发送到第二客户应用和/或发 送到第一客户应用中包含的执行装置;
-第二客户应用包含对所述命令切换装置切换的控制命令进行处 理的装置。
非常有利的是,第二客户应用包含在一组命令切换策略中选择所 述命令切换装置施加的命令切换策略的装置,由此分别实现以下操作:
-将来自外部客户应用的控制命令只发送到第一客户应用中包含 的执行装置;
-将来自外部客户应用的控制命令只发送到第二客户应用;
-将来自外部客户应用的控制命令既发送到第一客户应用又发送 到第二客户应用中包含的执行装置。
较为有利的是,所述命令处理装置为每个命令做出了至少一个决 定,所述决定归属于包含以下决定的群组:
-向第一客户应用中包含的执行装置发送控制命令,为此目的, 第二客户应用包含用于向执行装置发送控制命令的装置;
在没有执行命令的情况下,提供或不提供仅仅作为至少一条命令 相关信息的响应,为此目的,第二客户应用包含将响应经由第二客户 应用发送到外部客户应用的装置。
优选地,为了允许第二顾客应用发挥客户监督应用的作用:
-第一客户应用包含作为预置响应切换策略的一个函数的响应切 换装置,以便将第一客户应用中包含的执行装置执行某些控制命令所 产生的响应发送到第二客户应用和/或外部客户应用;
-第二客户应用则包含对所述响应切换装置切换的响应进行处理 的装置。
非常有利的是,第二客户应用包含在一组响应切换策略中选择由 所述响应切换装置施加的响应切换策略的装置,由此分别实现以下操 作:
-只将来自执行装置的响应发送到外部客户应用;
-只将来自执行装置的响应发送到第二客户应用;
-将来自执行装置的响应既发送到第二客户应用又发送到外部客 户应用。
优选地,所述第二级源函数组特别包含了一个对来自第一应用的 消息进行处理的函数,其中所述处理函数的一个参数即为所述消息。
优选地,所述控制命令组是一组标准的AT命令。由于AT命令 众所周知并且已被用于开发外部客户软件程序(第三方设备托管), 因此这种设定将会允许快速开发出第一和第二客户应用。此外,所述 设定简化了极大基于现有外部客户软件应用的第二客户应用的开发。
非常有利的是,除了标准的AT命令之外,所述控制命令组还包 括一个附加的AT命令,也就是所谓的加载命令,由此允许外部客户 应用将一个新的第二客户应用或是新的客户软件程序整体加载到无线 电通信模块中。
非常有利的是,除了标准的AT命令之外,所述控制命令组还包 括一个附加的AT命令,也就是所谓的禁用命令,由此允许外部客户 应用禁止第二客户应用。
在本发明的一个特定实施例中,所述第二客户应用包括一个主客 户子应用以及至少一个作为主客户子应用的从属应用的辅助客户子应 用,由所述第二客户应用执行的处理操作是在所述主客户子应用与所 述至少一个辅助客户子应用之间共享的。
因此,本发明的当前特定实施例是在前面提到的新的无线电通信 模块控制技术的环境中设定的。
在这种环境下,建议使用的不是第二“单个程序块”的客户应用, 而是一个包含了与一个或多个辅助客户子应用相结合的主客户子应用 的第二“分布(多个程序块)”客户应用。在运行和停止期间,每一个 辅助客户子应用都是对其调用的主客户子应用的一个从属子应用。但 是一旦进行了初始化,则所述辅助客户子应用可以在不依赖于主客户 子应用的情况下访问第一客户应用提供的所有执行函数(经由下文详 述的一种机制,所述机制预订了一种用于发送来自第一客户应用的消 息的服务)。
辅助客户子应用是可以由第三方开发人员(通常是无线电通信模 块制造商)提供给客户的“基本程序块”。由于客户只开发“主客户子应 用”,其中所述子应用通过调用一个或多个辅助客户子应用而局部缩小 了某些处理操作,因此可以减少客户的开发工作。
应该指出的是,如果客户希望能在其开发的不同主客户子应用中 调用所述辅助客户子应用,那么他自己也可以开发辅助客户应用。
优选地,所述第一级初始化源函数包含在这组与第二客户任务应 用相关联的第一级源函数中并且允许初始化所述主客户子应用。
优选地,主客户子应用与包括预订了用于发送来自第一客户应用 的消息的服务的第二级源函数的第二级源函数组相关联。在预订时, 主客户子应用将第二级消息处理源函数的地址发送到第一客户应用, 其中主客户子应用希望从第一客户应用接收消息。
这种机制预订了用于发送来自第一客户应用的消息的服务,它允 许主客户子应用调用第一客户应用提供的所有执行函数,同时能在执 行这些函数的环境中接收第一客户应用发送的消息。
优选地,辅助客户子应用与第二级源函数组相关联,所述源函数 包含对主客户子应用所调用的辅助客户子应用进行初始化的第二级源 函数。
这样一来,主客户子应用只需要了解这个对话点(“第二级辅助 客户子应用初始化源函数”),以及下文介绍的其对应物(第二级辅助 客户子应用停止源函数)。因此,这种方案是一种解决主客户子应用 与辅助客户子应用之间对话问题的简单有效的解决方案。实际上,辅 助客户子应用的开发人员不需要编写在数量上与客户希望引入主客户 子应用的版本相同的版本。他仅仅需要将上述这两个对话点指示给所 述应用。
需要指出的是,在这里应该阻止两个辅助客户子应用的开发人员 使用同一对话点。为此目的,举例来说,可以规定每个开发人员都要 从一个中心服务为其希望开发的每个辅助客户子应用请求一个唯一标 识符。
此外非常特别的是,主客户子应用与辅助客户子应用之间的对话 机制允许辅助客户子应用将它的一个或多个任务的执行结果发送到主 客户子应用。所述对话可以既是双向的,也可以是单向的。
优选地,与辅助客户子应用相关联的第二级函数组包含一个第二 级源函数,所述源函数预订一个用于发送来自第一客户应用的消息的 服务。在预订时,辅助客户子应用将处理消息的第二级源函数的地址 发送到第一客户应用,其中所述辅助客户子应用希望接收来自第一客 户应用的消息。
优选地,所述第二级辅助客户子应用初始化源函数包括至少一个 允许在主客户子应用与辅助客户子应用之间执行对话机制的参数。
优选地,与辅助客户子应用相关联的第二级源函数组包含一个由 主客户子应用调用的第二级辅助客户子应用停止源函数。
优选地,与辅助客户子应用相关联的第二级源函数组包含一个第 二级源函数,所述源函数退订所述发送来自第一客户应用的消息的服 务。
本发明还涉及一种处理,用于开放对于主无线电通信模块软件程 序中的至少某些功能的访问。假设无线电通信模块类型是托管并运行 主软件程序,其中所述程序包括操作系统(OS)管理应用,无线电通 信(第三层GSM)管理应用以及一个用于对那些可以连接到无线电通 信模块的外围设备进行管理的应用(HWL)。根据本发明,主软件程 序中包含的每个所述应用都与一个第一级执行函数组相关联。此外, 无线电通信模块还托管并运行与一组第一级源函数相关联的至少一个 客户应用中包含的至少一个客户软件程序。主软件程序和/或所述客户 软件程序包括第一级接口应用,所述接口应用允许将关联于所述客户 应用的第一级源函数对接到关联于操作系统管理应用以及至少一个所 述无线电通信管理与外围设备管理应用的第一级执行函数。
附图说明
本发明的其他特征和优点将通过阅读以下作为实施例而不是限 制给出的本发明优选实施例和附图的描述而得以显示,其中:
图1显示的是根据本发明的无线电通信模块的特定实施例的简 图,其中显示的是包含底层的主软件程序以及包含第一级接口应用与 多个客户应用的客户软件程序;
图2显示的是一种用于运行客户软件程序中包含的客户应用的机 制;
图3显示的是一种用于客户软件程序中包含的两个客户任务应用 之间对话的机制;
图4显示的是一种用于在客户应用内部调用涉及“HWL”程序块 的第一级源函数的机制;
图5显示的是一种用于在客户应用内部调用涉及“第三层GSM” 程序块的第一级源函数的机制;
图6显示的是一种用于在客户应用内部调用涉及“HWL”与“第三 层GSM”程序块的第一级源函数的机制;
图7显示的是一种客户应用预订主软件程序所管理的邮箱服务的 机制;
图8显示的是一种在无线电通信模块内部并由根据本发明的软件 架构所支持的新的无线电通信模块控制技术。

具体实施方式

因此,本发明涉及一种无线电通信模块,所述模块使用同一组资 源(处理器和存储器)来托管并运行一个主软件程序以及(至少)一 个嵌入的客户软件程序。
如图1所示,主软件程序3通常包括:
一个“HWL”程序块3a,它是一个用于管理可以连接到无线电通 信模块的外围设备的应用;
一个“OS”程序块3b,它是一个对系统方面进行管理的操作系统 管理应用,例如任务管理器、存储管理器、时延管理器等等。
一个“第三层GSM”程序块,它是一个对网络方面进行管理的无 线电通信管理应用,例如输出和输入呼叫管理、短文本消息的发送和 接收管理等等。
“HWL”、“OS”以及“第三层GSM”这三个程序块中的每一个程序 块都与一组第一级执行函数相关联。
在图1所示的特定实施例中,嵌入的客户软件程序6(专用于本 发明的概念)包括:
三个客户应用,即:客户初始化应用6a以及两个客户任务应用1 6b和26c,这些客户应用中的每一个应用都与一组第一级源函数相关 联;
第一级接口应用6d,所述应用允许将(与客户应用6a,6b和6c 相关联的)第一级源函数对接到(关联于“HWL”3a、“OS”3b以及“第 三层GSM”3c程序块)第一级执行函数。
这样一来,客户应用6a、6b和6c经由第一级接口应用6d而与 “HWL”3a、“OS”3b以及“第三层GSM”3c程序块进行通信。为此目 的,每一个部件都包含了一个“API”(应用程序编程接口)。需要记 住的是,所述“API”接口描述的是涉及某个函数组的通信规则。
每个客户应用6a、6b和6c都包含一个“应用强制API”程序块, 由此形成了必须在客户应用中指定的接口描述函数。很明显,不同客 户应用的“应用强制API”程序块可以不完全一致。
第一级接口应用(或应用接口库)6d包括以下四个程序块:
-一个“HWL API”程序块,它形成的是一个描述“HWL”程序块 3a的通路的接口,这个接口描述的是处于第一级应用接口库中的函 数;
-一个“OSA PI”程序块,它形成的是一个描述“OS”程序块3b的 通路的接口,这个接口描述的是处于第一级应用接口库中的函数;
-一个“第三层GSM API”程序块,它形成的是一个描述“第三层 GSM”程序块3c的通路的接口,这个接口描述的是处于第一级应用接 口库中的函数;
-一个“标准的API”程序块,它形成的是一个描述标准函数的通 路的接口,这个接口描述的是处于第一级应用接口库中的函数。
在主软件程序端3:
-“HWL”程序块3a包括一个“HWL API”程序块,所述程序块即 为第一级接口应用6d中包含的具有相同名称的程序块的对应物;
-“OS”程序块3b包括一个“OS API”程序块,所述程序块即为第 一级接口应用6d中包含的具有相同名称的程序块的对应物;
-“第三层GSM”程序块3c包括一个“第三层GSM API”程序块, 所述程序块即为第一级接口应用6d中包含的具有相同名称的程序块 的对应物。
举例来说,第一级接口应用6d是一个以(已编译)库的形式给 出的二进制文件。
举例来说,主软件程序3是一个二进制文件,它是通过在多个目 标文件之间进行链接编辑而产生的,特别地,所述目标文件自身是通 过编译那些包含程序块“HWL”3a、“OS”3b以及“第三层GSM”3c的 源文件而产生的。
只要涉及客户应用6a、6b和6c,则可以想到以下变体:
-在客户软件程序6中包含以相同的二进制文件为形式的客户应 用,其中所述二进制文件是通过链接编辑特别涉及包含这些客户应用 的目标文件而产生的;
-或者在客户软件程序6中包含以若干个二进制文件为形式的多 个客户应用(每个二进制文件都包括一个或多个客户应用)。
嵌入的客户软件程序6和主软件程序3各自使用了同一随机存取 存储器(RAM)的不同部分。客户则规定了恰当运行嵌入的客户软件 程序所需要的存储堆栈的大小。如果这两个软件程序中的一个程序尝 试访问为另一个软件程序所保留的部分随机存取存储器,则将会导致 停止操作。
现在相对图2来介绍一种运行客户软件程序6中包含的客户应用 6a、6b和6c的机制。
无线电通信模块1中包含的部件与上文中相对图2给出的部件则 保持相同的附图标记。
在图2中,所述机制中的每个步骤都是用一个圆圈来显示的,在 这个圆圈中写下了相关步骤的编号。对本发明而言,在以下的图中也 采用了相同的约定(在说明书的剩余部分将会对其进行详细描述)。
这种用于客户应用6a、6b和6c的运行机制的操作可以如下概括:
—步骤“1”:主软件程序3检测是否存在客户初始化应用6a并且 借助OS管理器3b(用于上文介绍的“OS程序块”的另一个名称)来 运行所述应用;—步骤“2”:借助第一级接口应用6d来运行客户初始 化应用6a。后者在客户初始化应用6a内部调用一个(第一级)全局 初始化源函数。在说明书的剩余部分详细介绍了这个源函数 (“wm_apmGloblInit_level1()”);—步骤“3”:源函数 “wm_apmGlobalInit_level1()”在客户初始化应用6a内部执行一个全 局初始化,所述全局初始化是为主软件程序3提供允许其初始化各个 客户任务应用6b和6c并且与这些应用进行交互的信息。举例来说, 这个信息如下所示:
-包含在嵌入的客户软件程序中的客户任务应用数目(在上述实 例中是两个),
-与其中每个客户任务应用相关联的对话函数。在说明书的剩余 部分详细介绍了这些对话源函数(“AppliInit_nx_level1”和 “AppliParser_nx_level1”);—步骤“4”:在主软件程序3的内部,OS 管理器3b通过调用相应的初始化函数(“AppliInit1_level1”以及 “AppliInit2_level1”)来初始化客户任务应用6b和6c。
现在相对图3来介绍一种用于客户软件程序6中包含的两个客户 任务应用6b与6c之间的对话的机制。
这种机制的操作可以概括如下:
—步骤“1”:主软件程序3借助第一级接口应用6d来调用源函数 “AppliInit1_level1()”,从而具有经过初始化的客户应用1。这个源函 数则通过调用一个函数(“wm_osStartTimer_level()”)来触发主软件 程序中的一个时延;—步骤“2”:在主软件程序3内部,接口应用6d 调用一个或多个恰当的执行函数;—步骤“3”:在主软件程序3内部, OS管理器3b通过接口应用6d而向设定时延的客户任务应用1发出 通知;—步骤“4”:在时延终止时,OS管理器3b通过接口应用6d向 设定时延的客户任务应用1发出通知;—步骤“5”:经由接口应用6d 来执行与客户任务应用1的对话,其中所述接口应用6d在客户任务应 用1内部调用先前所述的源函数“AppliParser1_level1()”;—步骤“6”: 在客户任务应用1内部,源函数“AppliParser1_level1()”请求向客户任 务应用2发送一个信息,以便调用(下文中详细介绍的)源函数 “wm_osSendMsg_level1()”;—步骤“7”:接口应用6d在主软件程序3 内部调用一个或多个恰当的执行函数;—步骤“8”:在主软件程序3 内部,OS管理器3b经由接口应用6d来执行所请求的向客户任务应 用2发送消息的处理;—步骤“9”:通过接口应用6d来实施与客户任 务应用2的对话,其中所述接口应用6d在客户任务应用2内部调用上 述源函数″AppliParser2_level1()″;—步骤“10”:在客户任务应用2内 部,源函数“AppliParser2_level1()”请求对接收到的消息进行处理。
现在相对图4来介绍一种用于在客户应用内部调用涉及“HWL” 程序块的第一级源函数的机制。
假设客户任务应用1设定了时延并且正在等待时延终止。
在这个实例中是由客户任务应用,来对HWL管理器3a进行调 用的。很明显,如果呼叫是由嵌入的客户软件程序中的任何其他客户 任务应用做出的,那么这个实例仍旧是有效的。
这种机制的操作可以概括如下:
—步骤“1”:在时延终止时,OS管理器3b通过接口应用6d来向 设定时延的客户任务应用1发出通知;—步骤“2”:借助于接口应用 6d来执行与客户任务应用1的对话,其中所述接口应用6d在客户任 务应用1内部调用源函数“AppliParser1_level1()”;—步骤“3”:举例 来说,在客户任务应用1内部,源函数“AppliParser1l_level1()”希望 读取Eeprom存储器中保存的一个值。为此目的,它将会调用函数 “wm_hwlE2pRead_level1()”;—步骤“4”:在主软件程序3内部,接 口应用6d调用HWL管理器3a中的一个或多个适当的执行函数;— 步骤“5”:在主软件程序3内部,HWL管理器3a执行所请求的读取 Eeprom存储器中保存的一个值的处理。然后,客户任务应用1经由 接口应用6d而将所读取的值返回给客户任务应用1。
很明显,上述“wm_hwlE2pRead_level1()”仅仅是一个与“HWL” 程序块有关的多个第一级源函数中的一个实例。
现在相对图5来介绍一种用于在客户应用内部调用一个涉及“第 三层GSM程序块”的第一级源函数的机制。
在以上评论图4的过程中介绍的假设和观测同样适用于当前的图 5。
这种机制的操作可以概括如下:
—步骤“1”:在时延终止时,OS管理器3b通过接口应用6d来向 设定时延的客户任务应用1发出通知;—步骤“2”:借助于接口应用6d 来执行与客户任务应用1的对话,其中所述接口应用在客户任务应用 1内部调用源函数“AppliParser1_level1()”;—步骤“3”:举例来说, 在客户任务应用1内部,源函数“AppliParser1_level1()”希望向网络发 送一个消息。为此目的,它调用函数“wm_osRtkSend_level1()”;—步 骤“4”:接口应用6d在主软件程序3内部调用“第三层GSM”管理器 3c中的一个或多个恰当的执行函数;—步骤“5”:在主软件程序3内 部,“第三层GSM”管理器3c执行所请求的处理;—步骤“6”:在经过 处理(向网络发送一个消息)并从网络得到一个响应之后,“第三层 GSM”管理器3c通过接口应用6d来向客户任务应用1发出通知;— 步骤“7”:借助于接口应用6d来实施与客户任务应用1的对话,其中 所述接口应用6d在客户任务应用1内部调用上述源函数 “AppliParser1_level1()”;—步骤“8”:在客户任务应用1内部,源函 数“AppliParser1_level1()”对接收到的消息进行处理。
很明显,上述“wm_osRtkSend_level1()”仅仅是与“第三层GSM” 程序块有关的多个第一级源函数中的一个实例。
现在相对图6来介绍一种用于在客户应用内部调用涉及“HWL” 与“第三层GSM”程序块的第一级源函数的机制。
在这个实例中,假设客户任务应用1希望读取Eeprom存储器中 保存的一个值,因而向网络发送一个消息。为此目的,所述应用将会 进行如下交互:
-与“HWL”程序块3a进行交互(与先前所述的图4中的步骤“1” 到“5”相对应的步骤“1”到“5”),
-然后与“第三层GSM”程序块3c进行交互(与先前所述的步骤 “3”到“5”相对应的步骤“3b”、“6”和“7”)。
现在相对图7来介绍一种客户应用预订主软件程序所管理的邮箱 服务的机制。
这种机制的操作可以概括如下:
—步骤“1”:在时延终止时,OS管理器3b通过接口应用6d来向 设定定时器的客户任务应用1发出通知;—步骤“2”:经由接口应用 6d来执行与客户任务应用1的对话,其中所述接口应用在客户任务应 用1内部调用源函数“AppliParser1_level1()”;—步骤“3”:举例来说, 在客户任务应用1内部,源函数“AppliParser1_level1()”希望请求预 订一个与电池(例如负荷电平指示)有关的信息。为此目的,所述函 数调用一个预订主软件程序所管理的邮箱服务管理的源函数 “wm_MbxSubscribe()”,以便为自身分配一个专用邮箱,并且所述应 用希望在所述邮箱中接收来自至少一个预定信源(在这个实例中是“电 池”任务)的信息。在下文中详细介绍了这个源函数;—步骤4:接口 应用6d在主软件程序3内部调用“第三层GSM管理器3c”中的一个或 多个恰当的执行函数;—步骤5:在主软件程序3内部,“OS”管理器 3b执行所请求的处理,在这个实例中,所述处理是将客户任务应用1 保存为电池信息的收件人;—步骤6:在电池信息可用时,HWL管理 器3a将所述信息经由接口应用6d发送到客户任务应用1。为此目的, HWL管理器3a内部咨询OS管理器3b,以便找出这个信息定址的一 个或多个邮箱;—步骤7:经由接口应用6d来实施与客户任务应用1 的对话,其中在客户任务应用1内部,所述接口应用6d调用先前所述 的源函数“AppliParser1_level1()”;—步骤8:在客户任务应用1内部, 源函数“AppliParser1_level1()”对接收到的电池信息进行处理。
应该注意的是,“OS”程序块3b包括一个任务管理器。后者对主 软件程序3提供的任务以及客户软件程序6提供的任务进行管理。每 个任务都与一个邮箱相关联,其中将所述邮箱比作该任务产生的信息 源。这样一来,每次当一个任务希望与另一个任务进行通信的时候, 它都会使用“OS”程序块任务管理器。在主软件程序3中,某些任务具 有传递到嵌入的客户软件程序6的信息。后者能够确定它希望自己的 哪个任务应用接收这个信息。这样一来,在上述实例中,主软件程序 3的“电池”任务具有涉及电池管理的信息,并且在这里由客户任务应 用1对所述信息进行管理(由此希望在其邮箱中接收所述信息)。
现在相对图8来介绍无线电通信模块内部由依照本发明的软件架 构所支持的新的无线电通信模块控制技术。
以上已经相对图1到7介绍了依照本发明的无线电通信模块的软 件架构的一个特定实施例。在这个特定实施例中,主软件程序3包括 “HWL”3a、“OS”3b以及“第三层GSM”3c程序块,并且嵌入的客户 软件程序6包括一个客户初始化应用6a、两个客户任务应用(1)6b 和(2)6c以及一个第一级接口应用6d。
在说明书的剩余部分,假设控制命令是AT命令。有关AT命令 的更多细节,一方面可以参考ETSI标准“GSM07.05”以及 “GSM07.07”,另一方面也可以参考ITU-T的V25ter建议,这些文献 在此引入作为参考。
但是很明显,本发明并不局限于这类控制命令。
为了提出一种新的无线电通信模块控制技术,在这里规定:
-客户任务应用1实施的是执行AT命令的第一个实时任务。后者 则是由(至少)一个客户控制应用发送到客户任务应用1的。
-客户任务应用2执行的是一个使之能够至少发挥以下两个应用 的作用的第二实时任务:
*向客户任务应用1发送AT命令并从客户任务应用1那里接收 通过执行某些AT命令而产生的响应的客户控制应用;
*对客户控制应用发送的AT命令的执行进行管理的客户监督应 用,也就是由与无线电通信模块接合的第三方设备托管和执行的所谓 的外部客户应用。
特别地,客户任务应用1基于一组第二级执行函数,这些函数特 定于AT命令,其中每一个函数都允许执行至少一个AT命令。
特别地,客户任务应用2基于一组第二级源函数,所述函数特定 于AT命令,其中每一个函数都允许发送或接收往返于客户任务应用 1的AT命令或是相对于AT命令的响应。
此外还提供特定于AT命令的第二级接口应用6e。它允许在第二 级源函数与执行函数之间进行对接。这个第二级接口自身则基于第一 级接口应用6d。
在这里,对以下函数组加以区分是非常重要的:
-专用于AT命令并在客户任务应用1与2之间的联系中使用的第 二级源函数和执行函数的组;
-在以上相对图1到7以及结合附录1所介绍的第一级源函数和 执行函数的组,这些函数在各个客户任务应用(1或2)以及主软件程 序3的“HWL”、“OS”和“第三层GSM”程序块之间的联系中使用。
如果客户任务应用2发挥客户控制应用的作用,则控制技术的操 作可以概括如下:
—步骤“1”:客户任务应用2调用源函数 (wm_atSendCommand_level2),以便向客户任务应用1发送一个或 多个AT命令。在说明书的剩余部分对这个源函数进行了详细介绍; —步骤“2”:在客户任务应用1内部,第二级接口应用调用一个或多个 恰当的执行函数。—步骤“3”:客户任务应用1执行一个或多个AT命 令;—步骤“4”:在执行了命令之后,客户任务应用1向客户任务应用 2发送一个或多个AT响应(如果在此方向上已经参数化了先前所述 的发送命令);—步骤“5”:经由第二级接口应用发送这个(或者这些) 响应,其中所述接口应用在客户任务应用2内部调用一个对来自客户 任务应用1消息进行处理的源函数(“wm_apmAppliParser_level2”)。 这个处理源函数的一个参数即为包含先前所述的一个或多个响应的消 息。在说明书的剩余部分对这个源函数进行了详细的介绍;—步骤6: 在客户任务应用2内部,处理源函数对所述响应进行处理。
现在将对发挥了客户监视应用的作用的客户任务应用2进行详细 描述。
在这个第二情况中,无线电通信模块并不是自主的(与第一种情 况不同),而是经由例如一条串行链路受控于与之接合的第三方设备。 由第三方设备托管的外部客户应用向无线电通信模块发送AT命令, 以便由后者执行这些命令。
在这个第二情况中,对外部客户应用来说,客户任务应用2是以 一种透明方式来监督客户任务应用1执行(或不执行)AT命令的。
客户任务应用2(监督应用)能够在无线电通信模块内部确定实 施方式,特别是:
-用于切换和处理外部客户应用发送的AT命令的机制。举例来 说,在这里提出了三种用于执行这个机制的变体,根据这些变体,客 户任务应用1可以将其接收的AT命令只发送到客户任务应用1中包 含的执行装置(第一种变体),也可以将所述命令只发送到客户任务 应用2(第二变体),还可以同时向上述二者发送所述命令(第三种 变体);
-用于对客户任务应用1中包含的执行装置执行AT命令所产生的 AT响应进行切换和处理的机制。例如,在这里提出了三种用于执行 这个机制的变体,由此客户任务应用1产生的AT响应分别是只发送 到外部客户应用(第一种变体),或者只发送到客户任务应用2(第 二种变体),以及同时发送到这二者(第三种变体)。
应该指出的是,前述两种机制中的每一种机制的第一变体(分别 涉及AT命令和AT响应)都意味着能在一定次数将客户任务应用2 确定为是完全被动的。
现在对允许客户任务应用2对来自外部客户应用的AT命令进行 过滤的AT命令切换和处理机制的第二变体进行介绍。
AT命令切换和处理机制的第二变体的操作可以概括成两个连续 阶段,即:
-一个由外部客户应用选择(第二)AT命令切换策略,根据所述 策略而将AT命令仅仅重传到客户任务应用2的在先阶段,以及
-一个根据所选择的(第二)命令切换策略来处理外部客户应用 发送的AT命令的阶段。
第二AT命令切换策略的在先选择阶段包括以下步骤:
—步骤“1”:客户任务应用2调用一个将客户任务应用1预订到 AT命令切换服务的源函数 (“wm_atCmdPreParserSubscribe_level2”),其中这个预订函数的一 个参数表示选择第二AT命令切换策略。在说明书的剩余部分详细介 绍了这个源函数;—步骤“2:第二级接口应用在客户任务应用1内部 调用一个或多个恰当的执行函数,也就是所谓的—AT命令切换服务 的函数。—步骤“3”:客户任务应用1借助于第二级接口应用来设定客 户任务应用2请求的预订。
在说明书剩余部分假设:在客户任务应用1内部注册预订AT命 令切换服务的一个或多个函数包含在AT命令执行装置中,但这仅仅 是出于说明的目的。此外,在说明书的剩余部分还假设在客户任务应 用1内部,命令切换装置(以下论述)包含在AT命令执行装置中, 但这也是仅仅出于说明的目的。
AT命令处理阶段包括以下步骤:
—步骤“4”:外部客户应用向客户任务应用1发送一个AT命令; —步骤“5”:串行链路向客户任务应用1含有的执行装置包括并依照 (在先前阶段中选择的)第二AT命令切换策略操作的命令切换装置 发送AT命令;—步骤“6”:在执行装置并未执行所述命令的情况下, 只将AT命令重传到客户任务应用2;—步骤“7”:由第二级接口应用 发送AT命令,其中所述应用在客户任务应用2内部调用一个对来自 客户任务应用1的消息进行处理的源函数 (“wm_apmAppliParser_level2”),特别地,所述AT命令在这里是 由一个包含了AT命令并且将其指示为一个“原始”AT命令的消息来 参数化。在说明书的剩余部分对这个源函数进行了详细介绍;—步骤 “8”:在客户任务应用2内部,处理源函数对所述AT命令进行处理。
举例来说,这个处理操作将AT命令回送到客户任务应用1中包 含的执行装置(根据与上述第一种情况相对应的机制)。此外它还可 以包括客户任务应用2本身任意规定的一个响应,而不需要执行AT 命令。在这种情况下,举例来说,客户任务应用2顾及了至少一条与 相关AT命令有关的信息(命令类型、一个或多个参数性质等等)。 一般来说,应该理解的是,无论执行何种处理操作,客户任务应用2 都会“过滤”AT命令。
现在将对允许客户任务应用2对来自外部客户应用的AT命令进 行侦查的AT命令切换和处理机制的第三种变体进行介绍。
AT命令切换和处理机制的第三种变体的操作也可以概括成两个 连续阶段,即:
-一个由外部客户应用选择(第三)AT命令切换策略,并根据所 述策略不但将AT命令重传到客户任务应用2,而且还将其重传到了 客户任务应用1中包含的执行装置的在先阶段,以及
-一个根据所选择的(第三)命令切换策略来处理外部客户应用 发送的AT命令的阶段。
这个第三种变体与第二种变体的操作的不同之处主要在于:
-在先前阶段的步骤“1”,客户任务应用2选择第三(而不是第二) AT命令切换策略;
-在处理阶段的步骤“6”,将AT命令传送到执行转置,并且将这 个AT命令的一个拷贝传送到客户任务应用2;
-在处理阶段的步骤“8”,在客户任务应用2内部,处理源函数对 AT命令的拷贝进行处理;
-处理阶段还包括一个步骤“7”,在此期间,客户任务应用1中包 含的执行装置将会执行AT命令。
现在对允许客户任务应用2过滤用于客户任务应用1的AT响应 的AT响应切换和处理机制的第二种变体进行介绍。
AT响应切换和处理机制的这个第二种变体的操作也概括为两个 连续阶段,即:
-一个由外部客户应用选择(第二)AT响应切换策略,并根据所 述策略而将客户任务应用1产生的AT响应只发送到客户任务应用2 的在先阶段;
-一个根据所选(第二)响应切换策略而对客户任务应用1产生 的AT响应进行处理的阶段。
第二AT响应切换策略的在先选择阶段包括以下步骤:
—步骤“1”:客户任务应用2调用一个将客户任务应用1预订到 AT响应切换服务的源函数(“wm_atRspPreParserSubscribe_level2”), 其中所述预订函数的一个参数表示选择了第二AT响应切换策略。在 说明书的剩余部分对这个源函数进行了详细的介绍;—步骤“2”:第二 级接口应用6e在客户任务应用1的内部调用一个或多个恰当的执行函 数,所述执行函数也称为一个或多个向AT响应切换服务注册预订的 函数。—步骤“3”:客户任务应用1借助于第二级接口应用来设置客户 任务应用2所请求的预订。
在说明书的剩余部分假设:在客户任务应用1内部,向AT响应 切换服务注册预订的一个或多个函数包含在AT命令执行装置内部, 但这仅仅是出于说明的目的。同样,在说明书的剩余部分还假设:在 客户任务应用1内部,响应切换装置(下文描述)包含在AT命令执 行装置内部,但这也是仅仅出于说明的目的。
AT响应处理阶段包括以下步骤:
—步骤“4”:外部客户应用向客户任务应用1发送一个AT命令; —步骤“5”:串行链路向客户任务应用1中包含的执行装置发送AT命 令;—步骤“6”:执行装置执行AT命令并产生一个AT响应;—步骤 “7”:包含在执行装置中并根据(在先前阶段选择的)第二AT响应切 换策略来进行操作的响应切换装置向客户任务应用2发送AT响应; —步骤“8”:第二级接口应用发送AT响应,其中所述接口应用在客户 任务应用2内部调用一个对来自客户任务应用1的消息进行处理的源 函数(“wm_apmAppliParser_level2”),其中所述AT命令在这里是 由包含了AT响应并指示为“初始”AT响应的消息来参数化;—步骤 “9”:在客户任务应用2内部,处理源函数对AT响应进行处理。在这 里也可以对客户任务应用2所进行的AT响应的“过滤”进行论述。
现在对允许客户任务应用2侦查用于客户任务应用1的AT响应 的AT响应切换和处理机制的第三种变体进行介绍。
AT响应切换和处理机制的第三种变体的操作也是在两个连续阶 段概括的,即:
-一个由外部客户应用选择(第三)AT响应切换策略并且根据所 属策略而将AT响应重传到客户任务应用1和客户任务应用2的在先 阶段,以及
-一个根据所选(第三)响应切换策略而对客户任务应用1产生 的AT响应进行处理的阶段。
这个第三种变体的操作与第二种变体的不同之处主要在于:
-在在先阶段的步骤“1”中,客户任务应用2选择第三(而不是第 二)AT响应切换策略;
-在处理阶段的步骤“7”中,将AT响应传送到外部客户应用,并 且将这个AT响应的一个拷贝传送到客户任务应用2;
-在处理阶段的步骤“9”,在客户任务应用2内部,处理源函数对 AT响应的一个拷贝进行处理;
-所述处理阶段还包括一个步骤“8”,在此期间通过串行链路来发 送响应,以及一个步骤“9”,在此期间,外部客户应用接收并处理响应。
在根据本发明(以上描述的一个特定实施例)的新的无线电通信 模块控制技术中,客户任务应用26c并不是“单独的程序块”,而是“分 布式的”(“多个程序块”)。它包括一个与一个或多个辅助客户子应用 8相结合的主客户子应用7。在运行和停止期间,每一个辅助客户子应 用8都是请求所述应用的主客户子应用7的一个从属子应用。但是一 旦进行了初始化,则辅助客户应用8可以在不依赖于主客户子应用7 的情况下(经由以下详细描述的一种用于对来自客户任务应用1的消 息进行发送的服务进行预订的机制)访问客户任务子应用1提供的全 部执行函数。
每个辅助客户子应用都是一个能够由第三方开发人员(通常是无 线电通信模块制造商)提供给客户的“基本程序块”。这样一来,由于 客户只需要开发主客户子应用,而所述主客户子应用通过使用一个或 多个辅助客户子应用而局部缩小了某些处理,因此客户的开发工作将 会减少。
应该指出的是,如果客户希望能在他开发的不同的主客户子应用 中调用辅助客户子应用,那么客户自己也可以开发辅助客户子应用。
以下相继介绍若干种机制在根据本发明的新的无线电通信模块 控制技术的前述变体的环境中的实施方式。
首先介绍的是一种运行主客户子应用7并且将其预订成一种发送 来自客户任务应用1的消息的服务的机制。这个机制的操作可以概括 如下:
—步骤“1”:客户任务应用1检测是否存在主客户应用并且运行 所述应用;—步骤“2”:经由第二级接口应用来运行主客户子应用,其 中所述接口应用在主客户子应用内部调用一个主客户子应用初始化源 函数。在说明书的剩余部分对这个源函数 (“wm_apmAppliInit2_level1”)进行了详细介绍;—步骤“3”:在主 客户子应用内部,源函数(“wm_apmAppliInit2_level1”)初始化主客 户子应用。如接下来的步骤(“4”到“6”)中详细说明的那样,这个初 始化主要是为客户任务应用1给出允许主客户子应用从客户任务应用 1接收消息的源函数(例如“wm_apmAppliParse_level2”)的地址; —步骤“4”:主客户子应用调用一个对用于发送来自客户任务应用1 的服务进行预订的源函数(“wm_osMsgParserSubscribe_andlevel2”)。 在说明书的剩余部分对这个源函数进行了详细的介绍;—步骤“5”:第 二级接口应用在客户任务应用1内部调用一个或多个恰当的执行函 数,所述执行函数也称为注册预订(或注册)发送用于主客户子应用 的消息的服务的函数;—步骤“6”:客户任务应用1经由第二级接口应 用来设置主客户子应用所请求的预订。
根据一种变体,辅助客户子应用1在其提出要求的时候调用源函 数“wm_osMsgParserSubscribe_level2”(与初始化源函数的执行无 关)。
现在介绍一种运行辅助客户子应用8并将其预订成一种发送来自 客户任务应用1的消息的服务。
这个机制的操作可以概括如下:
—步骤“1”:当接收到一个在其源函数 “wm_apmAppliParser_level2()”中的消息之后,主客户子应用调用辅 助客户子应用的一个源函数,也就是辅助客户应用8的初始化源函数 (“wm_app2Pipe_level2(init)”)。在说明书的剩余部分对这个源函数 (必须为主客户子应用所知)进行了详细介绍;-步骤“2”:在辅助客 户子应用内部,源函数(“wm_app2Pipe_level2(init)”)初始化辅助客 户子应用。如接下来的步骤(“4”到“6”)中详细说明的那样,这个初 始化主要是为客户任务应用1给出允许辅助客户子应用从客户任务应 用1接收消息的源函数(“wm_app2MsgParser_level2”)的地址;— 步骤“3”:辅助客户子应用调用一个对发送来自客户任务应用1的服务 进行预订的源函数(“wm_osMsgParserSubscribe_level2”)。在说明 书的剩余部分对这个源函数进行了详细介绍;—步骤“4”:第二级接口 应用在客户任务应用1内部调用一个或多个恰当的执行函数,所述执 行函数也称为注册预订(或注册)一个发送用于辅助客户子应用的消 息的服务的函数;—步骤“5”:客户任务应用1经由第二级接口应用 6e来设置辅助客户子应用8所请求的预订。
在运行了辅助客户子应用8之后,相对主客户子应用7而言,所 述辅助客户子应用8以一种自主方式来执行它的函数(处理操作或任 务组)。如下文中详细说明的那样,为此目的,所述应用具有由客户 任务应用1提供的受其支配的执行函数组。
根据一种变体,辅助客户子应用8在其如此希望的时候将会调用 源函数“wm_osMsgParserSubscribe_level2”(与辅助客户应用的初始 化源函数的执行无关)。
应该注意的是,辅助客户子应用的初始化源函数可以包括至少一 个允许在主客户子应用与辅助客户子应用之间实施对话机制的参数。 在说明书的剩余部分对本发明的这个特征进行了详细的描述。
现在介绍一种停止辅助客户子应用8并且从一种用于发送来自客 户任务应用1的消息的服务种退订所述应用的机制。
这个机制的操作可以概括如下:
—步骤“1”:在接收到一个处于源函数 “wm_apmAppliParser_level2()”中的消息之后,主客户子应用7调用 辅助客户子应用8的一个源函数,也就是辅助客户子应用的停止源函 数(“wm_app2Pipe_level2(stop)”)。在说明书的剩余部分对这个源函 数(必须为主客户子应用所知)进行了详细介绍;-步骤“2”:在辅助 客户子应用8内部,源函数(“wm_app2Pipe_level2(stop)”)执行停止 辅助客户子应用的处理操作。如在接下来步骤(“3”到“5”)中详细说 明的那样,这些处理操作是从客户任务应用1中退订发送消息的服务, 对辅助客户子应用来说尤其如此;-步骤“3”:辅助客户子应用调用源 函数,以便退订发送来自客户任务应用1的消息的服务 (“wm_osMsgParserUnsubscribe-level2”)。在说明书的剩余部分对 这个源函数进行了详细介绍;—步骤“4”:第二级接口应用在客户任务 应用1的内部调用一个或多个恰当的执行函数,所述执行函数也称为 一个或多个退订(或是撤销预订)发送用于辅助客户应用的消息的服 务的函数;—步骤“5”:客户任务应用1经由第二级接口应用来设置辅 助客户子应用所请求的预订停止。
现在对可以由通过辅助客户应用执行来卸载主客户子应用的处 理操作的一个实例进行描述。
在这个实例中,假设:
-客户任务应用2发挥的是客户控制应用的作用;
-处理操作包括辅助客户子应用8发送一个命令并且接收相应的 响应;
-已经对辅助客户子应用8进行了初始化,并且将其预订为发送 来自客户任务应用1的消息的服务。
-在预订时,辅助客户子应用8提供了“wm_app2MsgParser _level2()”来作为消息接收源函数。
处理操作的这个实例的操作可以概括如下:
—步骤“1”:辅助子应用8调用一个向客户任务应用1发送一个 或多个AT命令的源函数,由此该应用执行所述AT命令(并且由此 实施一个“AT命令处理操作”)。在说明书的剩余部分对这个源函数 (“wm_atSendCommand_level2”)进行了详细介绍;—步骤“2”:第 二级接口应用6e在客户任务应用1内部的执行装置中调用一个或多个 恰当的执行函数,所述执行函数也称为一个或多个AT命令处理函数; —步骤“3”:执行装置4执行一个或多个AT命令;—步骤“4”:在执 行了所述AT命令之后,执行装置4向辅助客户子应用8发送一个或 多个AT响应(如果已经在此方向上对源函数进行了参数化);—步 骤“5”:通过第二级接口应用而将这个(或这些)响应发送到辅助客户 子应用8;—步骤“6”:在辅助客户子应用内部,接收和处理源函数 “wm_app2MsgParser_level2()”对所述响应进行处理。就接收来自客户 任务应用1的消息而言,这个源函数是在进行预订的时候由辅助客户 子应用提供的。所述接收和处理源函数的一个参数即为包含了前述一 个或多个响应的消息。
接下来论述的是客户任务应用2在依照本发明的新的无线电通信 模块控制技术变体的环境中起到监督应用的作用的情况。在这种情况 下,举例来说,辅助客户子应用8能够执行以下处理操作:
-实施命令切换机制,允许辅助客户子应用8过滤或侦查来自外 部客户应用的命令;
-实施响应切换机制,允许辅助客户子应用8过滤或侦查关于外 部客户应用的响应。
下文中并未详细描述辅助客户子应用执行的这些处理操作实例。 然而应该指出的是,通过进行以下置换,可以得到有关这两个前述切 换机制(分别是命令和响应)的辅助客户子应用的实施方式的说明性 文本:
-如果客户任务应用2是“单独的程序块”,那么我们脱离了以上 的说明性文本,以及
-在这里视为所涉及的是辅助客户子应用(而不是客户任务应用 2)。
在附录1中将会找到关于客户初始化应用6a和客户任务应用6b, 6c所依据的某些第一级源函数的详细描述。
在附录2中将会找到与根据本发明的新无线电通信模块控制技术 环境中包含的客户任务应用2和(就变体而言)主和辅助客户子应用 所基于的(参见上文中相对图8所进行的描述)某些第二级源函数有 关的详细描述。
附录1
关于客户初始化应用和客户任务应用所依据的某些第一级源函数的详 细介绍
预备观察:以下的列表并非穷举。应该注意的是,与客户任务 应用相关联的第一级源函数的所有实例都涉及“OS”程序块。即使没有 在下述的列表上显示,但是明显存在着很多与客户任务应用相关联的 第一级源函数,这些函数涉及的是“HWL”和“第三层GSM”程序块(在 以上相对附图给出的说明中可以找到涉及这两个程序块之中每一个程 序块的函数实例)。
A1)wm apmGlobalInit level1()
第一级全局初始化源函数,其作用是为主软件程序3提供允许其 初始化每一个客户任务应用6b、6c并与所述应用进行交互的信息。
A2)apmApplilnit nx level1()
第一级初始化源函数,它允许对客户任务应用x进行初始化。在 初始化相关客户任务应用的时候会将这个函数调用一次。
确切名称:
void AppliInit1(wm_apmInitTypw_e InitType);
参数:
InitType
表示的是运行所述初始化的对象。其相应的值是: typedef enum {
WM_APM-POWER_ON,
WM_APM_REBOOT_FROM_EXCEPTION
wm_apmInitType_e; } WM_APM-POWER_ON表示的是进行常规的加电。 WM_APM_REBOOT_FROM_EXCEPTION表示在出现一个异常事 件之后重新启动所述模块。
A3)apmAppliParser nx level1()
接收和处理一个来自主软件程序的消息的第一级源函数。每次 当客户应用从主软件程序接收到一个消息的时候都会调用这个函数。
确切名称:
bool AppliParserl(wm_apmMsg_t*Message);
参数:
Message
“Message”的结构依赖于其类型:
typedef struct { u16 u16 s16 s16MbxSrc; MbxDst; Length; TypMsg;/*源邮箱*/ /*收件人邮箱*/ /*消息主体长度*/ /*接收的消息类型:表示的是与消息主体相关联的结构*/ }wm_apmHeader_t; typedef struct { wm_apmHeader_tHeader;/*消息报头*/ wm_apmBody_t Body;/*特定消息主体*/ } wm_apmMsg_t;
TypMsg可以假设下列值: WM_OS_TIMER: 表示的是消息是在时延终止的时候发送的。
WM_HWL_xxx...
WM_L3xxx... 返回的值:
返回参数表示是(真)否(假)处理了所述消息。
A4)“Global task information”
define WM_OS_MAX_GUST_TASK /*客户任务应用(或“客户任务”)标识符*/ enum { WM_OS_CUST_TASK_1,/*高优先级任务*/ WM_OS_CUST_TASK_2, WM_OS_CUST_TASK_3, WM_OS_CUST_TASK_4,/*低优先级任务*/ }; /*邮箱标识符*/ typedef enum { /*客户任务邮箱(MBX)标识符*/ WM_OS_MBX_CUST_1/*MBX与WM_OS_CUST_TASK_1相关联*/ WM_OS_MBX_CUST_2/*MBX与WM_OS_CUST_TASK_2相关联*/ WM_OS_MBX_CUST_3/*MBX与WM_OS_CUST_TASK_3相关联*/ WM_OS_MBX_CUST_4/*MBX与WM_OS_CUST_TASK_4相关联*/ /*主软件程序任务邮箱(MBX)标识符*/ WM_OS_MBX_CORE_CC,/*与呼叫控制管理相关联*/ WM_OS_MBX_CORE_SS,/*与辅助服务管理相关联*/ WM_OS_MBX_CORE_SMS,/*与短消息服务管理相关联*/ WM_OS_MBX_CORE_MM,/*与移动性管理相关联*/ WM_OS_MBX_CORE_RR,/*与无线电资源管理相关联*/ WM_OS_MBX_CORE_DATA,/*与数据呼叫管理相关联*/ WM_OS_MBX_CORE_IR,/*与红外管理相关联*/ WM_OS_MBX_CORE_IP,/*与IP管理相关联*/ WM_OS_MBX_CORE_SIM,/*与SIM管理相关联*/ /*HWL和BATT邮箱(MBX)标识符*/ WM_OS_MBX_CORE_HWL,/*与HWL管理相关联*/ WM_OS_MBX_CORE_BATT,/*与电池管理相关联*/ }Mbx_t;
A5)wm osSendMsg level1()
经由接口应用和主软件程序而向另一个客户任务应用发送(先 前分配和完成的)消息的第一级源函数。
确切名称: bool wm_osSendMsg    (void*Msg)
参数:
Msg:将要发送的消息
返回的值:
返回参数表示是(真)否(假)发送了所述消息。
A6)“wm osStartTimer level1”
在主软件程序中触发时延的第一级源函数。
A7)“wm osStopTimer level1”
停止主软件程序中先前触发的时延的第一级源函数。
A8)“wm osDebugTrace level1”
跟踪调试操作的第一级源函数。
A9)“wm osDebugFatalError level1”
表示一个致命错误并且重新启动的第一级源函数。
A10)“wm osWriteFlashData level1”
在无线电通信模块包含的存储器中写入数据的第一级源函数。
A11)“wm osReadFlashData level1”
读取无线电通信模块包含的存储器中的数据的第一级源函数。
A12)“wm osGetLenFlashData level1”
提供无线电通信模块包含的存储器中所保存的数据的长度的第 一级源函数。
A13)“wm osDeleteFlashData level1”
删除无线电通信模块包含的存储器中保存的数据的第一级源函 数。
A14)“wm osGetAllowedMemoryFlashData level1”
提供无线电通信模块包含的存储器内部分配的存储量的第一级 源函数。
A15)“wm osGetFreeMemoryFlashData level1”
提供无线电通信模块包含的存储器内部的自由存储量的第一级 源函数。
A16)“wm osGetMemoryFlashData level1”
请求分配无线电通信模块包含的存储器内部的存储区的第一级 源函数。
A17)“wm osReleaseMemoryFlashData level1”
请求释放无线电通信模块包含的存储器内部的存储区的第一级 源函数。
A18)“wm MbxSubscribe”
预订主软件程序所管理的邮箱服务的第一级源函数,由此允许 客户任务应用为其自身分配一个其专用的邮箱,并且所述客户任务应 用希望在所述邮箱中接收来自至少一个预定信源的信息。
对所有信息来说,缺省设定是将所述所述信息发送到 WM_OS_CUST_MBX_1,也就是发送到与WM_OS_CUST TASK_1 (客户任务应用1)相关联的邮箱。
确切名称: bool wm_MbxSubscribe(wm_apmMbxSubscription_t*TabMbxSubs);
参数: TabMbsSubs:
包含实体及其相关邮箱的表格。 Typedef struct { Mbx_t MbxSrc;/*源邮箱,标识的是WM_OS_CORE_MBX_x之一*/ Mbx_t MbxDst;/*目的地邮箱,标识的是WM_OS_CUST_MBX_x 之一*/ }wm_apmMbxSubscription_t;
返回的值:
返回参数表示是(真)否(假)处理了所述预订。
附录2:
在根据本发明的新的无线电通信模块控制技术环境中引入的客 户任务应用2与主和辅助客户子应用(在变体情况中)所基于的某些 第二级源函数的详细介绍
预备观察:以下的列表并非穷举。
A1)″wm osMsgParserSubscribe level2()″
结合客户任务应用1来为客户任务应用2或一个(主或辅助)客 户子应用预订一个用于接收来自客户任务应用1的消息的服务的函 数。客户任务应用1保存这个函数并且会在每次需要向所涉及的(主 或辅助)客户子应用发送某些信息的时候使用这个函数。
确切名称: void wm_osMsgParserSubscribe_level2(void(*SubscribeFunction) (wm_apmMsg_t*));
参数: SubscribeFunction(wm_apmMsg_t*):由调用方(客户任务应用2)或 (主或辅助)客户子应用提供的一个函数,以使所述软件程序可以向 其发送消息。以下详述了所提供的这个函数的一个原型(对主客户子 应用来说是“wm_apmAppliParser_level2”而对辅助客户子应用来说 则是“wm_app2MsgParser_level2”)。
返回的值:
返回参数表示是(真)否(假)处理了所述预订。
A2)“wm osMsgParserUnsubscribe level2()”
结合客户任务应用1来停止客户任务应用2或(主或辅助)客户 子应用预订一个用于接收来自客户任务应用1的消息的服务的函数。 客户任务应用1则忽略先前保存的函数。
确切名称: Boolwm_osMsgParserUnsubscribe_level2(void(*SubsFunction)(wm_a pmMsg_t*));
参数:
SubsFunction(wm_apmMsg_t*):由调用方(客户任务应用2) 或(主或辅助)客户子应用提供的一个函数,以使客户任务应用1能 够向其发送消息。这个函数必须与预订这个服务时给出的函数的相同, 否则不会处理所述预订终止。
返回的值:
返回参数表示是(真)否(假)处理了所述预订终止。
A3)“wm app2Pipe level2(FunctionTypefunction,...)”
辅助客户子应用为了与主客户子应用进行交互而必须为主客户 子应用提供的函数的原型。这个函数是一个可变自变量函数,自变量 的数量和类型依赖于第一个“函数”参数。
确切名称: void wm_app2Pipe_level2(FunctionTypefunction...);
参数:
Function:所请求的函数。它意味着以下参数的数量和类型。某 些值是预留的(例如从0到127),而其他值(例如从128到512)则 是保持空闲,以便由主客户子应用与辅助客户子应用之间的特定对话 使用。
A3-1)用于函数的可变参数=WM_APP_FUNCTION_INIT: void wm_app2Pipe_level2  ( 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(*MainAppDialogFunction)(wm_apmMsg_t*):辅助客户子应用向 主客户子应用发送消息所必须使用的函数地址。如果主客户子应用不 需要这个函数,则其给出一个NULL值。
void:*(*SecondaryAppDialogFunction)(wm_apmMsg_t*):
辅助客户子应用必须给出它为主客户子应用提供的函数的地 址。如果辅助客户子应用没有提供这个函数,则它必须将这个值设定 为NULL。
(A3-2)用于函数的可变参数=WM_APP_FUNCTION_STOP: void wm_app2Pipe_level2( FunctionType_t function );
辅助客户子应用必须停止其处理操作,退订其所有预订,并且 释放所使用的所有资源。
A4)“wm apmAppliParser level2”
客户任务应用2为了从客户任务应用1接收消息而必须提供的源 函数的原型。特别地,形成这个处理(也称为“接收”)函数的消息的 参数包含了一个AT命令或是一个针对AT命令的响应。
应该指出的是,下文描述的任何内容同样适用于源函数,其中 主客户子应用或辅助客户子应用希望从客户任务应用1接收消息。只 有函数自身的名称发生了改变(例如“wm_app2MsgParser_level2”而 不是“wm_apmAppliParser_level2”)。
确切名称: bool wm_apmAppliParser_level2(wm_apmMsg_t*Message);
参数: Message
消息的结构随着接收到的每个消息的类型而发生变化:
typedef struct
{
   S16    MsgTyp;
   /*“MsgTyp”是一个接收到的消息的类型,它允许确定相关联的
   消息主体*/
   wm_apmBody_t Body;    /*″Body″是一个特定的消息主体*/
}wm_apmMsg_t;
  “MsgTyp”的值:
   WM_AT_SEND_RSP
该消息包含了一个针对由客户任务应用2先前发送到客户任务 应用1的AT命令的响应。
WM_AT_UNSOLICITED
该消息包含了一个未经请求的AT命令。
WM_AT_CMD_PRE_PARSER
该消息包含了一个由外部客户应用经由客户任务应用1发送的 AT命令。
WM_AT_RSP_PRE_PARSER
该消息包含了一个由客户任务应用1执行一个来自外部应用的 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_OS_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_TO_BROADCAST }wm_atSendRspType_e;
(要得到关于“wm_atSendRspType_e”的描述,可以参见关于 “wm_atSendCommand_level2”的详细描述)。
用于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_UNSOLICITED_TO_BROADCAST }wm_atUNSOLICITED_e;
(要得到关于“wm_atUnsolicited_e的描述,可以参见关于函数 “wm_atUnsolicitedSubscription_level2”的详细描述)。
用于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,/*缺省值 */ WM_AT_CMD_PRE_EMBEDDED_TREATMENT, WM_AT_CMD_PRE_BROADCAST }wm_atCmdPreSubscribe_e;
(要得到关于“wm_atCmdPreSubscribe_e”的描述,可以参见关 于函数“wm_atRspPreParserSubscribe_level2”的详细描述)。
用于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,/*缺省值*/ WM_AT_RSP_PRE_EMBEDDED_TREATMENT, WM_AT_RSP_PRE_BROADCAST }wm_atRspPreSubscribe_e;
(要得到关于“wm_atRspPreSubscribe_e”的描述,可以参见关 于函数“wm_atRspPreParserSubscribe_level2”的详细描述)。
用于WM_OS_TIMER的主体:
typedef struct  {
u8      Ident;  /*时延标识符*/
}wm_osTimer_t;
(要得到关于“Ident”返回值的描述,可以参见关于函数 “wm_osStartTimer_level2”的详细描述)。
返回的值
返回参数表示是(真)否(假)处理了所述消息。
A5)“wm atSendCommand level2”
向客户任务应用1发送至少一个AT命令的函数,所述函数的一 个参数表示的是执行这个AT命令产生的响应所定址的应用(也就是 嵌入的客户任务应用2(或是(主或辅助)客户子应用)和/或外部客 户应用)。
确切名称 void   wm_atSendCommand_level2  (u16  AtStringSize, wm_atSendRspType_e
ResponseType,char*AtString,);
参数: AtString
这个参数可以是ASCII字符形式的任意类型的AT命令串。在 同一时间可以发送几个所述字串。 AtStringSize
先前参数:AtString的大小。
响应类型
Type of response
typedef enum{
   WM_AT_SEND_RSP_TO_EMBEDDED,/*缺省值*/
   WM_AT_SEND_RSP_TO_EXTERNAL
   WM_AT_SEND_RSP_BROADCAST
}wm_atSendRspType_e;
WM_AT_SEND_RSP_TO_EMBEDDED
所有响应都重定向到嵌入的客户任务应用2(或是(主或辅助) 客户子应用)。这是缺省模式
WM_AT_SEND_RSP_TO_EXTERNAL
所有响应都重定向到外部客户应用(PC)。
WM_AT_SEND_RSP_BROADCAST
所有响应都重定向(“广播”)到嵌入的客户任务应用2(或是(主 或辅助)客户子应用)以及外部客户应用(PC)。
A6)“wm atUnsolicitedSubscription level2”
结合客户任务应用1来预订一个未经请求的AT命令接收服务的 函数,所述函数的一个参数表示将每个未经请求的AT命令重定向到 哪些收件人应用(也就是嵌入的客户任务应用2(或(主或辅助)客 户子应用)和/或外部客户应用)。
确切名称: void wm_atUnsolicitedSubscription_level2(wm_atUnsolicited_e Unsolicited);
参数: Unsolicited
这个参数描述的是在得到未经请求的AT命令的时候执行的操 作。
typedef enum  {
   WM_AT_UNSOLICITED_TO_EXTERNAL,    /*缺省值*/
   WM_AT_UNSOLICITED_TO_EMBEDDED,
   WM_AT_UNSOLICITED_broadcast
}wm_atUnsolicited_e;
WM_AT_UNSOLICITED_TO_EXTERNAL
所有未经请求的命令都会重定向到外部客户应用(PC)(缺省 模式)
WM_AT_UNSOLICITED_TO_EMBEDDED
所有未经请求的命令都会重定向到嵌入的客户任务应用2(或是 (主或辅助)客户子应用)
WM_AT_UNSOLICITED_broadcast
所有未经请求的命令都会重定向(广播)到外部客户应用(PC) 以及嵌入的客户任务应用2(或是(主或辅助)客户子应用)。
A7)wm atCmdPreParserSubscribe level2
结合客户任务应用1来预订一个AT命令切换服务的函数,所述 函数的一个参数表示将每个未经请求的AT命令重定向到哪些收件人 应用(也就是嵌入的客户任务应用2(或(主或辅助)客户子应用) 和/或外部客户应用)。
确切名称: Void wm_atCmdPreParserSubscribe_level2
(wm_atCmdPreSubscribe_e SubscribeType)
参数:
这个参数描述的是在得到AT命令时执行的操作。
Typedef enum{
   WM_AT_CMD_PRE_WAVECOM_TREATMENT,/*缺省值*/
   WM_AT_CMD_PRE_EMBEDDED_TREATMENT
   WM_AT_CMD_PRE_BROADCAST
}wm_atCmdPreSubscribe_e;
WM_AT_CMD_PRE_WAVECOM_TREATMENT
嵌入的客户任务应用2(或是(主或辅助)客户子应用)不希望 过滤(或侦查)外部客户应用发送的命令(缺省模式)。
WM_AT_CMD_PRE_EMBEDDED_TREATMENT
嵌入的客户任务应用2(或是(主或辅助)客户子应用)希望过 滤外部客户应用发送的命令。
WM_AT_CMD_PRE_BROADCAST
嵌入的客户任务应用2(或是(主或辅助)客户子应用)希望侦 查外部客户应用发送的命令。
A8)wm atRspPreParserSubscribe level2
结合客户任务应用1来预订一个AT响应切换服务的函数,所述 函数的一个参数表示将客户任务应用1执行来自外部应用的AT命令 所产生的每一个AT响应切换到哪些收件人应用(也就是嵌入的客户 任务应用2(或(主或辅助)客户子应用)和/或外部客户应用)。
确切名称: Void wm_atRspPreParserSubscribe_level2
 wm_atRspPreSubscribe_e  SubscribeType
参数:
这个参数描述的是在得到AT命令时执行的操作。
typedef  enum{
   WM_AT_RSP_PRE_WAVECOM_TREATMENT,/*缺省值*/
   WM_AT_RSP_PRE_EMBEDDED_TREATMENT
   WM_AT_RSP_PRE_BROADCAST
}m_atRspPreSubscribe_e;
WM_AT_RSP_PRE_WAVECOM_TREATMENT
嵌入的客户任务应用2(或是(主或辅助)客户子应用)不希望 过滤(或侦查)外部客户应用发送的响应(缺省模式)。
WM_AT_RSP_PRE_EMBEDDED_TREATMENT
嵌入的客户任务应用2(或是(主或辅助)客户子应用)希望过 滤外部客户应用发送的响应。
WM_AT_RSP_PRE_BROADCAST
嵌入的客户任务应用2(或是(主或辅助)客户子应用)希望侦 查外部客户应用发送的响应。
A9)“wm atSendRspExternalApp level2”
经由客户任务应用1来向外部客户应用发送至少一个响应的函 数。只有在先前预订了响应切换服务的情况下,才有可能使用这个函 数,其中特别将响应的一个拷贝切换到嵌入的客户任务应用2(或是 (主或辅助)客户子应用)。
确切名称: void wm_atSendRspExternalApp_level2(u16 AtStringSize,
char*AtString,);
参数: AtString
可以是ASCII字符形式的任一类型的AT响应字串。 AtStringSize
先前参数:AtString的大小。
A10)Data Flow_Service level2
在建立数据通信之后,由嵌入的客户任务应用2(或是(主或辅 助)客户子应用)经由客户任务应用1来发送和/或接收数据的函数。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈