蓝牙固件的升级方法、电视终端及计算机可读存储介质与流程

文档序号:12305016阅读:470来源:国知局
蓝牙固件的升级方法、电视终端及计算机可读存储介质与流程
本发明涉及通信
技术领域
,尤其涉及一种蓝牙固件的升级方法、电视终端及计算机可读存储介质。
背景技术
:目前互联网的电视越来越流行,而随着蓝牙功能普及,蓝牙功能已成为电视基础配备功能,电视的蓝牙可以连接很多外部设备,例如,蓝牙语音遥控器,蓝牙音箱,蓝牙鼠标键盘等。从蓝牙4.0开始,支持了蓝牙低功耗的设备,即bluetoothlowenergy,简称ble。这种技术的特点是,超低功耗,低成本,短距离,可互操作的鲁棒性,目前很多的可穿戴设备都是基于ble技术设计,如:手环,心率计等。现有的蓝牙ble设备程序都是出厂的时候写死在内置flash里面的,若需要升级,则需要发回原厂或者到指定的售后地升级,导致ble设备固件升级的时效性和智能型差。上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:本发明的主要目的在于提供一种蓝牙固件的升级方法、电视终端及计算机可读存储介质,旨在解决现有的蓝牙ble设备程序都是出厂的时候写死在内置flash里面的,若需要升级,则需要发回原厂或者到指定的售后地升级,导致ble设备固件升级的时效性和智能型差的问题。为实现上述目的,本发明提供的一种蓝牙固件的升级方法,所述蓝牙固件的升级方法包括以下步骤:当电视终端与所述蓝牙设备连接后,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式;在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求;当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。优选地,所述在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求的步骤包括:在所述蓝牙设备重启后,所述电视终端根据预先设置的固件升级mac地址发出广播信息重新建立与所述蓝牙设备的连接;在成功的重新建立连接后,所述电视终端基于重新建立的连接获取所述蓝牙设备的固件升级请求。优选地,所述当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级的步骤包括:当获取到所述蓝牙设备的固件升级请求后,所述电视终端读取所述设备固件升级请求携带的特征属性,为所述电视终端与所述蓝牙设备之间配置描述符以使所述蓝牙设备启动与所述电视终端间的应答功能;当所述蓝牙设备启动与所述电视终端间的应答功能后,所述电视终端在接收到所述蓝牙设备的应答结果后,向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。优选地,所述蓝牙固件的升级方法,还包括:当电视终端与所述蓝牙设备连接后,所述电视终端检测所述蓝牙设备的类型是否与下载的固件升级数据包中的蓝牙设备类型一致;在一致时,执行所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式的步骤。优选地,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式的步骤之后,还包括:所述电视终端获取所述蓝牙设备的剩余电量值;在所述剩余电量值小于或等于预设电量阈值时,所述电视终端发出更换蓝牙设备的电池或者进行充电操作提示信息;在所述剩余电量值大于预设电量阈值时,执行在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求的步骤。优选地,所述当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级的步骤之后,还包括:当所述蓝牙设备接收完所述固件升级数据包后,所述电视终端向所述蓝牙设备发送校验指令,以使所述蓝牙设备校验接收的所述固件升级数据包;当所述升级固件升级数据包校验有效后,所述电视终端发送激活新固件和重启指令至所述蓝牙设备,以使所述蓝牙设备断开与所述电视终端的连接,使用所述固件升级数据包重启,完成升级操作。优选地,所述当电视终端与所述蓝牙设备连接后,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式的步骤之前,还包括:当所述电视终端与云端连接后,所述电视终端获取所述云端中的所述蓝牙设备固件的版本信息;判断获取的所述蓝牙设备固件的版本信息是否与所述电视终端保存的所述蓝牙设备固件的版本信息一致;当获取的所述蓝牙设备固件的版本信息与所述电视终端保存的所述蓝牙设备固件的版本信息不一致时,所述电视终端从所述云端下载所述蓝牙设备的固件升级数据包,并根据所述固件升级数据包完成电视终端的蓝牙固件升级。为实现上述目的,本发明还提供一种电视终端,所述电视终端包括:存储器、处理器及存储在所述存储器并可在所述处理器上运行的蓝牙固件的升级程序,所述蓝牙固件的升级程序被所述处理器执行时实现如上述所述的蓝牙固件的升级方法的步骤。为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质包括蓝牙固件的升级程序,所述蓝牙固件的升级程序被处理器执行时实现如权利要求如上述所述的蓝牙固件的升级方法的步骤。本发明在电视终端与蓝牙设备建立连接后,先控制蓝牙设备进入无线升级模式,然后再控制蓝牙设备进入固件升级模式,通过电视终端先下载固件升级数据包来完成蓝牙设备的固件升级,无需返厂或者到指定售后地点升级固件,提高了固件升级的效率和智能化程度。附图说明图1是本发明实施例方案涉及的硬件运行环境的电视终端结构示意图;图2为本发明蓝牙固件的升级方法的第一实施例的流程示意图;图3为图2中步骤s20的细化流程示意图;图4为图2中步骤s30的细化流程示意图;图5为本发明蓝牙固件的升级方法的第二实施例的流程示意图;图6为本发明蓝牙固件的升级方法的第三实施例的流程示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,图1是本发明实施例方案涉及的硬件运行环境的电视终端结构示意图。如图1所示,本实施例中的电视终端可以包括:处理器1001,例如cpu,存储器1003,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。存储器1003可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1003可选的还可以是独立于前述处理器1001的存储装置。可选地,电视终端还可以包括摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在移动电视终端移动到耳边时,关闭显示屏和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电视终端姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;当然,电视终端还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。所述电视终端优选为智能电视,也还可以是其他具有蓝牙功能的电子设备。本领域技术人员可以理解,图1中示出的电视终端结构并不构成对电视终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1003中可以包括云端检测模块、判断模块、查找模块、控制模块以及蓝牙固件的升级程序。在图1所示的电视终端中,处理器1001可以用于调用存储器1003中存储的蓝牙固件的升级程序,并执行以下操作:当电视终端与所述蓝牙设备连接后,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式;在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求;当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:在所述蓝牙设备重启后,所述电视终端根据预先设置的固件升级mac地址发出广播信息重新建立与所述蓝牙设备的连接;在成功的重新建立连接后,所述电视终端基于重新建立的连接获取所述蓝牙设备的固件升级请求。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:当获取到所述蓝牙设备的固件升级请求后,所述电视终端读取所述设备固件升级请求携带的特征属性,为所述电视终端与所述蓝牙设备之间配置描述符以使所述蓝牙设备启动与所述电视终端间的应答功能;当所述蓝牙设备启动与所述电视终端间的应答功能后,所述电视终端在接收到所述蓝牙设备的应答结果后,向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:当电视终端与所述蓝牙设备连接后,所述电视终端检测所述蓝牙设备的类型是否与下载的固件升级数据包中的蓝牙设备类型一致;在一致时,执行所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式的步骤。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:所述电视终端获取所述蓝牙设备的剩余电量值;在所述剩余电量值小于或等于预设电量阈值时,所述电视终端发出更换蓝牙设备的电池或者进行充电操作提示信息;在所述剩余电量值大于预设电量阈值时,执行在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求的步骤。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:当所述蓝牙设备接收完所述固件升级数据包后,所述电视终端向所述蓝牙设备发送校验指令,以使所述蓝牙设备校验接收的所述固件升级数据包;当所述升级固件升级数据包有效后,所述电视终端发送激活新固件和重启指令至所述蓝牙设备,以使所述蓝牙设备断开与所述电视终端的连接,使用所述固件升级数据包重启,完成升级操作。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:当所述电视终端与云端连接后,所述电视终端获取所述云端中的所述蓝牙设备固件的版本信息;判断获取的所述蓝牙设备固件的版本信息是否与所述电视终端保存的所述蓝牙设备固件的版本信息一致;当获取的所述蓝牙设备固件的版本信息与所述电视终端保存的所述蓝牙设备固件的版本信息不一致时,所述电视终端从所述云端下载所述蓝牙设备的固件升级数据包,并根据所述固件升级数据包完成电视终端的蓝牙固件升级。参照图2,图2为本发明蓝牙固件的升级方法的第一实施例,所述蓝牙固件的升级方法包括:步骤s10,当电视终端与所述蓝牙设备连接后,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式;本发明实施例的蓝牙设备可以是蓝牙音箱、蓝牙语音遥控器、蓝牙鼠标键盘灯等外围设备,蓝牙设备也可以是手环、心率计等蓝牙低功耗设备(蓝牙ble设备);蓝牙设备中含有ota区域,用于存放电视终端向蓝牙设备发送的固件升级数据包,蓝牙设备还含有正常的固件区域(usercode),蓝牙设备可以启动usercode区域的固件使得蓝牙设备进入工作状态。在电视终端与蓝牙设备连接后,电视终端会获取蓝牙设备的固件版本信息,然后电视终端会判断获取的蓝牙设备固件的版本信息与其保存的该蓝牙设备固件的版本信息是否一致,在一致时,无需对蓝牙设备固件进行升级,在不一致时,需要对蓝牙设备固件进行升级。蓝牙设备有2种工作模式,一种是正常的工作模式,此模式下有包含ota服务的相关信息,将蓝牙设备在正常工作下的相关服务定义为ota服务;另一种是升级模式,具体为dfu模式(设备固件升级模式),将蓝牙设备在dfu模式下的相关服务定义为dfu服务。当电视终端与所述蓝牙设备连接后,所述电视终端检测所述蓝牙设备的类型是否与下载的固件升级数据包中的蓝牙设备类型一致;在一致时,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式。在不一致时,结束流程,意味着蓝牙设备无需进行固件升级操作。为了更好的保证蓝牙设备的升级操作,在本发明一实施例中,当所述电视终端与云端连接后,所述电视终端获取所述云端中的所述蓝牙设备固件的版本信息;判断获取的所述蓝牙设备固件的版本信息是否与所述电视终端保存的所述蓝牙设备固件的版本信息一致;当获取的所述蓝牙设备固件的版本信息是否与所述电视终端保存的所述蓝牙设备固件的版本信息不一致时,所述电视终端从所述云端下载所述蓝牙设备的固件升级数据包,并根据所述固件升级数据包完成电视终端的蓝牙固件升级。当电视终端检测到云端部署了心的ble固件ota版本时,电视终端会下载含有最新的固件的otaapk到电视终端中,同时根据ota升级策略启动整个ota升级流程,对电视终端的蓝牙固件进行升级,即每当云端部署有最新的蓝牙设备固件版本,电视终端在连接云端后,会根据保存的蓝牙设备固件信息静默下载该蓝牙设备的最新固件版本,所以电视终端保存的蓝牙设备的固件版本是高于或等于蓝牙设备的固件版本。步骤s20,在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求;在所述蓝牙设备重启后,为了避免正常情况下也进行固件升级数据包的发送,需要重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求。在本发明一实施例中,参考图3,所述在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求的步骤包括:步骤s21,在所述蓝牙设备重启后,所述电视终端根据预先设置的固件升级mac地址发出广播信息重新建立与所述蓝牙设备的连接;步骤s22,在成功的重新建立连接后,所述电视终端基于重新建立的连接获取所述蓝牙设备的固件升级请求。在ble设备进入ota模式后,会以新的mac地址发送特定广播,即以根据预先设置的固件升级mac地址发出广播信息,特定广播中会带正常模式下的mac地址,以便电视终端与此ble设备建立连接,电视终端接收到特定广播后,判断广播中正常模式下的mac地址是否已配对过,若已配对过建立连接,与ble设备建立连接。在成功的重新建立连接后,所述电视终端基于重新建立的连接获取所述蓝牙设备的固件升级请求。蓝牙设备在进入ota模式后,会广播特殊的数据包出来,向电视终端广播的数据的时间最长可达60秒,若电视终端在该广播时间内没有连接蓝牙设备,蓝牙设备会重启与电视终端连接进入正常工作模式;蓝牙设备广播的数据格式可为如下格式:上述表格中的data3为厂商数据,厂商数据格式为:companyidoriginalbtaddress2bytes6bytes0x5d,0x000xxx,0xxx,0xxx,0xxx,0xxx,0xxx蓝牙设备响应电视终端的指令的数据格式可为:lengthadtypedata11byte1byte6byte0x070x09‘b’,‘e’,‘e’,‘t’,‘g’,‘t’步骤s30,当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。当获取到所述蓝牙设备的固件升级请求后,传送固件升级数据包至所述蓝牙设备。传送过程中,可对所述固件升级数据包加密,采用的加密算法可以是aes256算法,也可以是其他加密算法,电视终端每次以固定字节向蓝牙设备传输固件升级数据包,固定字节可以是任意合适的数据,如20字节等。当蓝牙设备接收完固件升级数据包后,所述电视终端控制电视终端断开与蓝牙设备的连接,以使蓝牙设备进行升级。固件升级数据包被存储于蓝牙设备的ota区域,即固件升级数据包的数据被写入ota区域(蓝牙设备会对加密的固件升级数据包进行解密后再写入ota区域),当ota区域写完固件升级数据包的数据后,蓝牙设备对ota区域的数据进行校验,当ota区域的数据校验有效时,蓝牙设备会将ota的数据搬移到usercode区域,然后对usercode区域搬移的数据进行校验检查数据搬移过程是否有数据丢失,当usercode区域的搬移数据通过校验后,蓝牙设备完成固件升级,蓝牙设备完成升级后重启,以新的固件版本运行并与电视终端连接。由上可知,蓝牙设备的固件在升级的时候,蓝牙设备是不会进行工作的,所以需要将蓝牙设备与电视终端断开连接再进行固件的升级。本实施例提供的技术方案中,在电视终端与蓝牙设备建立连接后,先控制蓝牙设备进入无线升级模式,然后再控制蓝牙设备进入固件升级模式,通过电视终端先下载固件升级数据包来完成蓝牙设备的固件升级,无需返厂或者到指定售后地点升级固件,提高了固件升级的效率和智能化程度。参照图4,在本发明一实施例中,基于上述实施例,所述当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级的步骤包括:步骤s31,当获取到所述蓝牙设备的固件升级请求后,所述电视终端读取所述设备固件升级请求携带的特征属性,为所述电视终端与蓝牙设备之间配置描述符以使所述蓝牙设备启动与所述电视终端间的应答功能;步骤s32,当所述蓝牙设备启动与所述电视终端间的应答功能后,所述电视终端在接收到所述蓝牙设备的应答结果后,向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。设备固件升级服务(dfu服务)含有二个特征属性,为dfucp(设备固件升级服务的控制点服务特征)和dfudata(设备固件升级服务的传送数据服务特征),dfucp用来控制蓝牙固件的升级行为,dfudata用于传输固件升级数据包;电视终端通过gatt通信协议查找并读取dfudata后(电视终端通过uuid查找、读取dfu服务及其特征属性),会对蓝牙设备写一个合适的客户配置描述符(clientconfigdescriptor),用来应答电视终端发送的指令,即每次蓝牙设备接收到电视终端的指令后,都会通过客户配置描述符应答给电视终端;设备设备固件升级服务的二个服务特征、客户配置描述符的uuid为:dfu服务的uuid00006287-3c17-d293-8e48-14fe2e4da212dfucp的uuid00006487-3c17-d293-8e48-14fe2e4da212dfudata的uuid00006387-3c17-d293-8e48-14fe2e4da212clientconfigdescriptor的uuid00002902-0000-1000-8000-00805f9b34fb蓝牙设备每次接收电视终端的数据的后,都会通过客户描述符向电视终端反馈固件升级数据包的接收情况,使得电视终端能够及时的准备下一次的固件升级数据包的传输。电视终端会对每次传输的固件升级数据包进行加密。本实施例提供的技术方案中,电视终端通过读取设备设备固件升级服务的属性特征来启动蓝牙设备的应答功能,使得蓝牙设备可以将接收到的电视终端指令的处理结果及时反馈给电视终端,缩短了蓝牙固件的升级时间。参照图5,在本发明一实施例中,所述蓝牙固件的升级方法,还包括:步骤s40,所述电视终端获取所述蓝牙设备的剩余电量值;步骤s50,在所述剩余电量值小于或等于预设电量阈值时,所述电视终端发出更换蓝牙设备的电池或者进行充电操作提示信息;步骤s60,在所述剩余电量值大于预设电量阈值时,执行在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求的步骤。预设电量阈值可以是蓝牙设备总电量的50%、60%或其他任意合适的数值;当蓝牙设备的电量不足时,需要更换蓝牙设备的电池或者对蓝牙设备进行充电,然后再进行固件升级。当蓝牙设备的电量满足其升级所需电量的限制的电量阈值时,蓝牙设备才进行后续的固件升级步骤。本实施例提供的技术方案中,电视终端通过检测蓝牙设备的电量,确保蓝牙设备的固件升级不会被中断。参照图6,在本发明一较佳实施例中,所述步骤s30之后,还包括:步骤s70,当所述蓝牙设备接收完所述固件升级数据包后,所述电视终端向所述蓝牙设备发送校验指令,以使所述蓝牙设备校验接收的所述固件升级数据包;蓝牙设备的校验方法可以是crc校验法、奇偶校验法等。步骤s80,当所述升级固件升级数据包校验有效后,所述电视终端发送激活新固件和重启指令至所述蓝牙设备,以使所述蓝牙设备断开与所述电视终端的连接,使用所述固件升级数据包重启,完成升级操作。通过上述方式校验成功后,所述电视终端接收蓝牙设备反馈的固件升级数据包校验成功的反馈信息后,所述电视终端发送激活新固件和重启指令至所述蓝牙设备,以使所述蓝牙设备断开与所述电视终端的连接,使用所述固件升级数据包重启,完成升级操作。本实施例提供的技术方案中,蓝牙设备通过对接收的固件升级数据包的校验,确保了接收的固件升级数据包是完整的,从而确保了蓝牙设备固件升级能够正常进行。本发明进一步提供了一种蓝牙设备固件的升级装置,所述蓝牙设备固件的升级装置包括:存储器、处理器及存储在存储器并可在处理器上运行的蓝牙设备固件的升级程序,蓝牙设备固件的升级程序被处理器执行时实现以下步骤:步骤s10,当电视终端与所述蓝牙设备连接后,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式;本发明实施例的蓝牙设备可以是蓝牙音箱、蓝牙语音遥控器、蓝牙鼠标键盘灯等外围设备,蓝牙设备也可以是手环、心率计等蓝牙低功耗设备(蓝牙ble设备);蓝牙设备中含有ota区域,用于存放电视终端向蓝牙设备发送的固件升级数据包,蓝牙设备还含有正常的固件区域(usercode),蓝牙设备可以启动usercode区域的固件使得蓝牙设备进入工作状态。在电视终端与蓝牙设备连接后,电视终端会获取蓝牙设备的固件版本信息,然后电视终端会判断获取的蓝牙设备固件的版本信息与其保存的该蓝牙设备固件的版本信息是否一致,在一致时,无需对蓝牙设备固件进行升级,在不一致时,需要对蓝牙设备固件进行升级。蓝牙设备有2种工作模式,一种是正常的工作模式,此模式下有包含ota服务的相关信息,将蓝牙设备在正常工作下的相关服务定义为ota服务;另一种是升级模式,具体为dfu模式(设备固件升级模式),将蓝牙设备在dfu模式下的相关服务定义为dfu服务。当电视终端与所述蓝牙设备连接后,所述电视终端检测所述蓝牙设备的类型是否与下载的固件升级数据包中的蓝牙设备类型一致;在一致时,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式。在不一致时,结束流程,意味着蓝牙设备无需进行固件升级操作。为了更好的保证蓝牙设备的升级操作,在本发明一实施例中,当所述电视终端与云端连接后,所述电视终端获取所述云端中的所述蓝牙设备固件的版本信息;判断获取的所述蓝牙设备固件的版本信息是否与所述电视终端保存的所述蓝牙设备固件的版本信息一致;当获取的所述蓝牙设备固件的版本信息是否与所述电视终端保存的所述蓝牙设备固件的版本信息不一致时,所述电视终端从所述云端下载所述蓝牙设备的固件升级数据包,并根据所述固件升级数据包完成电视终端的蓝牙固件升级。当电视终端检测到云端部署了心的ble固件ota版本时,电视终端会下载含有最新的固件的otaapk到电视终端中,同时根据ota升级策略启动整个ota升级流程,对电视终端的蓝牙固件进行升级,即每当云端部署有最新的蓝牙设备固件版本,电视终端在连接云端后,会根据保存的蓝牙设备固件信息静默下载该蓝牙设备的最新固件版本,所以电视终端保存的蓝牙设备的固件版本是高于或等于蓝牙设备的固件版本。步骤s20,在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求;在所述蓝牙设备重启后,为了避免正常情况下也进行固件升级数据包的发送,需要重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求。在本发明一实施例中,参考图3,所述在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求的步骤包括:步骤s21,在所述蓝牙设备重启后,所述电视终端根据预先设置的固件升级mac地址发出广播信息重新建立与所述蓝牙设备的连接;步骤s22,在成功的重新建立连接后,所述电视终端基于重新建立的连接获取所述蓝牙设备的固件升级请求。在ble设备进入ota模式后,会以新的mac地址发送特定广播,即以根据预先设置的固件升级mac地址发出广播信息,特定广播中会带正常模式下的mac地址,以便电视终端与此ble设备建立连接,电视终端接收到特定广播后,判断广播中正常模式下的mac地址是否已配对过,若已配对过建立连接,与ble设备建立连接。在成功的重新建立连接后,所述电视终端基于重新建立的连接获取所述蓝牙设备的固件升级请求。蓝牙设备在进入ota模式后,会广播特殊的数据包出来,向电视终端广播的数据的时间最长可达60秒,若电视终端在该广播时间内没有连接蓝牙设备,蓝牙设备会重启与电视终端连接进入正常工作模式;蓝牙设备广播的数据格式可为如下格式:上述表格中的data3为厂商数据,厂商数据格式为:companyidoriginalbtaddress2bytes6bytes0x5d,0x000xxx,0xxx,0xxx,0xxx,0xxx,0xxx蓝牙设备响应电视终端的指令的数据格式可为:lengthadtypedata11byte1byte6byte0x070x09‘b’,‘e’,‘e’,‘t’,‘g’,‘t’步骤s30,当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。当获取到所述蓝牙设备的固件升级请求后,传送固件升级数据包至所述蓝牙设备。传送过程中,可对所述固件升级数据包加密,采用的加密算法可以是aes256算法,也可以是其他加密算法,电视终端每次以固定字节向蓝牙设备传输固件升级数据包,固定字节可以是任意合适的数据,如20字节等。当蓝牙设备接收完固件升级数据包后,所述电视终端控制电视终端断开与蓝牙设备的连接,以使蓝牙设备进行升级。固件升级数据包被存储于蓝牙设备的ota区域,即固件升级数据包的数据被写入ota区域(蓝牙设备会对加密的固件升级数据包进行解密后再写入ota区域),当ota区域写完固件升级数据包的数据后,蓝牙设备对ota区域的数据进行校验,当ota区域的数据校验有效时,蓝牙设备会将ota的数据搬移到usercode区域,然后对usercode区域搬移的数据进行校验检查数据搬移过程是否有数据丢失,当usercode区域的搬移数据通过校验后,蓝牙设备完成固件升级,蓝牙设备完成升级后重启,以新的固件版本运行并与电视终端连接。由上可知,蓝牙设备的固件在升级的时候,蓝牙设备是不会进行工作的,所以需要将蓝牙设备与电视终端断开连接再进行固件的升级。本实施例提供的技术方案中,在电视终端与蓝牙设备建立连接后,先控制蓝牙设备进入无线升级模式,然后再控制蓝牙设备进入固件升级模式,通过电视终端先下载固件升级数据包来完成蓝牙设备的固件升级,无需返厂或者到指定售后地点升级固件,提高了固件升级的效率和智能化程度。参照图4,在本发明一实施例中,基于上述实施例,所述当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级的步骤包括:步骤s31,当获取到所述蓝牙设备的固件升级请求后,所述电视终端读取所述设备固件升级请求携带的特征属性,为所述电视终端与蓝牙设备之间配置描述符以使所述蓝牙设备启动与所述电视终端间的应答功能;步骤s32,当所述蓝牙设备启动与所述电视终端间的应答功能后,所述电视终端在接收到所述蓝牙设备的应答结果后,向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。设备固件升级服务(dfu服务)含有二个特征属性,为dfucp(设备固件升级服务的控制点服务特征)和dfudata(设备固件升级服务的传送数据服务特征),dfucp用来控制蓝牙固件的升级行为,dfudata用于传输固件升级数据包;电视终端通过gatt通信协议查找并读取dfudata后(电视终端通过uuid查找、读取dfu服务及其特征属性),会对蓝牙设备写一个合适的客户配置描述符(clientconfigdescriptor),用来应答电视终端发送的指令,即每次蓝牙设备接收到电视终端的指令后,都会通过客户配置描述符应答给电视终端;设备设备固件升级服务的二个服务特征、客户配置描述符的uuid为:蓝牙设备每次接收电视终端的数据的后,都会通过客户描述符向电视终端反馈固件升级数据包的接收情况,使得电视终端能够及时的准备下一次的固件升级数据包的传输。电视终端会对每次传输的固件升级数据包进行加密。本实施例提供的技术方案中,电视终端通过读取设备设备固件升级服务的属性特征来启动蓝牙设备的应答功能,使得蓝牙设备可以将接收到的电视终端指令的处理结果及时反馈给电视终端,缩短了蓝牙固件的升级时间。参照图5,在本发明一实施例中,所述蓝牙固件的升级方法,还包括:步骤s40,所述电视终端获取所述蓝牙设备的剩余电量值;步骤s50,在所述剩余电量值小于或等于预设电量阈值时,所述电视终端发出更换蓝牙设备的电池或者进行充电操作提示信息;步骤s60,在所述剩余电量值大于预设电量阈值时,执行在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求的步骤。预设电量阈值可以是蓝牙设备总电量的50%、60%或其他任意合适的数值;当蓝牙设备的电量不足时,需要更换蓝牙设备的电池或者对蓝牙设备进行充电,然后再进行固件升级。当蓝牙设备的电量满足其升级所需电量的限制的电量阈值时,蓝牙设备才进行后续的固件升级步骤。本实施例提供的技术方案中,电视终端通过检测蓝牙设备的电量,确保蓝牙设备的固件升级不会被中断。参照图6,在本发明一较佳实施例中,所述步骤s30之后,还包括:步骤s70,当所述蓝牙设备接收完所述固件升级数据包后,所述电视终端向所述蓝牙设备发送校验指令,以使所述蓝牙设备校验接收的所述固件升级数据包;蓝牙设备的校验方法可以是crc校验法、奇偶校验法等。步骤s80,当所述升级固件升级数据包校验有效后,所述电视终端发送激活新固件和重启指令至所述蓝牙设备,以使所述蓝牙设备断开与所述电视终端的连接,使用所述固件升级数据包重启,完成升级操作。通过上述方式校验成功后,所述电视终端接收蓝牙设备反馈的固件升级数据包校验成功的反馈信息后,所述电视终端发送激活新固件和重启指令至所述蓝牙设备,以使所述蓝牙设备断开与所述电视终端的连接,使用所述固件升级数据包重启,完成升级操作。本实施例提供的技术方案中,蓝牙设备通过对接收的固件升级数据包的校验,确保了接收的固件升级数据包是完整的,从而确保了蓝牙设备固件升级能够正常进行。本发明进一步提供了一种计算机可读存储介质,所述计算机可读存储介质存储有蓝牙固件的升级程序,所述蓝牙固件的升级程序被处理器执行时实现以下步骤:当电视终端与所述蓝牙设备连接后,所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式;在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求;当获取到所述蓝牙设备的固件升级请求后,所述电视终端向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:在所述蓝牙设备重启后,所述电视终端根据预先设置的固件升级mac地址发出广播信息重新建立与所述蓝牙设备的连接;在成功的重新建立连接后,所述电视终端基于重新建立的连接获取所述蓝牙设备的固件升级请求。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:当获取到所述蓝牙设备的固件升级请求后,所述电视终端读取所述设备固件升级请求携带的特征属性,为所述电视终端与所述蓝牙设备之间配置描述符以使所述蓝牙设备启动与所述电视终端间的应答功能;当所述蓝牙设备启动与所述电视终端间的应答功能后,所述电视终端在接收到所述蓝牙设备的应答结果后,向所述蓝牙设备传送固件升级数据包,以使所述蓝牙设备根据接收的固件升级数据包进行固件的升级。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:当电视终端与所述蓝牙设备连接后,所述电视终端检测所述蓝牙设备的类型是否与下载的固件升级数据包中的蓝牙设备类型一致;在一致时,执行所述电视终端获取所述蓝牙设备的无线升级请求,并根据所述无线升级请求内的特征信息设置重启指令,以控制所述蓝牙设备重启进入无线升级模式的步骤。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:所述电视终端获取所述蓝牙设备的剩余电量值;在所述剩余电量值小于或等于预设电量阈值时,所述电视终端发出更换蓝牙设备的电池或者进行充电操作提示信息;在所述剩余电量值大于预设电量阈值时,执行在所述蓝牙设备重启后,所述电视终端重新建立与所述蓝牙设备的连接,并基于重新建立的连接获取所述蓝牙设备的固件升级请求的步骤。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:当所述蓝牙设备接收完所述固件升级数据包后,所述电视终端向所述蓝牙设备发送校验指令,以使所述蓝牙设备校验接收的所述固件升级数据包;当所述升级固件升级数据包有效后,所述电视终端发送激活新固件和重启指令至所述蓝牙设备,以使所述蓝牙设备断开与所述电视终端的连接,使用所述固件升级数据包重启,完成升级操作。进一步的,所述蓝牙固件的升级程序被处理器执行时还实现以下步骤:当所述电视终端与云端连接后,所述电视终端获取所述云端中的所述蓝牙设备固件的版本信息;判断获取的所述蓝牙设备固件的版本信息是否与所述电视终端保存的所述蓝牙设备固件的版本信息一致;当获取的所述蓝牙设备固件的版本信息与所述电视终端保存的所述蓝牙设备固件的版本信息不一致时,所述电视终端从所述云端下载所述蓝牙设备的固件升级数据包,并根据所述固件升级数据包完成电视终端的蓝牙固件升级。所述的计算机可读存储介质中的蓝牙固件的升级程序步骤的具体执行过程参考上述电视终端的各个实施例的具体描述,在此不再一一赘述。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1