CN117202143A - 连接参数的更新方法、蓝牙设备及可读存储介质 - Google Patents

连接参数的更新方法、蓝牙设备及可读存储介质 Download PDF

Info

Publication number
CN117202143A
CN117202143A CN202211643578.XA CN202211643578A CN117202143A CN 117202143 A CN117202143 A CN 117202143A CN 202211643578 A CN202211643578 A CN 202211643578A CN 117202143 A CN117202143 A CN 117202143A
Authority
CN
China
Prior art keywords
time
connection
upgrade
bluetooth
interval
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.)
Pending
Application number
CN202211643578.XA
Other languages
English (en)
Inventor
孙潇
朱江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211643578.XA priority Critical patent/CN117202143A/zh
Publication of CN117202143A publication Critical patent/CN117202143A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本申请公开了一种连接参数的更新方法、蓝牙设备及可读存储介质,属于终端技术领域。应用于蓝牙设备中,蓝牙设备与电子设备通过蓝牙连接,该方法包括:根据第一连接参数依次接收电子设备连续发送的升级数据包,第一连接参数为进行版本升级之前蓝牙设备与电子设备之间进行信息传输所使用的连接参数;在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新第一连接参数,一个升级数据包的处理时长为接收一个升级数据包的时间至存储一个升级数据包的时间的时间段。本申请通过在传输升级数据包的过程中调整连接参数,降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。

Description

连接参数的更新方法、蓝牙设备及可读存储介质
技术领域
本申请涉及终端技术领域,特别涉及一种连接参数的更新方法、蓝牙设备及可读存储介质。
背景技术
随着蓝牙技术的发展,蓝牙设备的应用领域越来越广泛,比如,智能家居领域等。由于智能牙刷、智能手表、无线蓝牙耳机等蓝牙设备受限于性能和连接能力,通常无法直接与对应的服务器进行连接,因此,在需要进行版本升级的情况下,蓝牙设备需要与手机等电子设备进行蓝牙连接,在电子设备获取到蓝牙设备的升级数据包之后,可以根据蓝牙协议栈中的连接参数将升级数据包持续发送给蓝牙设备,以实现蓝牙设备的升级。但是,在电子设备向蓝牙设备持续发送升级数据包的过程中,由于升级数据包的数据量大,发包持续时间长,且数据包交互频率高,在这个过程中很可能会因连接参数无法满足升级数据包的传输而出现蓝牙断连的情况,因此,为了减少蓝牙断连的概率,提高蓝牙设备版本升级的成功率,通常需要对蓝牙设备的蓝牙协议栈的连接参数进行更新。
目前,对蓝牙设备的蓝牙协议栈的连接参数的更新是在开发过程中进行的,开发人员可以对蓝牙设备的蓝牙协议栈的连接参数在合理范围内进行调整,以优化连接参数。
但是,由于在电子设备与蓝牙设备实际进行数据传输的过程中,电子设备与蓝牙设备的状态随时会发生变化,因此,虽然开发人员在开发过程中已调整蓝牙设备的连接参数,但是所使用的连接参数也可能会无法适应蓝牙设备当前所处的状态,从而也会发生蓝牙断连的情况,进而降低了蓝牙设备版本升级的效率。
发明内容
本申请提供了一种连接参数的更新方法、蓝牙设备及可读存储介质,可以用于解决相关技术中蓝牙发生断连,导致蓝牙设备版本升级效率低的问题。所述技术方案如下:
第一方面,提供了一种连接参数的更新方法,应用于蓝牙设备中,所述蓝牙设备与所述电子设备通过蓝牙连接,所述方法包括:
根据第一连接参数依次接收所述电子设备连续发送的升级数据包,升级数据包用于对所述蓝牙设备进行版本升级,所述第一连接参数为进行版本升级之前所述蓝牙设备与所述电子设备之间进行信息传输所使用的连接参数;
在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新所述第一连接参数,一个升级数据包的处理时长为接收所述一个升级数据包的时间至存储所述一个升级数据包的时间的时间段。
如此,在根据更新前的连接参数持续接收升级数据包的过程中,蓝牙设备可以随时根据对接收的升级数据包的处理能力,对当前的连接参数进行更新。由于能够在传输升级数据包的过程中,动态调整连接参数,从而保证当前的连接参数符合蓝牙设备的传输状态,降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
作为本申请的一个示例,所述根据第一连接参数依次接收所述电子设备连续发送的升级数据包之前,还包括:
与所述电子设备进行蓝牙连接;
在进行蓝牙连接过程中,通过与所述电子设备进行数据交互确定第二连接参数;
根据所述第二连接参数与所述电子设备进行升级准备交互操作,所述升级准备交互操作为所述蓝牙设备进行版本升级之前的准备操作;
在进行所述升级准备交互操作的过程中,确定至少一个时长信息,所述至少一个时长信息中每个时长信息用于指示所述蓝牙设备处理与所述电子设备之间的交互信息的能力;
基于所述至少一个时长信息,确定所述第一连接参数。
如此,通过在升级准备交互操作过程中确定的至少一个时长信息来确定第一连接参数,可以初步对蓝牙设备与电子设备之间的连接参数进行更新,进一步降低了蓝牙断连问题的发生。
作为本申请的一个示例,所述根据所述第二连接参数与所述电子设备进行升级准备交互操作,包括:
根据所述第二连接参数接收所述电子设备发送的版本号获取请求,所述版本号获取请求为所述电子设备接收到对所述蓝牙设备的更新操作的情况下发送;
响应于所述版本号获取请求,获取当前版本号,并向所述电子设备发送所述当前版本号;
根据所述第二连接参数接收所述电子设备发送的状态确认请求,所述状态确认请求为所述电子设备根据所述当前版本号确认版本发生更新后发送;
响应于所述状态确认请求,在所述蓝牙设备的运行状态满足升级条件的情况下,向所述电子设备发送确认升级消息;
根据所述第二连接参数接收所述电子设备发送的升级参数获取请求,所述升级参数获取请求为所述电子设备接收到所述确认升级消息的情况下发送;
响应于所述升级参数获取请求,设置升级参数报文,并向所述电子设备返回所述升级参数报文,所述升级参数报文为指示所述电子设备发送升级数据包的报文。
如此,通过在蓝牙设备的当前运行状态满足升级条件的情况下进行版本升级,从而提高了蓝牙设备进行版本升级的成功率。
作为本申请的一个示例,所述在进行所述升级准备交互操作的过程中,确定至少一个时长信息,包括:
确定第一时间与第二时间之间的第一时间差,所述第一时间为接收到所述版本号获取请求的时间,所述第二时间为获取到所述当前版本号的时间,所述至少一个时长信息包括所述第一时间差;和/或,
确定第三时间与第四时间之间的第二时间差,所述第三时间为接收到所述状态确认请求的时间,所述第四时间为确定所述运行状态满足升级条件的时间,所述至少一个时长信息包括所述第二时间差;和/或,
确定第五时间与第六时间之间的第三时间差,所述第五时间为接收到所述升级参数确认请求的时间,所述第六时间为设置所述升级参数报文的时间,所述至少一个时长信息包括所述第三时间差。
如此,通过在进行升级准备交互操作过程中确定至少一个时长信息,从而充分利用了蓝牙设备与电子设备之间的升级准备交互操作,提高了更新连接参数的便利性。
作为本申请的一个示例,所述至少一个时长信息包括所述第一时间差、所述第二时间差和所述第三时间差;所述第二连接参数中包括第一连接间隔,所述第一连接间隔为所述蓝牙设备与所述电子设备进行所述升级准备交互操作的过程中进行信息交互的最大时间间隔;
所述基于所述至少一个时长信息,确定所述第一连接参数,包括:
从所述第一时间差、所述第二时间差和所述第三时间差中获取最大值,得到最大时间差;
将所述最大时间差和所述第一连接间隔中的最大值与预设数值相乘,得到第一相乘结果;
将所述最大时间差和所述第一连接间隔中的最小值与所述预设数值相乘,得到第二相乘结果;
将所述第一相乘结果确定为第二连接间隔,将所述第二相乘结果确定为第三连接间隔,并将所述预设数值确定为第一设备时延,所述第二连接间隔为所述第一连接参数未发生更新的情况下所述电子设备向所述蓝牙设备发送升级数据包的最大时间间隔,所述第三连接间隔为所述第一连接参数未发生更新的情况下所述电子设备向所述蓝牙设备发送升级数据包的最小时间间隔,所述第一设备时延用于在所述第一连接参数未发生更新的情况下限制所述蓝牙设备不响应所述电子设备发送的消息的次数;
将所述预设数值、所述第一设备时延和所述第二连接间隔之间的乘积,确定为最大超时时间;
将所述第二连接间隔、所述第三连接间隔、所述第一设备时延和所述最大超时时间确定为所述第一连接参数。
如此,通过获取最大时间差和第一连接间隔中的最大值,并将最大值与预设数值之间的乘积确定为后续进行升级数据包传输的最大时间间隔,从而为蓝牙设备处理升级数据包提供了充足的时间,保证了升级数据包传输的成功率。
作为本申请的一个示例,所述在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新所述第一连接参数,包括:
在接收升级数据包的过程中,每接收到一个升级数据包,则获取当前接收的升级数据包对应的接收时间,并对当前接收的升级数据包进行解码和存储;
获取对当前接收的升级数据包解码的时间至存储的时间之间的时间差,得到当前接收的升级数据包对应的处理完成时间;
在接收的升级数据包的数量达到指定数量的情况下,或者,在接收升级数据包的时长达到指定时长的情况下,根据所接收的升级数据包对应的接收时间和处理完成时间,分别确定每个升级数据包对应的处理时长;
基于每个升级数据包的处理时长,对所述第一连接参数进行更新。
如此,通过在接收升级数据包的过程中对第一连接参数进行更新,从而保证当前的连接参数符合蓝牙设备的传输状态,降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
作为本申请的一个示例,所述基于每个升级数据包的处理时长,对所述第一连接参数进行更新之后,还包括:
在对所述第一连接参数更新成功的情况下,根据更新后的第一连接参数继续接收所述电子设备发送的升级数据包。
如此,由于更新后的第一连接参数更符合蓝牙设备当前的传输状态,通过更新后的第一连接参数与电子设备进行数据交互,从而降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
作为本申请的一个示例,所述基于每个升级数据包的处理时长,对所述第一连接参数进行更新,包括:
根据每个升级数据包的处理时长,确定第四连接间隔,所述第四连接间隔为所述第一连接参数发生更新后所述电子设备向所述蓝牙设备发送升级数据包的最大时间间隔;
根据每个升级数据包的接收时间,确定所述电子设备发送的每两个相邻的升级数据包的时间间隔,得到多个发送时间间隔;
确定所述多个发送时间间隔的平均值,得到平均发送间隔;
在所述第四连接间隔大于或等于所述平均发送间隔的情况下,根据所述第四连接间隔和所述平均发送间隔对所述第一连接参数进行更新。
如此,通过将第四连接间隔与平均发送间隔进行比较,在第四连接间隔大于或等于平均发送间隔的情况下,可以对第一连接参数进行更新,以保证蓝牙设备有充足的时间处理升级数据包,避免了蓝牙断连情况的发生。
作为本申请的一个示例,所述在所述第四连接间隔大于或等于所述平均发送间隔的情况下,根据所述第四连接间隔和所述平均发送间隔对所述第一连接参数进行更新,包括:
在所述平均发送间隔大于所述第四连接间隔的情况下,根据所述第四连接间隔和所述平均发送间隔,确定第二设备时延,所述第二设备时延用于在所述第一连接参数发生更新后限制所述蓝牙设备不响应所述电子设备发送的消息的次数;
将所述第四连接间隔和所述第二设备时延发送给所述电子设备;
在接收到参数更改确认消息的情况下,将所述第四连接间隔和所述第二设备时延分别替换所述第一连接参数中的第二连接间隔和第一设备时延,得到更新后的第一连接参数,所述参数更改确认消息为所述电子设备确认能够以所述第四连接间隔和所述第二设备时延进行数据交互的情况下发送。
如此,在得到更新的第一连接参数后,通过与电子设备基于更新后的第一连接参数进行数据确认,从而能够在后续使用更新后的第一连接参数进行数据交互。
作为本申请的一个示例,所述在所述平均发送间隔大于所述第四连接间隔的情况下,根据所述第四连接间隔和所述平均发送间隔,确定第二设备时延,包括:
在所述平均发送间隔大于所述第四连接间隔的情况下,根据所述第四连接间隔和所述平均发送间隔,通过第一公式确定所述第二设备时延,所述第一公式为:
latency=1+peer_interval/inferval
其中,所述为所述第二设备时延,所述为所述平均发送间隔,所述为所述第四连接间隔。
如此,通过在电子设备发送升级数据包的平均发送间隔基础上设置第二设备延时,从而保证了蓝牙设备处理升级数据包的时长,避免了蓝牙断连情况的发生。
第二方面,提供了一种蓝牙设备,所述蓝牙设备的结构中包括处理器和存储器,所述存储器用于存储支持蓝牙设备执行上述第一方面所提供的连接参数的更新方法的程序,以及存储用于实现上述第一方面所述的连接参数的更新方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述蓝牙设备还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。所述处理器被配置为:
根据第一连接参数依次接收所述电子设备连续发送的升级数据包,升级数据包用于对所述蓝牙设备进行版本升级,所述第一连接参数为进行版本升级之前所述蓝牙设备与所述电子设备之间进行信息传输所使用的连接参数;
在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新所述第一连接参数,一个升级数据包的处理时长为接收所述一个升级数据包的时间至存储所述一个升级数据包的时间的时间段。
作为本申请的一个示例,所述处理器还被配置为:
与所述电子设备进行蓝牙连接;
在进行蓝牙连接过程中,通过与所述电子设备进行数据交互确定第二连接参数;
根据所述第二连接参数与所述电子设备进行升级准备交互操作,所述升级准备交互操作为所述蓝牙设备进行版本升级之前的准备操作;
在进行所述升级准备交互操作的过程中,确定至少一个时长信息,所述至少一个时长信息中每个时长信息用于指示所述蓝牙设备处理与所述电子设备之间的交互信息的能力;
基于所述至少一个时长信息,确定所述第一连接参数。
作为本申请的一个示例,所述处理器被配置为:
根据所述第二连接参数接收所述电子设备发送的版本号获取请求,所述版本号获取请求为所述电子设备接收到对所述蓝牙设备的更新操作的情况下发送;
响应于所述版本号获取请求,获取当前版本号,并向所述电子设备发送所述当前版本号;
根据所述第二连接参数接收所述电子设备发送的状态确认请求,所述状态确认请求为所述电子设备根据所述当前版本号确认版本发生更新后发送;
响应于所述状态确认请求,在所述蓝牙设备的运行状态满足升级条件的情况下,向所述电子设备发送确认升级消息;
根据所述第二连接参数接收所述电子设备发送的升级参数获取请求,所述升级参数获取请求为所述电子设备接收到所述确认升级消息的情况下发送;
响应于所述升级参数获取请求,设置升级参数报文,并向所述电子设备返回所述升级参数报文,所述升级参数报文为指示所述电子设备发送升级数据包的报文。
作为本申请的一个示例,所述处理器被配置为:
确定第一时间与第二时间之间的第一时间差,所述第一时间为接收到所述版本号获取请求的时间,所述第二时间为获取到所述当前版本号的时间,所述至少一个时长信息包括所述第一时间差;和/或,
确定第三时间与第四时间之间的第二时间差,所述第三时间为接收到所述状态确认请求的时间,所述第四时间为确定所述运行状态满足升级条件的时间,所述至少一个时长信息包括所述第二时间差;和/或,
确定第五时间与第六时间之间的第三时间差,所述第五时间为接收到所述升级参数确认请求的时间,所述第六时间为设置所述升级参数报文的时间,所述至少一个时长信息包括所述第三时间差。
作为本申请的一个示例,所述至少一个时长信息包括所述第一时间差、所述第二时间差和所述第三时间差;所述第二连接参数中包括第一连接间隔,所述第一连接间隔为所述蓝牙设备与所述电子设备进行所述升级准备交互操作的过程中进行信息交互的最大时间间隔;
所述处理器被配置为:
从所述第一时间差、所述第二时间差和所述第三时间差中获取最大值,得到最大时间差;
将所述最大时间差和所述第一连接间隔中的最大值与预设数值相乘,得到第一相乘结果;
将所述最大时间差和所述第一连接间隔中的最小值与所述预设数值相乘,得到第二相乘结果;
将所述第一相乘结果确定为第二连接间隔,将所述第二相乘结果确定为第三连接间隔,并将所述预设数值确定为第一设备时延,所述第二连接间隔为所述第一连接参数未发生更新的情况下所述电子设备向所述蓝牙设备发送升级数据包的最大时间间隔,所述第三连接间隔为所述第一连接参数未发生更新的情况下所述电子设备向所述蓝牙设备发送升级数据包的最小时间间隔,所述第一设备时延用于在所述第一连接参数未发生更新的情况下限制所述蓝牙设备不响应所述电子设备发送的消息的次数;
将所述预设数值、所述第一设备时延和所述第二连接间隔之间的乘积,确定为最大超时时间;
将所述第二连接间隔、所述第三连接间隔、所述第一设备时延和所述最大超时时间确定为所述第一连接参数。
作为本申请的一个示例,所述处理器被配置为:
在接收升级数据包的过程中,每接收到一个升级数据包,则获取当前接收的升级数据包对应的接收时间,并对当前接收的升级数据包进行解码和存储;
获取对当前接收的升级数据包解码的时间至存储的时间之间的时间差,得到当前接收的升级数据包对应的处理完成时间;
在接收的升级数据包的数量达到指定数量的情况下,或者,在接收升级数据包的时长达到指定时长的情况下,根据所接收的升级数据包对应的接收时间和处理完成时间,分别确定每个升级数据包对应的处理时长;
基于每个升级数据包的处理时长,对所述第一连接参数进行更新。
作为本申请的一个示例,所述处理器还被配置为:
在对所述第一连接参数更新成功的情况下,根据更新后的第一连接参数继续接收所述电子设备发送的升级数据包。
作为本申请的一个示例,所述处理器被配置为:
根据每个升级数据包的处理时长,确定第四连接间隔,所述第四连接间隔为所述第一连接参数发生更新后所述电子设备向所述蓝牙设备发送升级数据包的最大时间间隔;
根据每个升级数据包的接收时间,确定所述电子设备发送的每两个相邻的升级数据包的时间间隔,得到多个发送时间间隔;
确定所述多个发送时间间隔的平均值,得到平均发送间隔;
在所述第四连接间隔大于或等于所述平均发送间隔的情况下,根据所述第四连接间隔和所述平均发送间隔对所述第一连接参数进行更新。
作为本申请的一个示例,所述处理器被配置为:
在所述平均发送间隔大于所述第四连接间隔的情况下,根据所述第四连接间隔和所述平均发送间隔,确定第二设备时延,所述第二设备时延用于在所述第一连接参数发生更新后限制所述蓝牙设备不响应所述电子设备发送的消息的次数;
将所述第四连接间隔和所述第二设备时延发送给所述电子设备;
在接收到参数更改确认消息的情况下,将所述第四连接间隔和所述第二设备时延分别替换所述第一连接参数中的第二连接间隔和第一设备时延,得到更新后的第一连接参数,所述参数更改确认消息为所述电子设备确认能够以所述第四连接间隔和所述第二设备时延进行数据交互的情况下发送。
作为本申请的一个示例,所述处理器被配置为:
在所述平均发送间隔大于所述第四连接间隔的情况下,根据所述第四连接间隔和所述平均发送间隔,通过第一公式确定所述第二设备时延,所述第一公式为:
latency=1+peer_interval/interval
其中,所述为所述第二设备时延,所述为所述平均发送间隔,所述为所述第四连接间隔。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面所述的连接参数的更新方法。
第四方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的连接参数的更新方法。
上述第二方面、第三方面和第四方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1是根据一示例性实施例示出的一种应用场景的示意图;
图2是根据一示例性实施例示出的一种蓝牙设备的结构示意图;
图3是根据一示例性实施例示出的一种蓝牙设备的软件架构示意图;
图4是根据另一示例性实施例示出的一种应用场景的示意图;
图5是根据一示例性实施例示出的一种连接参数的更新方法流程示意图;
图6是根据另一示例性实施例示出的一种应用场景的示意图;
图7是根据一示例性实施例示出的一种确定第一连接参数的方法流程示意图;
图8是根据一示例性实施例示出的一种确定第四连接间隔和第二设备时延的方法流程示意图;
图9是根据另一示例性实施例示出的一种连接参数的更新方法流程示意图;
图10是根据另一示例性实施例示出的一种连接参数的更新方法流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
应当理解的是,本申请提及的“多个”是指两个或两个以上。在本申请的描述中,除非另有说明,“/”表示或的意思,比如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,比如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,为了便于清楚描述本申请的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
随着蓝牙技术的发展,蓝牙设备越来越普遍,比如,智能牙刷、智能手表、智能电子秤等,这些蓝牙设备为人们生活带来很大的便利性,且这些蓝牙设备的功能也能够进行升级,也即是,蓝牙设备能够进行版本升级。目前,蓝牙设备在进行版本升级的情况下,需要与手机等电子设备进行蓝牙连接,然后通过电子设备完成版本升级。其中,在电子设备为手机的情况下,手机1可以通过指定应用程序实现对蓝牙设备2的版本更新,示例性地,参见图1,在蓝牙设备的版本发生更新的情况下,蓝牙设备2对应的第一服务器3可以向指定应用程序对应的第二服务器4发生更新版本的升级数据。第二服务器2在接收到蓝牙设备2的更新版本的升级数据的情况下,可以向手机1发送版本更新消息,手机1在接收到版本更新消息后,若接收到数据下载请求,则手机1可以从第二服务器4中下载更新版本的升级数据。手机1在下载完毕后,可以通过蓝牙协议栈中的连接参数将升级数据以升级数据包的形式持续发送给蓝牙设备2,蓝牙设备在接收到所有升级数据包后,可以基于升级数据包进行版本升级。
由于电子设备将升级数据包持续发送给蓝牙设备的过程中,很可能会因连接参数无法满足升级数据包的传输而出现蓝牙断连的情况,因此,为了减少蓝牙断连的概率,提高蓝牙设备版本升级的成功率,开发人员在蓝牙设备开发阶段可以对蓝牙设备的蓝牙协议栈的连接参数在合理范围内进行调整,以优化连接参数。但是,由于在电子设备与蓝牙设备实际进行数据传输的过程中,电子设备与蓝牙设备的状态随时会发生变化,开发人员调整的蓝牙设备的连接参数也可能无法适应蓝牙设备当前所处的状态,从而也会发生蓝牙断连的情况,进而降低了蓝牙设备版本升级的效率。
为了降低发生蓝牙断连的可能性,也为了提高蓝牙设备版本升级的效率,本申请实施例提供了一种连接参数的更新方法,该方法中,在根据更新前的连接参数持续接收升级数据包的过程中,蓝牙设备可以随时根据对接收的升级数据包的处理能力,对当前的连接参数进行更新。由于能够在传输升级数据包的过程中,动态调整连接参数,从而保证当前的连接参数符合蓝牙设备的传输状态,降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
在对本申请实施例提供的连接参数的更新方法进行详细地解释说明之前,先对本申请实施例涉及的蓝牙设备予以说明。
本申请实施例提供的方法可以由蓝牙设备执行,作为示例而非限定,蓝牙设备可以是但不限于智能手表、手机运动相机(GoPro)、数码相机、车载设备、蜂窝电话、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、门锁、诸如智能冰箱、扫地机器人等智能电器等,本申请实施例对此不作限定。
图2是本申请实施例提供的一种蓝牙设备的结构示意图。参见图2,蓝牙设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serialbus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,传感器模块180,按键190,马达191,指示器192,摄像头193,以及显示屏194等。
可以理解的是,本申请实施例示意的结构并不构成对蓝牙设备100的具体限定。在本申请另一些实施例中,蓝牙设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,比如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是蓝牙设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从该存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口,如可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C接口。处理器110可以通过不同的I2C接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。比如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C接口通信,实现蓝牙设备100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S接口。处理器110可以通过I2S接口与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
UART接口是一种通用串行数据总线,用于异步通信。UART接口可以为双向通信总线。UART接口可以将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。比如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现蓝牙设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现蓝牙设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为蓝牙设备100充电,也可以用于蓝牙设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。USB接口130还可以用于连接其他终端,比如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对蓝牙设备100的结构限定。在本申请另一些实施例中,蓝牙设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过蓝牙设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为蓝牙设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
蓝牙设备100的无线通信功能可以通过天线1,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1用于发射和接收电磁波信号。蓝牙设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
无线通信模块160可以提供应用在蓝牙设备100上的包括蓝牙(bluetooth,BT),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线1接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线1转为电磁波辐射出去。
蓝牙设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,蓝牙设备100可以包括1个或N个显示屏194,N为大于1的整数。
蓝牙设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,比如Micro SD卡,实现扩展蓝牙设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。比如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,计算机可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,来执行蓝牙设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储蓝牙设备100在使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,比如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
蓝牙设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C以及应用处理器等实现音频功能,比如音乐播放,录音等。
按键190包括开机键,音量键等。按键190可以是机械按键,也可以是触摸式按键。蓝牙设备100可以接收按键输入,产生与蓝牙设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。作用于显示屏194不同区域的触摸操作,也可对应不同的振动反馈效果。不同的应用场景(比如:时间提醒,接收信息,闹钟,游戏等),也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
接下来对蓝牙设备100的软件系统予以说明。
蓝牙设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构为例,对蓝牙设备100的软件系统进行示例性说明。
图3是本申请实施例提供的一种蓝牙设备100的软件系统的框图。参见图3,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,蓝牙设备100的软件系统分为五层,从上至下分别为应用程序层,智慧互联(MagicLink)软件开发工具包(Software Development Kit,SDK)层、开源层、适配层和硬件层。
应用程序层可以包括一系列应用程序包。如图3所示,应用程序包可以包括JAVA类应用、C++类应用和C类应用。
MagicLink SDK层用于实现其他设备对蓝牙设备的功能访问,示例性地,在蓝牙设备为智能电子秤的情况下,电子设备与智能电子秤建立蓝牙连接后,电子设备能够从智能电子秤的MagicLink SDK层中获取到相关体重信息、水分含量信息、体脂信息等。另外,该MagicLink SDK层中可以包括一些预先定义的函数。如图3所示,MagicLink SDK层中可以包括接口层、控制模型层、配置管理层、连接管理层和设备安全层。
作为一个示例,接口层可以包括Java接口、C++接口、C接口等用于与应用程序进行通信的接口。控制模型层能够提高数据回调等功能。配置管理层中包括空中下载技术(Over-the-Air Technology,OTA)模块等,该OTA模块用于实现蓝牙设备的版本升级。连接管理层用于管理蓝牙设备以其他设备的连接情况,可以包括连接注册模块。设备安全层用于对设备的数据传输和数据存储进行加密和认证。
开源层用于提供使用第三方应用程序的能力、接口信息等。
适配层用于对蓝牙设备的操作系统进行适配、芯片驱动进行适配,以及配置保存进行适配等。
硬件层中包括蓝牙协议栈,蓝牙协议栈用于实现蓝牙设备与电子设备之间的蓝牙连接。
为了便于理解,在对本申请实施例提供的方法进行详细介绍之前,基于上述实施例提供的执行主体,接下来以电子设备是手机,蓝牙设备为智能手表为例对本申请实施例涉及的应用场景进行介绍。
请参考图4,图4是根据一示例性实施例示出的一种应用场景的示意图。在一种可能的场景中,用户在使用智能手表的过程中,用户为了获知智能手表的版本是否发生更新,用户可以使用与智能手表蓝牙连接的手机查看智能手表是否存在版本更新,并在存在版本更新的情况下通过手机对智能手表进行版本升级。示例性地,参见图4中的(a)图,用户可以点击手机桌面中的智慧空间应用程序;手机响应于对智慧空间应用程序的点击操作,显示如图4中的(b)图所示的智慧空间应用界面,用户可以点击智慧空间应用界面中的设置选项;手机响应于对设置选项的点击操作,显示如图4中的(c)图所示的设置界面,用户可以继续点击设置界面中的固件更新选项;响应于对固件更新选项的点击操作,手机可以显示如图4中的(d)图所示的固件更新界面,该固件更新界面中显示有包括智能手表和智能电子秤的版本情况,该智能手表与智能电子秤均与手机绑定。在智能手表需要进行更新的情况下,用户可以点击智能手表选项栏中的更新选项,而该智能电子秤所在选项栏中未显示更新选项,说明该智能电子秤不存在版本更新;手机响应于对更新选项的点击操作,从智慧空间应用程序对应的服务器中下载对应的升级数据,该升级数据为智能手表对应的服务器预先发送智慧空间应用程序对应的服务器。之后,参见图4中的(e)图,在手机与智能手表蓝牙连接的情况下,手机在与智能手表进行升级准备交互操作后,向智能手表持续发送升级版本包,该升级版本包为将升级数据打包为至少一个数据包后得到。智能手表在接收升级数据包的过程中,可以随时根据接收升级数据包的能力,对当前的连接参数进行更新。
需要说明的是,蓝牙设备与手机绑定是指蓝牙设备与手机已进行蓝牙连接,并配对成功。
在一些实施例中,手机的自动更新功能开启的情况下,智慧空间应用程序对应的服务器在接收到智能手表的服务器发送的升级数据的情况下,无需用户触发,智慧空间应用程序对应的服务器可以直接向手机发送下载请求;手机可以在接收到下载请求的情况下,自动下载任意智能手表的升级数据,并在与智能手表蓝牙连接的情况下,手机在与智能手表的升级准备交互操作完成后,向智能手表持续发送升级版本包。智能手表在接收升级数据包的过程中,可以随时根据接收升级数据包的能力,对当前的连接参数进行更新。
需要说明的是,本申请实施例中仅以上述图4所示的应用场景为例进行说明,并不对本申请实施例构成限定。
基于上述实施例提供的执行主体和应用场景,接下来对本申请实施例提供的连接参数的更新方法进行介绍。请参考图5,图5是根据一示例性实施例示出的一种连接参数的更新方法流程示意图。作为示例而非限定,这里以该方法应用于蓝牙设备中,且蓝牙设备与电子设备交互实现为例进行说明,该方法可以包括如下部分或者全部内容:
步骤501:蓝牙设备与电子设备进行蓝牙连接。
作为一个示例,在蓝牙设备与电子设备已进行过蓝牙连接,且电子设备的蓝牙功能开启的情况下,若蓝牙设备处于电子设备的蓝牙信号覆盖范围内,则蓝牙设备的连接注册模块可以与电子设备自动进行蓝牙连接。
作为一个示例,在蓝牙设备与电子设备未进行过蓝牙连接的情况下,电子设备可以向蓝牙设备发起连接请求。示例性地,参见图6,电子设备中包括连接注册模块,蓝牙设备中同样包括连接注册模块,为了区分两个设备中的模块,本申请实施例中将电子设备中的连接注册模块称为第一连接注册模块,将蓝牙设备中包括连接注册模块称为第二连接注册模块。在电子设备和蓝牙设备的蓝牙功能均开启,且蓝牙设备位于电子设备的蓝牙通信范围的情况下,电子设备可以搜索到蓝牙设备的蓝牙信号;电子设备可以通过第一连接注册模块接收用户设备添加请求;电子设备响应于设备添加请求,显示信息输入界面,该信息输入界面用于输入蓝牙配对信息。示例性地,该蓝牙配对信息可以是用户手动输入,也可以是电子设备扫描蓝牙设备上的二维码后得到。用户可以在配对信息输入完毕后触发配对请求;电子设备响应于设备配对请求,可以基于蓝牙设备的蓝牙信号向蓝牙设备发送该配对请求,该配对请求中携带蓝牙配对信息;蓝牙设备在接收到配对请求后,通过第二连接注册模块对蓝牙配对信息进行验证,并在验证通过后,向蓝牙设备发送验证通过消息。电子设备在接收到验证通过消息后,能够确定已与蓝牙设备绑定,且已进行蓝牙连接。
步骤502:蓝牙设备在与电子设备进行蓝牙连接的过程中,与电子设备进行连接参数的确认。
作为一个示例,蓝牙设备可以将默认连接参数发送给电子设备;电子设备在接收到默认连接参数的情况下,确定默认连接参数是否能够与蓝牙设备进行数据交互,并在确定能够进行数据交互的情况下,向蓝牙设备发送参数确认消息。蓝牙设备接收到参数确认消息的情况下,可以确定默认连接参数为第二连接参数,即后续蓝牙设备能够根据第二连接参数与电子设备进行数据交互。
步骤503:电子设备接收用户触发的更新操作。
示例性地,参见图6,电子设备中还可以包括OTA模块,蓝牙设备中同样可以包括OTA模块,为了区分两个设备中的OTA模块,本申请实施例中将电子设备中的OTA模块称为第一OTA模块,将蓝牙设备中包括OTA模块称为第二OTA模块。电子设备可以通过第一OTA模块接收用户触发的更新操作,并通过与蓝牙设备中的第二OTA模块进行交互实现版本更新。电子设备通过第一OTA模块,以及蓝牙设备通过第二OTA模块实现蓝牙设备版本更新的操作可以参考下述步骤504-步骤537的操作。
示例性地,电子设备接收用户触发的更新操作的场景可以参考上述图4所示的应用场景。
作为一个示例,电子设备在接收到用户触发的更新操作的情况下,说明用户想要对蓝牙设备进行更新,而电子设备在对蓝牙设备进行更新操作之前,电子设备与蓝牙设备之间需要根据第二连接参数进行升级准备交互操作,该升级准备交互操作为蓝牙设备进行版本升级之前的准备操作。另外,在进行升级准备交互操作的过程中,为了保证接收升级数据包的可靠性,避免发生蓝牙断连,蓝牙设备还可以确定至少一个时长信息,该至少一个时长信息中每个时长信息用于指示蓝牙设备处理与电子设备之间的交互信息的能力;之后,蓝牙设备可以基于至少一个时长信息,确定第一连接参数。该第一连接参数相比于第二连接参数更符合蓝牙设备与电子设备之间的传输能力。
需要说明的是,电子设备与蓝牙设备之间的升级准备交互操作,并在进行升级准备交互操作的过程中,蓝牙设备确定至少一个时长信息的操作,以及蓝牙设备基于至少一个时长信息,确定第一连接参数的操作可以参考下述步骤504-步骤529的操作。
步骤504:电子设备响应于用户触发的更新操作,根据第二连接参数向蓝牙设备发送版本号获取请求。
由于电子设备和蓝牙设备在进行蓝牙连接后,确认的连接参数为第二连接参数,因此,电子设备可以根据第二连接参数向蓝牙设备发送版本号获取请求。
在一些实施例中,由于蓝牙设备的版本更新包括蓝牙设备的固件更新和微控制单元(Microcontroller Unit,MCU)更新,因此,电子设备发送的版本号获取请求可以为关于获取固件版本号和MCU版本号的获取请求,也可以为获取固件版本号或MCU版本号的获取请求。也即是,电子设备可以发送一个版本号获取请求,以请求获取蓝牙设备的固件版本号和MCU版本号,也可以分别发送两个版本号获取请求,以分别获取固件版本号和MCU版本号。本申请实施例中以发送一个版本号获取请求,以请求获取固件版本号和MCU版本号为例进行说明。
步骤505:蓝牙设备根据第二连接参数接收版本号获取请求,并确定接收版本号获取请求的第一时间。
需要说明的是,蓝牙设备在确定接收版本号获取请求的第一时间的情况下,可以将第一记录参数赋值为第一时间。
作为一个示例,本申请实施例中蓝牙设备获取的各个时间均为蓝牙设备的系统时间。
步骤506:蓝牙设备获取当前版本号,并确定获取当前版本号的第二时间。
示例性地,由于蓝牙设备中包括第二OTA模块,因此,蓝牙设备可以通过第二OTA模块获取当前版本号。
需要说明的是,蓝牙设备在确定第一时间的情况下,可以将第二记录参数赋值为第二时间。
在一些实施例中,蓝牙设备获取的当前版本号可以包括固件版本号和MUC版本号。
步骤507:蓝牙设备确定第一时间与第二时间之间的第一时间差。
作为一个示例,第一时间差可以用表示,其中,,为第二时间,为第一时间。
需要说明的是,蓝牙时间在确定第一时间差后,可以清空第一记录参数和第二记录参数。
步骤508:蓝牙设备根据第二连接参数向电子设备发送当前版本号。
需要说明的是,本申请实施例中对蓝牙设备执行步骤507和步骤508的顺序不做具体限制。
步骤509:电子设备根据第二连接参数接收当前版本号。
步骤510:电子设备将当前版本号与升级数据包对应的版本号进行比较。
由于电子设备下载的升级数据包的版本号可能与蓝牙设备的前版本号相同,也可能不相同;在升级数据包的版本号与蓝牙设备的当前版本号相同的情况下,无需对蓝牙设备进行版本升级,因此,电子设备可以将当前版本号与升级数据包对应的版本号进行比较。
步骤511:在当前版本号与升级数据包对应的版本号不相同的情况下,电子设备根据第二连接参数向蓝牙设备发送状态确认请求。
由于在升级数据包的版本号与蓝牙设备的当前版本号不相同的情况下,升级数据包的版本号通常高于蓝牙设备的当前版本号,该种情况下,需要进行版本升级。而在进行版本升级操作之前,蓝牙设备的状态需要满足一定的条件,因此,电子设备可以根据第二连接参数向蓝牙设备发送状态确认请求。
步骤512:蓝牙设备根据第二连接参数接收状态确认请求,并确定接收状态确认请求的第三时间。
需要说明的是,由于第一记录参数已被清空,因此,蓝牙设备可以将第一记录参数赋值为第三时间。或者,在第一记录参数未被清空的情况下,可以使用第三时间覆盖第一记录参数原本的赋值。
步骤513:蓝牙设备响应于状态确认请求,获取当前的运行状态。
作为一个示例,蓝牙设备响应于状态确认请求,可以获取当前的空闲存储空间、剩余电量等状态信息。
需要说明的是,空闲存储空间是指未使用的存储空间。
步骤514:蓝牙设备确定当前运行状态是否满足升级条件。
由上述可知,蓝牙设备可以获取当前的空闲存储空间和剩余电量等状态信息,因此,当前运行状态满足升级条件的情况包括:空闲存储空间的大小大于或等于存储阈值,且剩余电量大于或等于电量阈值。
需要说明的是,存储阈值和电量阈值均可以根据需求预先进行设置,该存储阈值可以为蓝牙设备全部存储空间的1/3或1/4等,或者,存储阈值可以为大于所有升级数据包的数据大小之和的值等。电量阈值可以为50%或60%等。
作为一个示例,在空闲存储空间的小于存储阈值,或者,剩余电量小于电量阈值的情况下,确定当前运行状态不满足升级条件。
在一些实施例中,在当前运行状态不满足升级条件的情况下,蓝牙设备可以根据第二连接参数向电子设备发送无法升级消息,且该无法升级消息中携带无法升级的原因,比如,携带空闲存储空间大小不足,和/或,剩余电量不足等信息。电子设备接收到无法升级消息的情况下,可以显示第一提示信息,该第一提示信息用于提示用户蓝牙设备无法升级的原因。
值得说明的是,通过在蓝牙设备的当前运行状态满足升级条件的情况下进行版本升级,从而提高了蓝牙设备进行版本升级的成功率。
步骤515:蓝牙设备在当前运行状态满足升级条件的情况下,获取确定运行状态满足升级条件的第四时间。
作为一个示例,蓝牙设备可以将第二记录参数赋值为第四时间。
需要说明的是,由于第二记录参数已被清空,因此,蓝牙设备可以将第二记录参数赋值为第四时间。或者,在第二记录参数未被清空的情况下,可以使用第四时间覆盖第二记录参数原本的赋值。
步骤516:蓝牙设备确定第三时间与第四时间之间的第二时间差。
作为一个示例,第二时间差可以用表示,其中,,为第四时间,为第三时间。
需要说明的是,蓝牙时间在确定第二时间差后,同样可以清空第一记录参数和第二记录参数。
步骤517:蓝牙设备根据第二连接参数向电子设备发送确认升级消息。
需要说明的是,本申请实施例中对蓝牙设备执行步骤516和步骤517的顺序并不作限定。
步骤518:电子设备根据第二连接参数接收确认升级消息。
步骤519:电子设备根据第二连接参数向蓝牙设备发送升级参数获取请求。
为了能够更高效地传输升级数据包,电子设备需要从蓝牙设备中获取升级参数报文,因此,电子设备可以根据第二连接参数向蓝牙设备发送升级参数获取请求。该升级参数报文为指示电子设备发送升级数据包的报文。
步骤520:蓝牙设备根据第二连接参数接收升级参数获取请求,并确定接收升级参数获取请求的第五时间。
作为一个示例,蓝牙设备可以将第一记录参数赋值为第五时间。
由于第一记录参数已被清空,因此,蓝牙设备可以将第一记录参数赋值为第五时间。或者,在第一记录参数未被清空的情况下,可以使用第五时间覆盖第一记录参数原本的赋值。
步骤521:蓝牙设备响应于升级参数获取请求,设置升级参数报文。
作为一个示例,蓝牙设备响应于升级参数获取请求,可以按照指定格式设置升级参数报文,该升级参数报文中包括电子设备发送数据包的大小、数据包发送间隔、第一OTA模块或第二OTA模块执行超时时间等信息。
步骤522:蓝牙设备确定完成升级参数报文设置的第六时间。
作为一个示例,蓝牙设备可以将第二记录参数赋值为第六时间。
由于第二记录参数已被清空,因此,蓝牙设备可以将第二记录参数赋值为第六时间。或者,在第二记录参数未被清空的情况下,可以使用第六时间覆盖第二记录参数原本的赋值。
步骤523:蓝牙设备确定第五时间与第六时间之间的第三时间差。
作为一个示例,第三时间差可以用表示,其中,,为第六时间,为第五时间。
需要说明的是,蓝牙时间在确定第三时间差后,同样可以清空第一记录参数和第二记录参数。
还需要说明的是,在蓝牙设备与电子设备进行升级准备交互操作的过程中,可以确定第一时间差、第二时间差和第三时间差中的一个或多个,本申请实施例对此不作具体限制,本申请实施例中以确定第一时间差、第二时间差和第三时间差为例进行说明。
值得说明的是,通过在进行升级准备交互操作过程中确定至少一个时长信息,从而充分利用了蓝牙设备与电子设备之间的升级准备交互操作,提高了更新连接参数的便利性。
步骤524:蓝牙设备向电子设备发送升级参数报文。
需要说明的是,本申请实施例对蓝牙设备执行步骤523和步骤524的顺序并不作限定。
步骤525:电子设备接收升级参数报文。
在一种可能的方式中,电子设备在接收到升级参数报文后不会立即向蓝牙设备发送升级数据报文,而是在后续接收到下述第一连接参数后发送。
在另一种可能的方式中,电子设备在接收到升级参数报文后且未接收到下述第一连接参数的情况下,可以基于升级参数报文,根据第二连接参数向蓝牙设备发送升级数据包,并在发送升级数据包的过程中,接收到第一连接参数的情况下,再根据第一连接参数向蓝牙设备发送升级数据包。
步骤526:蓝牙设备根据至少一个时长信息,确定第一连接参数。
值得说明的是,通过在升级准备交互操作过程中确定的至少一个时长信息来确定第一连接参数,可以初步对蓝牙设备与电子设备之间的连接参数进行更新,进一步降低了蓝牙断连问题的发生。
由上述可知,至少一个时长信息包括第一时间差、第二时间差和第三时间差;该第二连接参数中包括第一连接间隔,第一连接间隔为蓝牙设备与电子设备进行升级准备交互操作的过程中进行信息交互的最大时间间隔;如此,蓝牙设备基于至少一个时长信息,确定第一连接参数的操作包括:从第一时间差、第二时间差和第三时间差中获取最大值,得到最大时间差;将最大时间差和第一连接间隔中的最大值与预设数值相乘,得到第一相乘结果;将最大时间差和第一连接间隔中的最小值与预设数值相乘,得到第二相乘结果;将第一相乘结果确定为第二连接间隔,将第二相乘结果确定为第三连接间隔,并将预设数值确定为第一设备时延,第二连接间隔为第一连接参数未发生更新的情况下电子设备向蓝牙设备发送升级数据包的最大时间间隔,该第三连接间隔为第一连接参数未发生更新的情况下电子设备向蓝牙设备发送升级数据包的最小时间间隔,第一设备时延用于在第一连接参数未发生更新的情况下限制蓝牙设备不响应电子设备发送的消息的次数;将预设数值、第一设备时延和第二连接间隔之间的乘积,确定为最大超时时间;将第二连接间隔、第三连接间隔、第一设备时延和最大超时时间确定为第一连接参数。
需要说明的是,预设数值可以根据需求预先进行设置,比如,该预设数值可以为2或3等。
值得说明的是,通过获取最大时间差和第一连接间隔中的最大值,并将最大值与预设数值之间的乘积确定为后续进行升级数据包传输的最大时间间隔,从而为蓝牙设备处理升级数据包提供了充足的时间,保证了升级数据包传输的成功率。
示例性地,为了便于理解蓝牙设备确定第二连接间隔、第一设备时延和最大超时时间的确定过程,本申请实施例提供了一种第一连接参数的确定方式示意图,参见图7,步骤A:蓝牙设备可以确定第一连接间隔为,并获取预设数值C;步骤B:蓝牙设备从第一时间差、第二时间差和第三时间差中获取最大值,得到最大时间差,该过程通过第二公式(2)表示,即(2),其中,第二公式(2)中,为最大时间差。步骤C:蓝牙设备可以确定最大时间差是否大于第一连接间隔;若是,则执行步骤D的操作,若否,则执行步骤E的操作。步骤D:将最大时间差与预设数值相乘,得到第二连接间隔,该过程可以通过第三公式(3)表示,即(3),其中第三公式(3)中,为第二连接间隔。步骤E:将第一连接间隔与预设数值相乘,得到第二连接间隔,该过程可以通过第四公式(4)表示,即 (4)。步骤F:将预设数值确定为第一设备时延,即 (5),其中, 为第一设备时延。步骤G:将预设数值、第一设备时延和第二连接间隔之间的乘积,确定为最大超时时间,该过程可以通过第六公式(6)表示,即
(6),其中,为最大超时时间。
步骤527:蓝牙设备向电子设备发送第一连接参数。
步骤528:电子设备接收第一连接参数。
步骤529:电子设备基于升级参数报文,根据第一连接参数向蓝牙设备持续发送升级数据包。
为了保证蓝牙设备版本升级的成功率,电子设备可以基于升级参数报文,根据第一连接参数向蓝牙设备持续发送升级数据包。其中,每个升级数据包的大小为升级参数报文中设置的数据包的大小。
步骤530:蓝牙设备根据第一连接参数依次接收电子设备发送的升级数据包。
步骤531:蓝牙设备在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新第一连接参数。
为了使得蓝牙设备与电子设备之间的连接参数满足当前的数据传输状态,蓝牙设备每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新第一连接参数。
在一些实施例中,蓝牙设备基于所接收的升级数据包的处理时长,更新第一连接参数的操作包括:基于接收到的所有升级数据包中每个升级数据包的处理时长,更新第一连接参数;或者,基于接收到的所有升级数据包中任意数量的升级数据包中每个升级数据包的处理时长,更新第一连接参数;或者,基于在上一次更新连接参数的更新时间至当前时间之间所接收到的升级数据包中每个升级数据包的处理时长,更新第一连接参数。
作为一个示例,蓝牙设备在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新第一连接参数的操作包括:在接收升级数据包的过程中,每接收到一个升级数据包,则获取当前接收的升级数据包对应的接收时间,并对当前接收的升级数据包进行解码和存储;获取对当前接收的升级数据包解码的时间至存储的时间之间的时间差,得到当前接收的升级数据包对应的处理完成时间;在接收的升级数据包的数量达到指定数量的情况下,或者,在接收升级数据包的时长达到指定时长的情况下,根据所接收的升级数据包对应的接收时间和处理完成时间,分别确定每个升级数据包对应的处理时长;基于每个升级数据包的处理时长,对第一连接参数进行更新。
需要说明的是,指定数量和指定时长均能够根据需求预先进行设置,比如,该指定数量可以为9或10等,指定时长可以为10秒或15秒等。
值得说明的是,通过在接收升级数据包的过程中对第一连接参数进行更新,从而保证当前的连接参数符合蓝牙设备的传输状态,降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
作为一个示例,每个升级数据包的接收时间可以通过 表示,处理完成时间可以通过 表示,则每个升级数据包的处理时长可以通过下述第七公式(7)确定。
time_diff(x)=time_end(x)-time_start(x)
需要说明的是,在上述第七公式(7)中,为处理时长。
作为一个示例,蓝牙设备基于每个升级数据包的处理时长,对第一连接参数进行更新的操作包括:根据每个升级数据包的处理时长,确定第四连接间隔,该第四连接间隔为第一连接参数发生更新后电子设备向蓝牙设备发送升级数据包的最大时间间隔;根据每个升级数据包的接收时间,确定电子设备发送的每两个相邻的升级数据包的时间间隔,得到多个发送时间间隔;确定多个发送时间间隔的平均值,得到平均发送间隔;在第四连接间隔大于或等于平均发送间隔的情况下,根据第四连接间隔和平均发送间隔对第一连接参数进行更新。
由于在第四连接间隔大于或等于平均发送间隔的情况下,说明蓝牙设备处理升级数据包的时间可能会不足,因此,在第四连接间隔大于或等于平均发送间隔的情况下,根据第四连接间隔和平均发送间隔对第一连接参数进行更新。在第四连接间隔小于平均发送间隔的情况下,说明蓝牙设备处理升级数据包的时间充足,因此,无需对第一连接参数进行更新。
值得说明的是,通过将第四连接间隔与平均发送间隔进行比较,在第四连接间隔大于或等于平均发送间隔的情况下,可以对第一连接参数进行更新,以保证蓝牙设备有充足的时间处理升级数据包,避免了蓝牙断连情况的发生。
在一些实施例中,蓝牙设备根据每个升级数据包的处理时长,通过下述第八公式(8)确定第四连接间隔。
需要说明的是,在上述第八公式(8)中, 为最大处理时长, 为第个升级数据包的处理时长, 为升级数据包的个数, 为第四连接间隔。
在一些实施例中,蓝牙设备根据每个升级数据包的接收时间,通过下述第九公式(9)确定电子设备发送的每两个相邻的升级数据包的时间间隔,得到多个发送时间间隔。
peerTime_diff(x)=time_star(x+1)-time_star(x)(9)
需要说明的是,在上述第九公式(9)中, 为发送时间间隔, 为第个升级数据包的接收时间, 为第个升级数据包的接收时间。
在一些实施例中,蓝牙设备通过下述第十公式(10)确定多个发送时间间隔的平均值,得到平均发送间隔。
需要说明的是,在上述第十公式(10)中,为平均发送间隔。
在一些实施例中,蓝牙设备在第四连接间隔大于或等于平均发送间隔的情况下,根据第四连接间隔和平均发送间隔对第一连接参数进行更新的操作包括:在平均发送间隔大于第四连接间隔的情况下,根据第四连接间隔和平均发送间隔,确定第二设备时延,第二设备时延用于在第一连接参数发生更新后限制蓝牙设备不响应电子设备发送的消息的次数;将第四连接间隔和第二设备时延发送给电子设备;在接收到参数更改确认消息的情况下,将第四连接间隔和第二设备时延分别替换第一连接参数中的第二连接间隔和第一设备时延,得到更新后的第一连接参数,该参数更改确认消息为电子设备确认能够以第四连接间隔和第二设备时延进行数据交互的情况下发送。
值得说明的是,在得到更新的第一连接参数后,通过与电子设备基于更新后的第一连接参数进行数据确认,从而能够在后续使用更新后的第一连接参数进行数据交互。
作为一个示例,在平均发送间隔大于第四连接间隔的情况下,蓝牙设备根据第四连接间隔和平均发送间隔,通过第一公式确定第二设备时延,第一公式为:
latency=1+peer_interval/interval (1)
需要说明的是,在上述第一公式(1)中,latency为第二设备时延,peer_interval为平均发送间隔,interval为所述第四连接间隔。
值得说明的是,通过在电子设备发送升级数据包的平均发送间隔基础上设置第二设备延时,从而保证了蓝牙设备处理升级数据包的时长,避免了蓝牙断连情况的发生。
示例性地,为了便于理解,本申请实施例示出了一种确定第四连接间隔和第二设备时延的方法流程示意图。参见图8,蓝牙设备确定第四连接间隔和第二设备时延的操作包括:步骤801:蓝牙设备在接收到10个升级数据包的情况下,获取10个升级数据包中每个升级数据包的接收时间和处理完成时间,其中,10个升级数据包中每个升级数据包的接收时间分别为time_start0-time_start9、10个升级数据包中每个升级数据包的处理完成时间分别为time_end0-time_end9。步骤802:蓝牙设备分别确定10个升级数据包中每个升级数据包的处理时长,该10个升级数据包中米格升级数据包的处理时长分别为time_diff0-time_diff9。步骤803:根据每个升级数据包的处理时长和10个处理时长中最大处理时长,确定第四连接间隔。步骤804:根据每个升级数据包的接收时长,确定10个发送时间间隔。步骤805:确定10个发送时间间隔的平均值,得到平均发送间隔。步骤806:确定平均发送间隔是否大于第四连接间隔;若是,则执行下述步骤807的操作,若否,则执行下述步骤808的操作。步骤807:根据第四连接间隔和平均发送间隔,确定第二设备时延。步骤808:结束本次更新操作(即本次不进行连接参数的更新)。
步骤532:蓝牙设备将更新后的第一连接参数发送至电子设备。
步骤533:电子设备接收更新后的第一连接参数。
步骤534:电子设备确定是否能够以更新后的第一连接参数进行数据交互。
步骤535:在能够以更新后的第一连接参数进行数据交互的情况下,电子设备向蓝牙设备发送参数更改消息。
在一些实施例中,需要说明的是,在确定无法以更新后的第一连接参数进行数据交互的情况下,电子设备可以向蓝牙识别发送更新失败消息。
步骤536:蓝牙设备接收到参数更待消息的情况下,确定以更新后的第一连接参数进行数据交互。
在一些实施例中,若蓝牙设备接收到更新失败消息,则说明对第一连接参数的更新失败,因此,需要继续以第一连接参数与电子设备进行数据交互。
在一些实施例中,在对第一连接参数更新成功的情况下,蓝牙设备可以根据更新后的第一连接参数继续接收电子设备发送的升级数据包。
需要说明的是,电子设备在蓝牙设备更新第一连接参数的过程中,以及在第一连接参数更新失败的情况下,可以继续以第一连接参数向蓝牙设备持续发送升级数据包;在第一连接参数更新成功的情况下,根据更新后的第一连接参数继续向蓝牙设备持续发送升级数据包。也即是,本申请实施例中电子设备在向蓝牙设备发送升级数据包的过程中可以循环执行上述步骤529-步骤536的操作,直至蓝牙设备在接收到电子设备发送的最后一个升级数据包为止。
需要说明的是,电子设备向蓝牙设备发送的最后一个升级数据包中携带校验标识,该校验标识用于指示当前发送的升级数据包为最后一个数据包。
值得说明的是,由于更新后的第一连接参数更符合蓝牙设备当前的传输状态,通过更新后的第一连接参数与电子设备进行数据交互,从而降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
步骤537:蓝牙设备在接收到最后一个升级数据包的情况下,进行数据包完整性校验。
需要说明的是,数据包完整性校验用于校验是否已接收到用于版本升级的所有升级数据包。
作为一个示例,蓝牙设备进行数据包完整性校验的方式可以参考相关技术,比如,蓝牙设备在接收到最后一个升级数据包的情况下,可以计算校验值,并将校验值与升级数据包中的携带的数值进行比较;在二者相同的情况下,确定蓝牙设备校验成功,即蓝牙设备接收到所有升级数据包;在二者不相同的情况下,确定蓝牙设备校验失败,即蓝牙设备未能接收到所有升级数据包。
需要说明的是,校验值可以为SHA256值,也可以为其他值,本申请实施例对此不作具体限制。
步骤538:在校验成功的情况下,蓝牙设备向电子设备发送校验成功消息。
步骤539:电子设备接收校验成功消息,并向蓝牙设备发送升级消息。
作为一个示例,由于蓝牙设备也可能校验失败,在校验失败的情况下,蓝牙设备可以向电子设备发送校验失败消息。电子设备接收到校验失败消息的情况下,则说明在升级数据包传输过程中发生了丢包问题,因此,电子设备可以重新向蓝牙设备持续发送升级数据包。
步骤540:蓝牙设备接收升级消息。
步骤541:蓝牙设备基于接收到的升级数据包进行版本升级。
作为一个示例,蓝牙设备可以基于接收到的所有的升级数据包进行版本升级。
步骤542:蓝牙设备在升级完成后,向电子设备发送升级完成消息。
作为一个示例,电子设备接收到升级完成消息后,还可以显示第二提示信息,该第二提示信息用于提示用户蓝牙设备的版本升级完成。
在本申请实施例中,在根据更新前的连接参数持续接收升级数据包的过程中,蓝牙设备可以随时根据对接收的升级数据包的处理能力,对当前的连接参数进行更新。由于能够在传输升级数据包的过程中,动态调整连接参数,从而保证当前的连接参数符合蓝牙设备的传输状态,降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
在电子设备向蓝牙设备持续发送升级数据包的过程中,电子设备也可以不确定第一连接参数,而是直接根据第二连接参数向蓝牙设备持续发送升级数据包,并在蓝牙设备接收升级数据包的过程中,蓝牙设备对第二连接参数进行更新。请参考图9,图9是根据一示例性实施例示出的一种连接参数的更新方法流程示意图。作为示例而非限定,这里以该方法应用于蓝牙设备中,且蓝牙设备与电子设备进行交互实现为例进行说明,该方法可以包括如下部分或者全部内容:
步骤901-步骤904的操作可以参考上述步骤501-步骤504的操作,本申请实施例对此不再进行一一赘述。
步骤905:蓝牙设备根据第二连接参数接收版本号获取请求。
步骤906:蓝牙设备获取当前版本号。
步骤907-步骤910的操作可以参考上述步骤508-步骤511的操作,本申请实施例对此不再进行一一赘述。
步骤911:蓝牙设备根据第二连接参数接收状态确认请求。
步骤912-步骤913的操作可以参考上述步骤513-步骤514的操作,本申请实施例对此不再进行一一赘述。
步骤914:蓝牙设备在当前运行状态满足升级条件的情况下,根据第二连接参数向电子设备发送确认升级消息。
步骤915-步骤916的操作可以参考上述步骤518-步骤-步骤519的操作。
步骤917:蓝牙设备根据第二连接参数接收升级参数获取请求。
步骤918:蓝牙设备响应于升级参数获取请求,设置升级参数报文。
步骤919:蓝牙设备向电子设备发送升级参数报文。
步骤920:电子设备接收升级参数报文。
步骤921:电子设备基于升级参数报文,根据第二连接参数向蓝牙设备持续发送升级数据包。
步骤922:蓝牙设备根据第二连接参数依次接收电子设备发送的升级数据包。
步骤923:蓝牙设备在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新第二连接参数。
需要说明的是,蓝牙还是别在接收升级数据包的过程中,更新第二连接参数的操作可以参考上述步骤531中更新第一连接参数的操作,本申请实施例对此不再进行一一赘述。
步骤924:蓝牙设备将更新后的第二连接参数发送至电子设备。
步骤925:电子设备接收更新后的第二连接参数。
步骤926:电子设备确定是否能够以更新后的第二连接参数进行数据交互。
步骤927:在能够以更新后的第二连接参数进行数据交互的情况下,电子设备向蓝牙设备发送参数更改消息。
步骤928:蓝牙设备接收到参数更待消息的情况下,确定以更新后的第二连接参数进行数据交互。
步骤929-934步骤的操作可以参考上述步骤537-步骤542的操作,本申请实施例对此不再进行一一赘述。
在本申请实施例中,在根据更新前的连接参数持续接收升级数据包的过程中,蓝牙设备可以随时根据对接收的升级数据包的处理能力,对当前的连接参数进行更新。由于能够在传输升级数据包的过程中,动态调整连接参数,从而保证当前的连接参数符合蓝牙设备的传输状态,降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
由上述可知,蓝牙设备中包括多个模块,蓝牙设备可以通过多个模块进行交互实现连接参数的更新,因此,请参考图10,图10是根据一示例性实施例示出的一种连接参数的更新方法流程示意图。作为示例而非限定,这里以该方法应用于蓝牙设备中,蓝牙设备与电子设备一进行蓝牙连接,且电子设备与蓝牙设备通过图3所示的蓝牙设备中的蓝牙协议栈、适配层和OTA模块交互实现为例进行说明,该方法可以包括如下部分或者全部内容:
步骤1001:电子设备接收用户触发的更新操作。
步骤1002:电子设备响应于更新操作,根据第二连接参数向蓝牙协议栈发送版本号获取请求。
需要说明的是,第二连接参数为电子设备和蓝牙设备在进行蓝牙连接后,确定得到的连接参数。
步骤1003:蓝牙协议栈接收版本获取请求,并将版本获取请求发送至适配层。
步骤1004:适配层接收版本获取请求,并将版本获取请求发送至OTA模块。
步骤1005:OTA模块接收版本获取请求,并向适配层发送第一获取请求。
步骤1006:适配层接收第一获取请求,并获取当前的系统时间,得到第一时间。
步骤1007:适配层向OTA模块发送第一时间。
步骤1008:OTA模块接收第一时间,并获取当前版本号。
步骤1009:OTA模块向适配层发送第二获取请求。
步骤1010:适配层接收第二获取请求,并获取当前的系统时间,得到第二时间。
步骤1011:适配层向OTA模块发送第二时间。
步骤1012:OTA模块接收第二时间,并确定第二时间与第一时间之间的第一时间差。
步骤1013:OTA模块向电子设备发送当前版本号。
步骤1014-步骤1015的操作可以参考上述步骤509-步骤510的操作,本申请实施例对此不再进行一一赘述。
步骤1016:在当前版本号与升级数据包对应的版本号不相同的情况下,电子设备根据第二连接参数向蓝牙协议栈发送状态确认请求。
步骤1017:蓝牙协议栈接收状态确认请求,并向适配层发送状态确认请求。
步骤1018:适配层接收状态确认请求,并将状态确认请求发送至OTA模块。
步骤1019:OTA模块接收状态确认请求,并向适配层发送第三获取请求。
步骤1020:适配层接收第三获取请求,并获取当前的系统时间,得到第三时间。
步骤1021:适配层向OTA模块发送第三时间。
步骤1022:OTA模块接收第三时间,并获取当前的运行状态。
步骤1023:OTA模块确定当前运行状态是否满足升级条件。
需要说明的是,步骤1023的操作可以参考上述步骤514的操作,本申请实施例对此不再进行一一赘述。
步骤1024:OTA模块在当前运行状态满足升级条件的情况下,向适配层发送第四获取请求。
步骤1025:适配层接收第四获取请求,并获取当前的系统时间,得到第四时间。
步骤1026:适配层向OTA模块发送第四时间。
步骤1027:OTA模块接收第四时间,并确定第四时间与第三时间之间的第二时间差。
步骤1028:OTA模块向电子设备发送确认升级消息。
步骤1029:电子设备根据第二连接参数接收确认升级消息。
步骤1030:电子设备根据第二连接参数向蓝牙协议栈发送升级参数获取请求。
步骤1031:蓝牙协议栈接收升级参数获取请求,并向适配层发送升级参数获取请求。
步骤1032:适配层接收升级参数获取请求,并将升级参数获取请求发送至OTA模块。
步骤1033:OTA模块接收升级参数获取请求,并向适配层发送第五获取请求。
步骤1034:适配层接收第五获取请求,并获取当前的系统时间,得到第五时间。
步骤1035:适配层向OTA模块发送第五时间。
步骤1036:OTA模块接收第五时间,并设置升级参数报文。
需要说明的是,步骤1036的操作可以参考上述步骤521的操作,本申请实施例对此不再进行一一赘述。
步骤1037:OTA模块向适配层发送第六获取请求。
步骤1038:适配层接收第六获取请求,并获取当前的系统时间,得到第六时间。
步骤1039:适配层向OTA模块发送第六时间。
步骤1040:OTA模块接收第六时间,并确定第六时间与第五时间之间的第三时间差。
步骤1041:OTA模块向电子设备发送升级参数报文。
步骤1042:电子设备根据第二连接参数接收升级参数报文。
步骤1043:OTA模块基于第一时间差、第二时间差和第三时间差,确定第一连接参数。
需要说明的是,步骤1043的操作可以参考上述步骤526的操作,本申请实施例对此不再进行一一赘述。
步骤1044:OTA模块向电子设备发送第一连接参数。
步骤1045:电子设备接收第一连接参数。
步骤1046:电子设备基于升级参数报文,根据第一连接参数向蓝牙协议栈持续发送升级数据包。
步骤1047:蓝牙协议栈每接收到一个升级数据包,则向适配层发送一个升级数据包。
步骤1048:适配层每接收到一个升级数据包,则向OTA模块发送一个升级数据包。
步骤1049:OTA模块每接收到一个升级数据包,则向适配层发送第七获取请求。
步骤1050:适配层每接收到第七获取请求,则获取系统当时时间,得到第七时间。
需要说明的是,该第七时间为当前接收到升级数据包的接收时间。
步骤1051:适配层向OTA模块发送第七时间。
步骤1052:OTA模块接收第七时间。
步骤1053:OTA模块对当前接收的升级数据包进行解码和存储,并向适配层发送第八获取请求。
步骤1054:适配层每接收到第八获取请求,则获取系统当时时间,得到第八时间。
需要说明的是,该第八时间为当前接收到的升级数据包的处理完成时间。
步骤1055:适配层向OTA模块发送第八时间。
步骤1056:OTA模块接收第八时间。
步骤1057:在接收的升级数据包的数量达到指定数量的情况下,或者,在接收升级数据包的时长达到指定时长的情况下,OTA模块根据所接收的升级数据包对应的接收时间和处理完成时间,分别确定每个升级数据包对应的处理时长。
步骤1058:OTA模块基于每个升级数据包的处理时长,对第一连接参数进行更新。
步骤1059:OTA模块向适配层发送更新后的第一连接参数。
步骤1060:适配层在接收到更新后的第一连接参数的情况下,将该更新后的第一连接参数发送给蓝牙协议栈。
步骤1061:蓝牙协议栈将该更新后的第一连接参数发送给电子设备。
步骤1062:电子设备接收更新后的第一连接参数。
步骤1063:电子设备确定是否能够以更新后的第一连接参数进行数据交互。
步骤1064:在能够以更新后的第一连接参数进行数据交互的情况下,电子设备向蓝牙协议栈发送参数更改消息。
需要说明的是,在确定无法以更新后的第一连接参数进行数据交互的情况下,电子设备可以向蓝牙协议栈发送更新失败消息。
步骤1065:蓝牙协议栈接收到参数更改消息的情况下,确定以更新后的第一连接参数进行数据交互,并将参数更改消息发送至适配层。
作为一个示例,蓝牙协议栈接收到更新失败消息的情况下确定继续以第一连接参数进行数据交互,并将更新失败消息发送至适配层。
步骤1066:适配层接收参数更改消息,并将参数更改消息发送至OTA模块。
步骤1067:OTA模块接收参数更改消息,并确定与电子设备之间的连接参数为更新后的第一连接参数。
作为一个示例,OTA模块接收到参数更改消息的情况下,说明参数更改成功,因此,OTA模块可以确定与电子设备之间的连接参数为更新后的第一连接参数。
作为一个示例,若OTA模块接收到更新失败消息,则说明对第一连接参数的更新失败,因此,需要继续以第一连接参数与电子设备进行数据交互。
需要说明的是,本申请实施例中电子设备在向蓝牙设备发送升级数据包的过程中可以循环执行上述步骤1046-步骤1067的操作,直至蓝牙设备接收到电子设备发送的最后一个升级数据包为止。
步骤1068:OTA模块在接收到最后一个升级数据包的情况下,进行数据包完整性校验。
步骤1069:在校验成功的情况下,OTA模块向电子设备发送校验成功消息。
作为一个示例,OTA模块可以依次通过适配层和蓝牙协议栈向电子设备发送校验成功消息。
步骤1070:电子设备接收校验成功消息,并向蓝牙协议栈发送升级消息。
步骤1071:蓝牙协议栈接收升级消息,并向适配层发送升级消息。
步骤1072:适配层接收升级消息,并向OTA模块发送升级消息。
步骤1073:OTA模块接收升级消息,并基于接收到的升级数据包进行版本升级。
步骤1074:OTA模块在升级完成后,向电子设备发送升级完成消息。
作为一个示例,OTA模块可以依次通过适配层和蓝牙协议栈向电子设备发送升级完成消息。
在本申请实施例中,在根据更新前的连接参数持续接收升级数据包的过程中,蓝牙设备可以随时根据对接收的升级数据包的处理能力,对当前的连接参数进行更新。由于能够在传输升级数据包的过程中,动态调整连接参数,从而保证当前的连接参数符合蓝牙设备的传输状态,降低了蓝牙断连的可能性,提高了蓝牙设备版本升级的效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,比如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(比如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(比如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(比如:软盘、硬盘、磁带)、光介质(比如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(比如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的可选实施例,并不用以限制本申请,凡在本申请的揭露的技术范围之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (12)

1.一种连接参数的更新方法,其特征在于,应用于蓝牙设备中,所述蓝牙设备与电子设备通过蓝牙连接,所述方法包括:
根据第一连接参数依次接收所述电子设备连续发送的升级数据包,升级数据包用于对所述蓝牙设备进行版本升级,所述第一连接参数为进行版本升级之前所述蓝牙设备与所述电子设备之间进行信息传输所使用的连接参数;
在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新所述第一连接参数,一个升级数据包的处理时长为接收所述一个升级数据包的时间至存储所述一个升级数据包的时间的时间段。
2.如权利要求1所述的方法,其特征在于,所述根据第一连接参数依次接收所述电子设备连续发送的升级数据包之前,还包括:
与所述电子设备进行蓝牙连接;
在进行蓝牙连接过程中,通过与所述电子设备进行数据交互确定第二连接参数;
根据所述第二连接参数与所述电子设备进行升级准备交互操作,所述升级准备交互操作为所述蓝牙设备进行版本升级之前的准备操作;
在进行所述升级准备交互操作的过程中,确定至少一个时长信息,所述至少一个时长信息中每个时长信息用于指示所述蓝牙设备处理与所述电子设备之间的交互信息的能力;
基于所述至少一个时长信息,确定所述第一连接参数。
3.如权利要求2所述的方法,其特征在于,所述根据所述第二连接参数与所述电子设备进行升级准备交互操作,包括:
根据所述第二连接参数接收所述电子设备发送的版本号获取请求,所述版本号获取请求为所述电子设备接收到对所述蓝牙设备的更新操作的情况下发送;
响应于所述版本号获取请求,获取当前版本号,并向所述电子设备发送所述当前版本号;
根据所述第二连接参数接收所述电子设备发送的状态确认请求,所述状态确认请求为所述电子设备根据所述当前版本号确认版本发生更新后发送;
响应于所述状态确认请求,在所述蓝牙设备的运行状态满足升级条件的情况下,向所述电子设备发送确认升级消息;
根据所述第二连接参数接收所述电子设备发送的升级参数获取请求,所述升级参数获取请求为所述电子设备接收到所述确认升级消息的情况下发送;
响应于所述升级参数获取请求,设置升级参数报文,并向所述电子设备返回所述升级参数报文,所述升级参数报文为指示所述电子设备发送升级数据包的报文。
4.如权利要求3所述的方法,其特征在于,所述在进行所述升级准备交互操作的过程中,确定至少一个时长信息,包括:
确定第一时间与第二时间之间的第一时间差,所述第一时间为接收到所述版本号获取请求的时间,所述第二时间为获取到所述当前版本号的时间,所述至少一个时长信息包括所述第一时间差;和/或,
确定第三时间与第四时间之间的第二时间差,所述第三时间为接收到所述状态确认请求的时间,所述第四时间为确定所述运行状态满足升级条件的时间,所述至少一个时长信息包括所述第二时间差;和/或,
确定第五时间与第六时间之间的第三时间差,所述第五时间为接收到所述升级参数确认请求的时间,所述第六时间为设置所述升级参数报文的时间,所述至少一个时长信息包括所述第三时间差。
5.如权利要求4所述的方法,其特征在于,所述至少一个时长信息包括所述第一时间差、所述第二时间差和所述第三时间差;所述第二连接参数中包括第一连接间隔,所述第一连接间隔为所述蓝牙设备与所述电子设备进行所述升级准备交互操作的过程中进行信息交互的最大时间间隔;
所述基于所述至少一个时长信息,确定所述第一连接参数,包括:
从所述第一时间差、所述第二时间差和所述第三时间差中获取最大值,得到最大时间差;
将所述最大时间差和所述第一连接间隔中的最大值与预设数值相乘,得到第一相乘结果;
将所述最大时间差和所述第一连接间隔中的最小值与所述预设数值相乘,得到第二相乘结果;
将所述第一相乘结果确定为第二连接间隔,将所述第二相乘结果确定为第三连接间隔,并将所述预设数值确定为第一设备时延,所述第二连接间隔为所述第一连接参数未发生更新的情况下所述电子设备向所述蓝牙设备发送升级数据包的最大时间间隔,所述第三连接间隔为所述第一连接参数未发生更新的情况下所述电子设备向所述蓝牙设备发送升级数据包的最小时间间隔,所述第一设备时延用于在所述第一连接参数未发生更新的情况下限制所述蓝牙设备不响应所述电子设备发送的消息的次数;
将所述预设数值、所述第一设备时延和所述第二连接间隔之间的乘积,确定为最大超时时间;
将所述第二连接间隔、所述第三连接间隔、所述第一设备时延和所述最大超时时间确定为所述第一连接参数。
6.如权利要求1-5中任一项所述的方法,其特征在于,所述在接收升级数据包的过程中,每当根据接收升级数据包的数量或时长确定满足更新检测条件时,基于所接收的升级数据包的处理时长,更新所述第一连接参数,包括:
在接收升级数据包的过程中,每接收到一个升级数据包,则获取当前接收的升级数据包对应的接收时间,并对当前接收的升级数据包进行解码和存储;
获取对当前接收的升级数据包解码的时间至存储的时间之间的时间差,得到当前接收的升级数据包对应的处理完成时间;
在接收的升级数据包的数量达到指定数量的情况下,或者,在接收升级数据包的时长达到指定时长的情况下,根据所接收的升级数据包对应的接收时间和处理完成时间,分别确定每个升级数据包对应的处理时长;
基于每个升级数据包的处理时长,对所述第一连接参数进行更新。
7.如权利要求6所述的方法,其特征在于,所述基于每个升级数据包的处理时长,对所述第一连接参数进行更新之后,还包括:
在对所述第一连接参数更新成功的情况下,根据更新后的第一连接参数继续接收所述电子设备发送的升级数据包。
8.如权利要求6或7所述的方法,其特征在于,所述基于每个升级数据包的处理时长,对所述第一连接参数进行更新,包括:
根据每个升级数据包的处理时长,确定第四连接间隔,所述第四连接间隔为所述第一连接参数发生更新后所述电子设备向所述蓝牙设备发送升级数据包的最大时间间隔;
根据每个升级数据包的接收时间,确定所述电子设备发送的每两个相邻的升级数据包的时间间隔,得到多个发送时间间隔;
确定所述多个发送时间间隔的平均值,得到平均发送间隔;
在所述第四连接间隔大于或等于所述平均发送间隔的情况下,根据所述第四连接间隔和所述平均发送间隔对所述第一连接参数进行更新。
9.如权利要求8所述的方法,其特征在于,所述在所述第四连接间隔大于或等于所述平均发送间隔的情况下,根据所述第四连接间隔和所述平均发送间隔对所述第一连接参数进行更新,包括:
在所述平均发送间隔大于所述第四连接间隔的情况下,根据所述第四连接间隔和所述平均发送间隔,确定第二设备时延,所述第二设备时延用于在所述第一连接参数发生更新后限制所述蓝牙设备不响应所述电子设备发送的消息的次数;
将所述第四连接间隔和所述第二设备时延发送给所述电子设备;
在接收到参数更改确认消息的情况下,将所述第四连接间隔和所述第二设备时延分别替换所述第一连接参数中的第二连接间隔和第一设备时延,得到更新后的第一连接参数,所述参数更改确认消息为所述电子设备确认能够以所述第四连接间隔和所述第二设备时延进行数据交互的情况下发送。
10.如权利要求9所述的方法,其特征在于,所述在所述平均发送间隔大于所述第四连接间隔的情况下,根据所述第四连接间隔和所述平均发送间隔,确定第二设备时延,包括:
在所述平均发送间隔大于所述第四连接间隔的情况下,根据所述第四连接间隔和所述平均发送间隔,通过第一公式确定所述第二设备时延,所述第一公式为:
其中,所述为所述第二设备时延,所述为所述平均发送间隔,所述为所述第四连接间隔。
11.一种蓝牙设备,其特征在于,所述蓝牙设备的结构中包括处理器和存储器;
所述存储器用于存储支持所述蓝牙设备执行如权利要求1-10任意一项所述的方法的程序,以及存储用于实现如权利要求1-10任意一项所述的方法所涉及的数据。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-10任意一项所述的方法。
CN202211643578.XA 2022-12-20 2022-12-20 连接参数的更新方法、蓝牙设备及可读存储介质 Pending CN117202143A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211643578.XA CN117202143A (zh) 2022-12-20 2022-12-20 连接参数的更新方法、蓝牙设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211643578.XA CN117202143A (zh) 2022-12-20 2022-12-20 连接参数的更新方法、蓝牙设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN117202143A true CN117202143A (zh) 2023-12-08

Family

ID=88989395

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211643578.XA Pending CN117202143A (zh) 2022-12-20 2022-12-20 连接参数的更新方法、蓝牙设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117202143A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105978663A (zh) * 2016-05-11 2016-09-28 北京小米移动软件有限公司 数据传输方法及装置
CN112640505A (zh) * 2018-12-22 2021-04-09 华为技术有限公司 一种传输速率的控制方法及设备
CN113157300A (zh) * 2021-05-19 2021-07-23 深圳Tcl新技术有限公司 一种数据处理方法、装置和存储介质
CN114339696A (zh) * 2020-09-30 2022-04-12 华为技术有限公司 蓝牙通信系统、蓝牙连接方法、电子设备及存储介质
CN114422994A (zh) * 2022-03-29 2022-04-29 龙旗电子(惠州)有限公司 固件升级方法、装置及电子设备、存储介质
WO2022143295A1 (zh) * 2021-01-04 2022-07-07 展讯通信(上海)有限公司 固件升级方法和相关设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105978663A (zh) * 2016-05-11 2016-09-28 北京小米移动软件有限公司 数据传输方法及装置
CN112640505A (zh) * 2018-12-22 2021-04-09 华为技术有限公司 一种传输速率的控制方法及设备
CN114339696A (zh) * 2020-09-30 2022-04-12 华为技术有限公司 蓝牙通信系统、蓝牙连接方法、电子设备及存储介质
WO2022143295A1 (zh) * 2021-01-04 2022-07-07 展讯通信(上海)有限公司 固件升级方法和相关设备
CN113157300A (zh) * 2021-05-19 2021-07-23 深圳Tcl新技术有限公司 一种数据处理方法、装置和存储介质
CN114422994A (zh) * 2022-03-29 2022-04-29 龙旗电子(惠州)有限公司 固件升级方法、装置及电子设备、存储介质

Similar Documents

Publication Publication Date Title
WO2022156535A1 (zh) 分布式应用的处理方法和装置
WO2022057558A1 (zh) 一种批量配置家居设备的方法及设备
CN112817634B (zh) Cota包下载方法及装置
KR20150026257A (ko) 액세서리의 정보를 업 데이트하는 전자 장치 및 방법
CN113518331B (zh) 通信方法和装置
CN114461239B (zh) 软件升级系统和软件升级方法
WO2022161024A1 (zh) 升级提示方法、终端设备及计算机可读存储介质
CN117202143A (zh) 连接参数的更新方法、蓝牙设备及可读存储介质
CN113485709B (zh) 应用优化方法、装置以及电子设备
CN111221544B (zh) 一种预装应用软件的管理方法及终端
CN115248693A (zh) 一种应用的管理方法和电子设备
CN117009023B (zh) 显示通知信息的方法及相关装置
CN116700660B (zh) 音频播放方法和电子设备
CN115942253B (zh) 一种提示方法及相关装置
CN117135729B (zh) 多设备协同方法、系统及终端设备
CN116048594B (zh) 软件升级方法及相关装置
CN117013660B (zh) 一种充电图标显示方法及电子设备
WO2024083114A1 (zh) 一种软件分发方法、电子设备及系统
WO2024093795A1 (zh) 一种设备替换的配置方法及装置
WO2023045876A1 (zh) 应用程序安装方法及相关设备
KR101250240B1 (ko) 정보공유 휴대단말기
CN116931802A (zh) 控制方法及中控设备
CN117729561A (zh) 系统升级方法、终端及存储介质
CN117667506A (zh) 一种图库克隆方法、系统和电子设备
CN116560535A (zh) 应用组件管理方法及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination