一种双向数字电视升级方法与流程

文档序号:16520273发布日期:2019-01-05 09:55阅读:289来源:国知局

本发明涉及数字电视升级技术领域,特别涉及一种双向数字电视升级方法。



背景技术:

随着互联网时代的到来,越来越多的电视机或机顶盒支持网络功能(后续统称数字电视)。具备双向通信功能的数字电视,简称双数字电视。在其性能越来越高,功能越来越丰富的同时软件也变得越来越大,而且升级也越来越频繁。因此升级功能变得越来越重要,升级的效率也成为数字电视运营商关注的重点。每次大范围、大批量升级,都是对运行商升级服务器的考验。



技术实现要素:

本发明的目的是克服上述背景技术中不足,提供一种双向数字电视升级方法,可有效解决大批量数字电视升级的效率低问题,特别是对于电视系统中分区较多,且每个分区内分区文件也较多的情况下,可显著提升数字电视升级的效率。

为了达到上述的技术效果,本发明采取以下技术方案:

一种双向数字电视升级方法,包括以下步骤:

a.定义升级包结构;

a1.定义升级触发包;

a2.定义升级文件内容校验包;

a3.定义升级文件包;

b.生成升级包;

c.进入升级流程:

c1.服务器广播升级触发包、升级文件内容校验包;

c2.数字电视接收到广播升级触发包、升级内容校验包,并处理;

c3.数字电视向服务器申请升级文件包;

c4.数字电视校验升级内容并进行软件升级更新;

c5.服务器统计升级结果,并进行数据分析。

进一步地,所述步骤a1中定义升级触发包时具体包括定义以下内容:固定长度升级触发包标志字符串,包长度,硬件版本,升级软件版本、软件版本判断模式、软件版本差值、升级总台数,开始序列号、结束序列号,服务器地址、升级类型、升级文件包个数、分区个数、n个分区描述子、crc校验位,其中,所述n个分区描述子具体为分区描述子1至分区描述子n。

进一步地,所述包长度为硬件版本到包结束的长度,包括文件包结尾的crc校验位长度;

所述crc校验位校验的区域为包开始到分区描述子n,校验时具体对这个区间的内容进行crc计算;

所述软件版本判断模式中定义:0表示不判断软件版本直接升级;1表示机顶盒软件版本加软件版本差值等于待升级版本;2表示机顶盒软件版本减去软件版本差值等于待升级版本;

所述升级类型中定义:0表示前台强制升级,1表示后台强制升级,2表示前台非强制升级,3表示后台非强制升级;

所述分区描述子包括分区id号,分区名字,分区文件模式,升级文件个数;其中,所述分区文件模式中定义0为单文件分区,1为多文件系统分区。

进一步地,所述步骤a2中定义升级文件内容校验包是具体包括定义以下内容:固定长度升级文件内容校验包标志字符串、包长度、分区个数、n个分区校验描述子、crc校验位,其中,所述n个分区校验描述子具体为分区校验描述子1至分区校验描述子n。

进一步地,所述包长度的字段包括分区个数加上crc校验位长度;crc校验位校验包开头到分区校验描述子n;

所述分区校验描述子包括分区id、分区名字、升级文件总个数、n个文件校验描述子,所述n个文件校验描述子具体包括文件校验描述子1至文件校验描述子n;其中,所述文件校验描述子包括文件名长度、文件名、文件路径长度、文件路径、压缩后的文件长度、压缩后的文件crc校验值、原始文件长度、原始文件crc校验值。

进一步地,所述步骤a3中定义升级文件包时具体包括定义以下内容:固定长度升级文件包标志字符串、包长度、升级包序号、分区id、分区名字、分区文件模式、升级文件总个数、包文件模式、当前文件序号、包文件个数、n个包文件描述子、包文件1数据至包文件n数据、crc校验;其中,所述n个包文件描述子包括包文件描述子1至包文件描述子n。

进一步地,所述升级包序号对升级触发包中的升级文件包个数相对应,所述分区文件模式中定义0为单文件分区,1为多文件系统分区;所述升级文件总个数与分区校验描述子中的升级文件总个数相同;

所述包文件模式中定义:0表示多文件组合,1表示单文件切割,所述包文件个数是基于包文件模式,当包文件模式为0,表示该包下有n个升级文件,当包文件模式为1,表示该包下的一个升级文件s被切割成了n个小文件,后续跟随的包文件描述子只有1个,且描述子内的文件序号为升级文件s的子段,且序号为1、2…n;

所述包文件描述子包括文件序号、文件名长度、文件名、文件路径长度、文件路径、压缩后的文件长度、压缩后的文件crc、原始文件长度、原始文件crc、子段数据长度、子段crc、文件开始位置;其中,当所述包文件模式为1时,子段数据长度、子段crc这两个字段才生效,所述文件开始位置为压缩文件数据在整个升级文件包里的偏移位置,当包文件模式为1时,文件开始位置为子段数据的偏移位置。

进一步地,所述步骤b中生成升级包是使用服务器端的工具对各个分区的升级文件进行封包处理,具体包括:先设置每个升级包的大小;然后对各个分区的要升级的文件按大小进行组合,并按照升级文件包中的定义,将一些小的文件组合成一个升级文件包,然后将超大的文件拆分成符合要求的多个升级文件包;

在封包过程中记录升级文件内容校验包中定义的各字段信息,将所有分区的文件封包完成后,生成升级文件内容校验包;

然后通过工具进行需要升级的数字电视的硬件版本,升级软件版本、软件版本判断模式、软件版本差值、升级总台数,开始序列号、结束序列号,服务器地址、升级类型;然后根据封包结果得到升级文件总个数以及各分区的升级描述子信息再计算出crc值,最后生成升级触发包。

进一步地,所述步骤c1具体包括:将广播升级触发包、升级文件内容校验包、升级文件包导入服务器;服务器循环向全网广播升级触发包以及升级文件内容校验包;并等待数字电视发出请求;

所述步骤c2具体包括:数字电视启动专门的进程去监控对应的端口,当检测到服务器广播的升级触发包及即捕获并分析出内容,然后根据升级触发包中定义的各字段来判断数字电视是否符合升级要求;若符合升级要求,则捕获升级内容校验包,并分析出内容;若在一定时间内未捕获到升级内容校验包,则略过升级内容校验包,并在步骤c3中向服务器申请升级内容校验包,服务器则单独将升级内容校验包发送给数字电视;

所述步骤c3具体包括:

c3.1数字电视向服务器申请获取升级文件包:其中,申请分为两种模式:第一种为模糊申请,第二种为精确申请;

c3.2服务器接收到数字电视的请求,分析出请求的内容;如果是模糊申请,则根据服务器资源情况,优先发送瞬时请求量少的升级文件包,后续发送请求量大的升级文件包,使服务器资源处于相对均衡状态;如果是精确申请某个升级文件包,且同时又有其他数字电视端模糊申请该升级文件包,则优先发送该升级文件包给精确申请的客户端,后续发该升级文件包给模糊申请的客户端;

c3.3数字电视向服务器申请升级文件包后,则开始获取服务器发送回来的升级文件包,然后对升级文件包按升级文件包中的定义,反向将各分区的升级文件提取出来;若长时间收不到某个升级文件包,则向服务器发送精确申请,然后继续接收升级文件包;

c3.4若仍然收不到数据,则结束升级文件包接收,向服务器发送升级失败的原因及结果,并结束升级;

c3.5在收到所有升级文件包后,首先对数据进行自身的准确性验证,包括分区个数、各分区下的升级文件个数、包内的文件长度、文件crc的验证,其次根据升级文件包的定义,对升级文件包进行分析,提取出压缩状态的各分区的升级文件,并与升级文件内容校验包内定义的数据进行比对,若数据不一致,则结束升级文件包接收,向服务器发送升级失败的原因及结果,并结束升级;

若文件数据均一致,则将压缩文件进行解压缩,得到原始状态的升级文件,并与升级文件内容校验包里的原始文件信息进行比对,若数据不一致,则结束升级文件包接收,向服务器发送升级失败的原因及结果,并结束升级;若数据一致则进入步骤c4;

c4.更新新软件:

软件更新按照分区进行,并根据分区文件模式信息得到分区文件的具体写入方法;若分区为多文件系统分区,则根据升级文件问题的路径,去替换原有路径下的对应文件,所有文件更新完成后,发送升级成功信息给服务器,在确定服务器收到信息后,重启数字电视。

c5.服务器统计升级结果,并进行升级数据分析:

服务器将各数字电视客户端反馈回来的升级结果信息进行统计、分析,生成升级结果反馈表。

本发明与现有技术相比,具有以下的有益效果:

本发明的双向数字电视升级方法中,通过制定数字电视升级包规则,以分区为基准,将各分区下的升级内容按找步骤a制定的规则进行打包,将零散的小文件打包成一个大小适合的大文件包,将容量超大的文件分割成指定大小的小文件包来进行传送;由此缓解数字电视频繁的向服务器申请小文件或者向服务请申请超大文件造成服务器资源紧张的问题,同时,采用模糊申请和精准申请相结合的方式向服务器申请升级文件包,使服务器能更有效率的使用其资源,从而提升升级效率。

具体实施方式

下面结合本发明的实施例对本发明作进一步的阐述和说明。

实施例:

一种双向数字电视升级方法,具体可用于解决数字电视软件升级内容多、升级频繁、升级效率低的问题,其具体实施包括以下步骤:

a.定义升级包结构;升级包分为三种包:升级触发包、升级文件内容校验包、升级文件包,故步骤a具体包括:

a1.定义升级触发包结构;

升级触发包具体包括以下字段内容:固定长度升级触发包标志字符串,包长度,硬件版本,升级软件版本、软件版本判断模式、软件版本差值、升级总台数,开始序列号、结束序列号,服务器地址、升级类型、升级文件包个数、分区个数、分区描述子1、分区描述子2……分区描述子n、crc校验位。

其中,升级触发包的包长度为硬件版本到包结束的长度,包括文件包结尾的crc校验位长度;升级触发包的crc校验位校验的区域为包开始到分区描述子n,对这个区间的内容进行crc计算。

在本实施例中具体在定义升级触发包的软件版本判断模式时有以下定义:当软件版本判断模式为0时即表示不判断软件版本,直接升级,当软件版本判断模式为1时即表示机顶盒软件版本加软件版本差值等于待升级版本,当软件版本判断模式为2时即表示机顶盒软件版本减去软件版本差值等于待升级版本。

对应的,在本实施例中,升级触发包的升级类型中具有如下定义:

升级类型为0时表示前台强制升级,通过界面告知用户机器必须升级,进入升级流程;开始接收升级数据,并显示进度,然后更新升级软件再重启(此过程用户无法选择);

升级类型为1时表示后台强制升级,后台接收升级数据,接收数据不提示用户,直到升级数据准备完毕,再提示用户进行升级;并显示进度,然后更新升级软件再重启(此过程用户无法选择);

升级类型为2时表示前台非强制升级,此时需要提示用户需要升级,用户可做如下选择,立即升级(同升级类型0)、下次开机升级(进入数据接受,并显示接收进度,接受完成不更新,在下次开机时更新软件)、不升级。

升级类型为3时表示后台非强制升级,后台接收升级数据,接收数据不提示用户,直到升级数据准备完毕,再提示用户进行升级。用户可以选择立即升级和下次开机升级和不升级。

具体的,升级触发包的分区个数表示该次升级涉及的分区总个数,升级触发包的分区描述子则包括分区id号,分区名字,分区文件模式,升级文件个数;其中,在分区文件模式中具有以下定义:

分区文件模式为0时表示为单文件分区,如boot,kernel等非文件系统分区(只读文件系统作为单文件处理);分区文件模式为1时表示为多文件系统分区,如非只读文件系统ubi文件系统等。

a2.定义升级文件内容校验包结构;

升级文件内容校验包具体包括以下字段内容:固定长度升级文件内容校验包标志字符串,包长度,分区个数,分区校验描述子1,分区校验描述子2……分区校验描述子n,crc校验位,包长度字段包括分区个数加上crc校验位长度;crc校验位校验包开头到分区校验描述子n。

其中,升级文件内容校验包的分区校验描述子包括分区id,分区名字,升级文件总个数,文件校验描述子1至文件校验描述子n。

具体的,文件校验描述子中具体包括文件名长度、文件名、文件路径长度、文件路径、压缩后的文件长度、压缩后的文件crc校验值、原始文件长度、原始文件crc校验值。

a3.定义升级文件包结构;

升级文件包具体包括以下字段内容:固定长度升级文件包标志字符串,包长度,升级包序号,分区id,分区名字,分区文件模式,升级文件总个数,包文件模式,当前文件序号,包文件个数,包文件描述子1……包文件描述子n,包文件1数据(压缩后)…包文件n数据,crc校验。

其中,定义升级文件包的升级包序号时其序号与步骤a1中的升级文件包个数相对应,定义升级文件包的分区文件模式也与步骤a1中分区文件模式的定义相同,即分区文件模式为0时表示为单文件分区,如boot,kernel等非文件系统分区(只读文件系统作为单文件处理);分区文件模式为1时表示为多文件系统分区,如非只读文件系统ubi文件系统等。

定义升级文件包的升级文件总个数时与步骤a2中定义分区校验描述子下的升级文件总个数相同,即定义即1个分区下有多少个文件需要更新;定义升级文件包的包文件模式时具体如下:

包文件模式为0时表示是多文件组合(可以是1个文件也可以是多个文件),包文件模式为1时表示是单文件切割(即将1个很大的文件切割成多个小文件,并切放到不同的升级文件包,且一个升级文件包可能包含多个升级文件,也可以是一个被切割的文件的一部分)。

定义升级文件包的当前文件序号时需具体应升级文件总个数,且为该定义升级文件包下的第一个文件的序号。本实施例中假设当前文件号为s。定义升级文件包的包文件个数时是基于升级文件包的包文件模式:

如当包文件模式为0,表示该包下有n个升级文件;后续跟随的包文件描述子有n跟,且描述子内的文件序号为正常的升级文件,且文件序号为s,s+1……s+n-1;

当包文件模式为1,文件s被切割成了n个小文件;后续跟随的包文件描述子只有1个,且描述子内的文件序号为文件s的子段,且序号为1,2…n;(2到n在后续的升级文件包内,升级包序号+1到升级包序号+n-1)。

定义升级文件包的包文件描述子时,在包文件描述子中具体包括:文件序号,文件名长度,文件名,文件路径长度,文件路径,压缩后的文件长度,压缩后的文件crc,原始文件长度,原始文件crc,子段数据长度、子段crc、文件开始位置。

其中,文件序号具体见升级文件包的包文件个数描述;子段数据长度、子段crc则是在当包文件模式为1为时,这两个字段才生效;文件开始位置则具体是压缩文件数据在整个升级文件包里的偏移位置,当包文件模式为1为时,该字段为子段数据的偏移位置。

定义升级文件包的包文件数据时具体是定义需要升级的文件被压缩后的数据,此处需要注意的是,当包文件模式为1时,包文件数据只有一个;即一个文件需要切割时,那么这个文件所有切割的子段都将使用1个单独升级文件包,且包文件数据为子段数据。

b.升级包生成:

使用服务器端工具对各个分区的升级文件进行封包处理。工具先设置每个升级文件包的大小;然后对各个分区的要升级的文件按大小进行组合,按照步骤a3的定义,将一些小的文件组合成一个升级文件包,然后将超大的文件拆分成符合要求的多个升级文件包。

在封包过程中记录步骤a2定义的各字段信息,将所有分区的文件封包完成后,生成升级文件内容校验包。

升级触发包的生成:通过工具进行需要升级的数字电视的硬件版本,升级软件版本、软件版本判断模式、软件版本差值、升级总台数,开始序列号、结束序列号,服务器地址、升级类型;然后根据封包结果得到升级文件总个数以及各分区的升级描述子信息再计算出crc值,最后生成升级触发包。

c.升级流程:

根据步骤a定义的升级类型信息,确实是否界面提示用户,然后进入数据接收流程。

c1.服务器端广播升级触发包、升级文件内容校验包;

将广播升级触发包、升级文件内容校验包、所有升级文件包导入服务器;服务器循环向全网广播升级触发包以及升级文件内容校验包;升级触发包频率高,内容校验包频率;然后服务器等待数字电视发出来请求。

c2.数字电视接收到广播升级触发包、升级内容校验包并处理;

数字电视启动后有专门的进程去监控对应的端口,档检测到服务器广播的升级触发包,将该报捕获,并分析出内容,然后根据本机的硬件版本、软件版本等步骤a1定义各字段来判断本机是否符合升级要求;若符合升级要求,则捕获升级内容校验包,并分析出内容;若在一定时间内未捕获到升级内容校验包,则略过该包,在步骤c3中向服务器申请该包,服务器则单独将升级内容校验包发送给本机。

c3.数字电视向服务器申请升级文件包;

c3.1数字电视向服务器申请获取升级文件包;

申请分为两种模式:1.模糊申请,即向服务器申请一个范围内的包,比如申请升级包序号为1~100的包;2.精确申请,如数字电视在明确的发现自己还需要那个升级包,则通过升级包序号向服务器请求该包数据(可以一次请求多个序号明确的数据包);

c3.2服务器接收到数字电视的请求,分析出请求的内容;

如果是模糊申请,则根据服务器资源情况,优先发送瞬时请求量少的包,后续发送请求量大的包,使服务器资源处于相对均衡状态;如果是精确申请某个包,且同时又有其他客户端模糊申请该包,则优先发送该包给精确申请的客户端,后续发该包给模糊申请的客户端;

c3.3数字电视向服务器申请升级文件包后,则开始获取服务器发送回来的升级包,然后对升级包按步骤a3的定义,反向将各分区的升级文件提取出来;若长时间收不到某个包,则向服务器发送精确申请,然后继续接收升级包;

c3.4若仍然收不到数据,则结束升级包接收,向服务器发送升级失败的原因及结果,并结束升级;

c3.5在收到所有包,那么首先对数据进行自身的准确性验证,包括分区个数、各分区下的升级文件个数、包内的文件长度、文件crc等验证,确保收到的是一个准确的升级包;其次在说有包收齐后,按照步骤a3定义,对包进行分析,提取出的压缩状态的各分区的升级文件(包括还原被切割的文件),并与步骤a2定义的升级文件内容校验包里相关的数据进行比对,若错误则按c3.4处理(即结束升级包接收,向服务器发送升级失败的原因及结果,并结束升级);若文件都正确,则将压缩文件进行解压缩,得到原始状态的升级文件,并与升级文件内容校验包里的原始文件信息进行比对,若错误则按c3.4处理((即结束升级包接收,向服务器发送升级失败的原因及结果,并结束升级));若正确则进入步骤c4.

c4.更新新软件:

数据接收完成后再次根据步骤a定义的升级类型信息,提示用户选择。无论立即升级升级还是开机升级,均需要进行软件更新。

软件更新安找分区进行,并根据分区文件模式信息得到分区文件的具体写入方法;通常单文件分区的操作方法为将整个分区擦除,然后写入该分区的文件;若分区为多文件系统分区,则根据升级文件问题的路径,去替换原有路径下的对应文件。所有文件更新完成后,发送升级成功信息给服务器,在确定服务器收到信息后,重启数字电视。

c5.服务器端统计升级结果,并进行若升级数据分析:

在升级一定的时间后,服务器将各数字电视客户端反馈回来的升级结果信息进行统计、分析,生成升级结果反馈表。

综上可知,本发明的双向数字电视升级方法中,通过制定数字电视升级包规则,以分区为基准,将各分区下的升级内容按找步骤a制定的规则进行打包,将零散的小文件打包成一个大小适合的大文件包,将容量超大的文件分割成指定大小的小文件包来进行传送;由此缓解数字电视频繁的向服务器申请小文件或者向服务请申请超大文件造成服务器资源紧张的问题,同时,采用模糊申请和精准申请相结合的方式向服务器申请升级文件包,使服务器能更有效率的使用其资源,从而提升升级效率。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1