基于mbim接口的响应消息发送方法、装置、mbb设备及介质

文档序号:1941462 发布日期:2021-12-07 浏览:25次 >En<

阅读说明:本技术 基于mbim接口的响应消息发送方法、装置、mbb设备及介质 (Response message sending method and device based on MBIM (multimedia broadcast multicast service) interface, MBB (multimedia broadcast multicast service) equipment and medium ) 是由 辛安文 于 2021-10-15 设计创作,主要内容包括:本发明实施例涉及电子设备技术领域,公开了一种基于MBIM接口的响应消息发送方法、装置、MBB设备及介质。该方法包括:实时接收主设备发送的若干个请求消息;对若干个请求消息进行处理生成对应的响应消息,并将响应消息加入响应队列;按照预设策略将响应队列中的响应消息发送至主设备。本发明实施例基于响应队列控制响应消息到主设备的发送方式,从而可按照主设备所需尽量地将响应消息发送至主设备,可避免响应消息失当等引起的兼容性问题。(The embodiment of the invention relates to the technical field of electronic equipment, and discloses a response message sending method and device based on an MBIM interface, MBB equipment and a medium. The method comprises the following steps: receiving a plurality of request messages sent by a main device in real time; processing the plurality of request messages to generate corresponding response messages, and adding the response messages into a response queue; and sending the response message in the response queue to the main equipment according to a preset strategy. The embodiment of the invention controls the sending mode of the response message to the main equipment based on the response queue, thereby sending the response message to the main equipment as much as possible according to the requirement of the main equipment and avoiding the compatibility problem caused by the improper response message and the like.)

基于MBIM接口的响应消息发送方法、装置、MBB设备及介质

技术领域

本发明涉及电子设备技术领域,特别涉及一种基于MBIM接口的响应消息发送方法、装置、MBB设备及介质。

背景技术

随着各种便携式设备的不断推广普及和通信技术的不断进步,各种各样与之相配的通信方式不断涌现。目前,在人们日常使用便携式设备的过程中,会用到移动宽带(Mobile Broadband,简称MBB)设备。

MBIM(Mobile Broadband Interface Model,简称MBIM)协议是一种网络适配器的设备接口规范,采用MBIM协议的MBB设备和主设备之间,可以通过PCIE/USB接口通道以MBIM协议规定的数据格式进行通信。微软公司率先在Windows8操作系统支持主设备和MBB设备之间基于MBIM接口通信。

发明人发现现有技术中,MBB设备和主设备在通信时,当主设备下发的大量请求消息到达时,采用Task工作队列方式保证主设备下发的消息不丢失且有序执行,根据Task工作队列逐个处理MBIM服务子消息并转到Modem子系统进行异步处理,Modem子系统处理完成后再以回调方式将各服务子消息响应给主设备。该响应方法存在以下隐患:高并发下的响应消息状态错乱及消息丢失、底层链路处于挂起状态导致消息丢失、Modem子系统异常错误缀余消息上报等,由此导致主设备和MBB设备之间的兼容性问题。

需要说明的是,在上述

背景技术

部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域技术人员已知的现有技术的信息。

发明内容

有鉴于此,本发明实施方式的目的在于提供一种基于MBIM接口的响应消息发送方法、装置、MBB设备及介质,以解决MBB设备和主设备基于MBIM接口通信时存在的一些兼容性问题。

为解决上述技术问题,第一方面,本发明的实施方式提供了一种基于MBIM接口的响应消息发送方法,应用于MBB设备,所述MBB设备与主设备电连接,且基于MBIM接口通信,所述方法包括:

实时接收主设备发送的若干个请求消息;

对所述若干个请求消息进行处理生成对应的响应消息,并将所述响应消息加入响应队列;

按照预设策略将所述响应队列中的响应消息发送至所述主设备。

另外,所述按照预设策略将所述响应队列中的响应消息发送至所述主设备,包括:

确定所述响应队列中的响应消息的响应状态是否需要根据关联任务的处理状态进行更新,若是,则在根据所述关联任务的处理状态对所述响应消息的响应状态更新后发送所述响应消息。

另外,按照预设策略将所述响应队列中的响应消息发送至所述主设备,包括:

确定是否需要启用延时发送,若是,则按照预设的发送时间间隔延时发送所述响应队列里的响应消息。

另外,确定是否需要启用延时发送,包括:

若所述响应队列中的响应消息数量与所述响应队列能够容纳的响应消息总数的比值大于阈值,则确定需要启用延时发送。

另外,所述按照预设策略将所述响应队列中的响应消息发送至所述主设备,包括:

在发送所述响应队列中的响应消息时监听所述响应消息是否发送成功,若所述响应消息发送失败,则重复发送所述发送失败的响应消息,直到达到预设发送次数或者所述发送失败的响应消息发送成功。

另外,所述方法还包括:

当检测到所述MBB设备和所述主设备的通信通道处于挂起状态时,进入所述在发送所述响应队列里的响应消息时监听所述响应消息是否发送成功的步骤。

另外,所述按照预设策略将所述响应队列中的响应消息发送至所述主设备,包括:

监听所述主设备的状态,若根据所述主设备的状态以及预设屏蔽策略确定所述响应队列的响应消息需要被屏蔽,则丢弃所述响应队列中的需要被屏蔽的响应消息。

第二方面,本发明实施例还提供了一种基于MBIM接口的响应消息发送装置,配置于MBB设备,MBB设备与主设备电连接,且基于MBIM接口通信,所述装置包括:

任务接收模块,用于实时接收主设备发送的若干个请求消息;

入队模块,用于对所述若干个请求消息进行处理生成对应的响应消息,并将所述响应消息加入响应队列;

发送模块,用于按照预设策略将所述响应队列中的响应消息发送至所述主设备。

第三方面,本发明实施例还提供了一种MBB设备,所述MBB设备与主设备电连接,且基于MBIM接口通信;所述设备包括:存储器和处理器,存储器存储计算机程序,处理器运行所述计算机程序以实现如前所述的方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的MBIM接口的响应消息发送方法。

本发明实施例通过对实时接收的主设备发送的若干个请求消息进行处理生成对应的响应消息,并将生成的响应消息加入响应队列,然后按照预设策略将响应队列中的响应消息发送至主设备,即基于响应队列控制响应消息到主设备的发送方式,从而可按照主设备所需尽量地将响应消息发送至主设备,可避免响应消息状态错乱、丢包及错误上报等引起的兼容性问题。

附图说明

图1是本发明实施例提供的基于MBIM接口的响应消息发送方法的认证系统的结构示意图;

图2是现有基于MBIM接口的响应消息发送方法的流程示意图;

图3是本发明实施例一提供的基于MBIM接口的响应消息发送方法的流程示意图;

图4-图7分别是本发明实施例一提供的基于MBIM接口的响应消息发送方法的一种具体流程示意图;

图8是本发明实施例提供的基于MBIM接口的响应消息发送装置的结构示意图;

图9是本发明一实施例提供的MBB设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供的基于MBIM接口的响应消息发送方法可应用于如图1所示的通信系统。该通信系统包括主设备和MBB设备。主设备和MBB设备电连接,并可通过PCIE/USB链路和MBIM协议通信。其中主设备可以是笔记本电脑、PC等支持MBIM接口协议的计算设备。

如图2所示,现有技术中,主设备MBIM应用层和MBB设备之间通信时,主设备实时发送MBIM请求消息给MBB设备,MBB设备对接收到的请求消息进行处理生成对应的响应消息,然后通过回调方式将响应消息响应给主设备。具体地,主设备可将大量的请求消息(即MBIM服务消息)实时发送至MBB设备,MBB设备端会将接收到的请求消息加入Task工作队列,并逐个处理工作队列中的MBIM服务子消息,将服务子消息转到MBB设备的Modem子系统进行异步处理,处理完成之后生成相应的响应消息,然后再以回调方式将各服务子消息的响应消息响应给主设备,也就是说,MBB生成响应消息后会直接响应给主设备,响应消息的响应机制缺乏管理,因此可能存在以下问题:

1.当主设备发送大量的请求消息给MBB设备时,请求消息全部加入工作队列逐一处理,请求消息被转入Modem子系统进行异步处理,处理完成即将服务子消息响应给主设备,故存在响应主设备的响应消息是无序的且可能存在响应主设备的响应消息的状态错乱而与主设备请求意图不一致的情况。

举例如下:MBB设备在SIM PIN状态下,主设备同时请求解除SIM PIN及SUBSCRIBER_READY_STATUS查询;无论MBB设备SIM PIN是否解除成功,若MBB设备响应SUBSCRIBER_READY_STATUS消息超前于SIM PIN的响应消息响应给主设备,若SUBSCRIBER_READY_STATUS响应SIM初始化中或者初始化失败等给主设备,会直接导致主设备无法存储该SIM PIN码,从而产生错误。因此期望当主设备同时请求SIM PIN和SUBSCRIBER_READY_STATUS查询时,需等SIM PIN响应完成后,SUBSCRIBER_READY_STATUS再响应SIM卡初始化状态给主设备。

2.当主设备发送大量的请求消息给MBB设备时,请求消息全部加入工作队列逐一处理,请求消息被转入Modem子系统进行异步处理,处理完成即将服务子消息响应给主设备,故存在大量的异步响应消息触发中断端点(kernel驱动层的PCIE/USB MBIM通信管道)以通知Host,故存在频繁触发中断端点。若主设备响应ACK(Acknowledgement,确认字符)延时(delay),MBB设备和主设备之间的底层PCIE/USB MBIM通信管道会阻塞,导致MBB设备下一次响应消息触发中断端点异常,响应消息无法送入通信管道而掉包。

再有,MBB设备的MBIM接口在无数据业务即底层PCIE/USB MBIM通信管道空闲时会进入挂起,待主设备或MBB设备有数据业务请求时会再次恢复底层PCIE/USB MBIM通信管道由挂起到唤醒,再进行数据业务交互以保证主设备的低待机功耗及最大待机时长。但是该设计存在如下问题:

3.主设备请求消息到达MBB设备--->消息进入上述工作队列逐一处理并转入modem子系统异步处理--->随即MBB设备的MBIM接口在无数据业务即底层PCIE/USB MBIM通信管道空闲时会进入挂起--->modem子系统异步处理完成预响应主设备--->触发MBB设备有数据业务请求会再次恢复底层PCIE/USB MBIM通信管道由挂起到唤醒--->MBB设备发起的主设备唤醒事件的唤醒失败概率较大(如USBBUS唤醒慢等可引起唤醒失败)--->响应消息无法送入通信管道而掉包。

4.MBB设备的MBIM接口在无数据业务即底层PCIE/USB MBIM通信管道空闲会进入挂起--->modem子系统信号强度变化或者接收到短信等预通知主设备--->触发MBB设备有数据业务请求会再次恢复底层PCIE/USB MBIM通信管道由挂起到唤醒--->MBB设备发起的主设备唤醒失败--->响应消息无法送入通信管道而掉包。

再有,MBB设备最核心的组件是Modem基带且MBIM整个信令交互牵制于modem子系统状态,而Modem基带属于独立的子系统,一旦有异常死机或重启的情况,对此Host是无法感知的,一些厂商的处理策略是上报modem子系统错误并清除之前会话的所有缓存状态,待Modem子系统就位重新上报主设备以触发主设备更新其UI(UserInterface,用户接口)状态,这样设计存在如下问题:

5.modem子系统的死机或重启是偶发性的,其可能发生在Windows系统的各个场景下,若发生在最敏感的S4休眠/S5关机场景,则此时modem子系统异常状态上报是没有必要的。

例如,Modem子系统上报的异常状态消息中包含radio state off会直接导致windows下一次S4/S5开机后进入飞行模式而无法联网,故根据Windows系统的状态决定是否上报modem子系统的异常是必要的。

图3是本发明实施例一提供的一种基于MBIM接口的响应消息发送方法的流程图,可适用于上述通信系统中的MBB设备的响应消息的发送。如图3所示,该方法包括步骤301至步骤303。

步骤301:实时接收主设备发送的若干个请求消息。

其中,MBB设备可将接收到的请求消息全部加入工作队列。

步骤302:对若干个请求消息进行处理生成对应的响应消息,并将响应消息加入响应队列。

MBB设备对工作队列中的请求消息逐一处理并转入Modem子系统异步处理,处理完成后生成各请求消息对应的响应消息。MBB设备可将生成的响应消息全部加入响应队列,从而可将响应消息缓存起来,以便根据预设策略响应给主设备。

步骤303:按照预设策略将响应队列中的响应消息发送至主设备。

其中,预设策略可以根据MBB设备和主设备之间的消息响应异常进行制定,以有效地消除MBB设备响应主设备时产生的相关问题,改善MBB设备和主设备之间的通信兼容性。

针对前文提及的MBB设备和主设备之间由于响应消息产生的若干问题,现分别提出对应的预设策略,以消除上述问题。可以理解的是,下文提出的多种预设策略可以单独或者组合应用,且其执行顺序可以任意组合,在此均不做限制。

请参阅图4,步骤303中按照预设策略将响应队列中的响应消息发送至主设备可以包括:确定响应队列中的响应消息的响应状态是否需要根据关联任务的处理状态进行更新,若是,则在根据关联任务的处理状态对响应消息的响应状态更新后发送响应消息,以解决上文中SIM PIN及SUBSCRIBER_READY_STATUS消息响应状态错乱产生的问题。若不需要更新,则可以按照加入响应队列的顺序将响应消息出对。

比如,针对SIM PIN和SUBSCRIBER_READY_STATUS请求消息,MBB设备将先于SIMPIN的响应消息的SUBSCRIBER_READY_STATUS的响应消息加入响应队列,此时,SUBSCRIBER_READY_STATUS的响应消息可以是SIM初始化失败。然后等待SIM PIN响应完成之后,再将SUBSCRIBER_READY_STATUS的响应消息更新为SIM初始化成功之后响应给主设备。由此,可避免由于MBB设备状态错报导致主设备无法存储SIM PIN码的问题。

请参阅图5,步骤303中按照预设策略将响应队列中的响应消息发送至主设备还可以包括:确定是否需要启用延时发送,若是,则按照预设的发送时间间隔延时发送响应队列里的响应消息,若否,则可以根据其他预设策略(若有)发送响应消息,而不必加长响应消息之间的时间间隔。

其中,确定是否需要启用延时发送可以包括:若响应队列中的响应消息数量与响应队列能够容纳的响应消息总数的比值大于阈值,则确定需要启用延时发送。作为举例而非限制,响应队列能够容纳的响应消息总数可以是20条,阈值可以是80%,即当响应队列中存储的待发送的响应数量大于或者等于16条时,即可认为需要启用延时发送,反之则无需启用延时发送。其中,延时发送时的发送时间间隔可以根据底层数据传输链路的规格确定,比如底层数据传输链路为USB2.0时,发送时间间隔可以为100ms;当传输链路为USB3.0时,发送时间间隔可以为1ms,然本实施例对于发送时间间隔不做具体限制。通过对数量较多的响应消息采用适当的发送时间间隔进行发送,避免频繁触发中断端点造成主设备ACKDelay引起通信管路阻塞而产生丢包,保障数据发送成功率。

请参阅图6,步骤303中按照预设策略将响应队列中的响应消息发送至主设备还可以包括:在发送响应队列中的响应消息时监听响应消息是否发送成功,若响应消息发送失败,则重复发送该发送失败的响应消息,直到达到预设发送次数或者发送失败的响应消息发送成功。可选地,当检测到MBB设备和主设备的通信通道处于挂起状态时,进入在发送响应队列里的响应消息时监听响应消息是否发送成功的步骤,若MBB设备和主设备的通信通道未处于挂起状态,则可以控制响应消息逐一按照入队顺序出对。

举例而言,当检测到MBB设备和主设备的通信通道挂起时,在发送响应队列中的响应消息时监听响应消息是否发送成功,若响应消息失败,则重复发送该发送失败的响应消息,直到该响应消息的发送次数已经累计达到预设发送次数,比如3次,或者该响应消息发送成功。通过对发送失败的响应消息进行重复多次发送,可有效解决由于通信通道挂起而导致的丢包,大大提高响应消息发送的成功率。

请参阅图7,步骤303中按照预设策略将响应队列中的响应消息发送至主设备还可以包括:监听主设备的状态,若根据主设备的状态以及预设屏蔽策略确定响应队列的响应消息需要被屏蔽,则丢弃响应队列中的需要被屏蔽的响应消息。可以预先设置消息屏蔽策略,消息屏蔽策略比如包括Modem子系统中需要屏蔽的响应消息以及主设备当前的状态。

比如,当监听到主设备当前处于S4/S5状态,且响应消息为Radio State Off时,根据预设的消息屏蔽策略可以确定该条Radio State Off响应消息需要被屏蔽,则不将该消息响应给主设备,从而避免主设备进入飞行状态无法正常联网。

值得一提的是,上述各种发送策略可以根据其内在的联系进行组合使用或者单独使用,在此不做具体限制。比如,响应消息的延时发送策略可以与消息屏蔽策略、消息状态更新策略等组合使用。

本发明实施例通过对实时接收的主设备发送的若干个请求消息进行处理生成对应的响应消息,并将生成的响应消息加入响应队列,然后按照预设策略将响应队列中的响应消息发送至主设备,即基于响应队列控制响应消息到主设备的发送方式,从而可按照主设备所需尽量地将响应消息发送至主设备,可避免响应消息状态错乱、丢包及错误上报等引起的兼容性问题。

图8是本实施例提供的一种基于MBIM接口的响应消息发送装置的结构框图。本发明实施例还提供一种基于MBIM接口的响应消息发送装置800,配置于MBB设备,MBB设备与主设备电连接,且两者可以基于MBIM接口通信,该装置800用于执行上述任意实施例所提供的基于MBIM接口的响应消息发送方法。该装置800包括:任务接收模块801、入队模块802以及发送模块803。

任务接收模块801,用于实时接收主设备发送的若干个请求消息。

入队模块802,用于对若干个请求消息进行处理生成对应的响应消息,并将响应消息加入响应队列。

发送模块803,用于按照预设策略将响应队列中的响应消息发送至主设备。

可选地,发送模块803可用于确定响应队列中的响应消息的响应状态是否需要根据关联任务的处理状态进行更新,若是,则在根据关联任务的处理状态对响应消息的响应状态更新后发送响应消息,若不需要更新,则可以按照入队顺序逐一出对发送至主设备。

可选地,发送模块803还可以用于确定是否需要启用延时发送,若是,则按照预设的发送时间间隔延时发送响应队列里的响应消息。其中,发送模块503可用于若响应队列中的响应消息数量与响应队列能够容纳的响应消息总数的比值大于阈值,则确定需要启用延时发送。

可选地,发送模块803还可以用于在发送响应队列中的响应消息时监听响应消息是否发送成功,若响应消息发送失败,则重复发送发送失败的响应消息,直到达到预设发送次数或者所述发送失败的响应消息发送成功。同时,发送模块503还可以用于当检测到所述MBB设备和所述主设备的通信通道处于挂起状态时,进入所述在发送所述响应队列里的响应消息时监听所述响应消息是否发送成功的步骤。

可选地,发送模块803还可以用于监听所述主设备的状态,若根据所述主设备的状态以及预设屏蔽策略确定所述响应队列的响应消息需要被屏蔽,则丢弃所述响应队列中的需要被屏蔽的响应消息。

本发明实施例的装置通过对实时接收的主设备发送的若干个请求消息进行处理生成对应的响应消息,并将生成的响应消息加入响应队列,然后按照预设策略将响应队列中的响应消息发送至主设备,即基于响应队列控制响应消息到主设备的发送方式,从而可按照主设备所需尽量地将响应消息发送至主设备,可避免响应消息状态错乱、丢包及错误上报等引起的兼容性问题。

本发明实施例还提供一种MBB设备,MBB设备与主设备电连接,且可基于MBIM接口通信。如图9所示,该MBB设备包括:存储器902、处理器901;

其中,所述存储器902存储有可被所述至少一个处理器901执行的指令,所述指令被所述至少一个处理器901执行以实现前述实施方式所述的基于MBIM接口的响应消息发送方法。

该MBB设备包括一个或多个处理器901以及存储器902,图9中以一个处理器901为例。处理器901、存储器902可以通过总线或者其他方式连接,图9中以通过总线连接为例。存储器902作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器901通过运行存储在存储器902中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述基于MBIM接口的响应消息发送方法。

存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。

一个或者多个模块存储在存储器902中,当被一个或者多个处理器901执行时,执行上述任意方法实施方式中的基于MBIM接口的响应消息发送方法。

上述设备可执行本发明实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的方法。

本发明实施例的MBB设备通过对实时接收的主设备发送的若干个请求消息进行处理生成对应的响应消息,并将生成的响应消息加入响应队列,然后按照预设策略将响应队列中的响应消息发送至主设备,即基于响应队列控制响应消息到主设备的发送方式,从而可按照主设备所需尽量地将响应消息发送至主设备,可避免响应消息状态错乱、丢包及错误上报等引起的兼容性问题。

本发明实施例还涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种链式业务流调度的规划方法和系统架构

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!