传输及接收升级文件的方法、系统、智能电视和遥控器的制造方法_2

文档序号:8286297阅读:来源:国知局
到32字节的子文件。本发明实施例中所采用的分割技术可以现有技术中惯用的分割方法,在此不再赘述。
[0033]步骤S22:将各子文件分别封装成对应的数据传输包。
[0034]在此步骤,每个子文件会被封装成一个对应的数据传输包,多个子文件则会被封装成多个对应的数据传输包。
[0035]步骤S23:通过传输协议,将各数据传输包按照预设传输顺序从该智能电视传输到与其配对的遥控器,以供所述遥控器在本地合成所述升级文件进行升级处理。
[0036]优选的是,该传输协议为2.4G传输协议。各数据传输包是以单线程按照传输顺序从该智能电视传输到与其配对的遥控器。
[0037]为了便于后续接收时的校验(以下将于接收升级文件的方法的实施例二中进一步详述),本发明在将各数据传输包从智能电视传输到与其配对的遥控器的同时,或之前,或之后,可先从智能电视发送升级文件总容量的信息给遥控器。还可进一步从智能电视发送数据传输包的数量的信息给遥控器。这两个信息可同时或不同时的发送。此外更进一步地,请参考图3,每一个数据传输包3包括一序列区32、一容量区33、及一数据区34 ;更进一步的,各数据传输包3还包括一标识区31。序列区32除了具有辨识顺序的序列号,还包括有识别位。识别位可供辨识当前的数据传输包是否为最后一个数据传输包。
[0038]标识区31是用来识别该升级文件,发送端(智能电视I)在封装数据传输包3时会将该升级文件的唯一标识(通常是2个字节位的标识)写在标识区31内,这样在接收端(遥控器2)收到数据传输包3,可先辨认标识区31,确认是否为升级文件的数据传输包。
[0039]序列区32可供辨识各个数据传输包的顺序,发送端(智能电视I)在封装数据传输包3时会按照发送顺序为每个数据传输包分配序列号,并将序列号写在每个数据传输包的序列区31内,这样序列号就可以用来区别开这些数据传输包。因为接收端(遥控器2)不一定是顺序收到各数据传输包3,在收到数据传输包后,可以通过序列区辨认接收到的数据传输包是否有重复的,另外还可以通过序列区辨认是否缺少数据传输包,如果缺少还可以通过序列区内的序列号向发送端(智能电视I)请求就相应序列号的数据传输包进行重传。关于校验数据传输包的完整性,将在底下接收升级文件的方法的实施例中再详细说明。
[0040]容量区33则是记录封装后的单个传输数据包的容量大小,这个容量区可以用来校验每一单个传输数据包的完整性。
[0041]数据区34则用于存储分割的子文件的内容数据,这个数据区34内存储的内容数据的大小在本实施例是32字节。
[0042]本发明通过传输升级文件的方法,使得升级文件得以分割成便于完整接收的传输数据包,并可从智能电视完整的传输发送到遥控器,从而使得遥控器可顺利完成升级文件。以下将针对接收升级文件的方法进一步详细说明,并说明如何校验所接收的传输数据包。
[0043]实施例二
[0044]接下来请参考图5,本发明的第二个实施例一一接收升级文件的方法,其包含:
[0045]步骤S51:通过无线网络接收多个通过预设的传输协议传输的数据传输包。
[0046]优选的是,各数据传输包是通过2.4G传输协议从该智能电视以单线程传输到配对的遥控器。然而,本发明的多个数据传输包并非限制于从该智能电视传输到配对的遥控器,也就是,多个数据传输包亦可从智能手机或电脑传输到配对的遥控器。本实施例优选的是单线程依序接收上述第一实施例分割后封包的数据传输包,也就是各个数据传输包是由32字节(byte)的分割子文件封装而成,每一个数据传输包3包括一序列区32、一容量区33、及一数据区34,其功能如上所述,故不再重复赘述。
[0047]接下来需要判断数据传输包是否接收完整。这里的完整接收有两层含义,其一是每个传输数据包是否完整接收,其二是所有的数据传输包是否都已接收。下面首先检测的是在接收到单个传输数据包时,单个传输数据包是否完整接收。
[0048]执行步骤S52:判断当前接收到的数据传输包是否接收完整。
[0049]在此步骤中,在接收到数据传输包时,首先对当前接收到的数据传输包的标识区31进行检测,辨认当前接收到的数据传输包是否升级文件的数据传输包。如果通过标识区31检测发现当前接收到的数据传输包不是升级文件的数据传输包,说明当前接收到的数据传输包没有完整接收,则执行步骤S58。
[0050]在此步骤中,在接收到数据传输包时,还要判断所接收的数据传输包的实际大小与数据传输包的容量区中标称的容量是否相符。也就是,发送端(智能电视)在发送数据传输包前会先计算数据传输包的容量(大小)并先写入数据传输包的容量区,接收时接收端(遥控器)也是先计算所接收到的数据传输包的实际容量(大小),然后与容量区内标称的容量(大小)相比较。如果当判断数据传输包的容量与容量区的容量(大小)不相同,就表示数据传输包没有完整地被接收,则执行步骤S58。
[0051]如果通过标识区31检测发现当前接收到的数据传输包是升级文件的数据传输包,且所接收的数据传输包的实际大小与数据传输包的容量区中标称的容量相符,说明当前接收到的数据传输包是升级文件的数据传输包,且当前接收到的数据传输包完整地被接收,则执行步骤S521。
[0052]步骤S58:丢弃所述未完整接收的数据传输包(如果是缺少数据传输包没有被接收,则无需丢弃),并向发送端(智能电视)请求重新传输未完整接收的数据传输包。发出的请求中携带该数据传输包序列区32内的序列号,以便发送端(智能电视)知道该重发哪一个数据传输包。然后返回步骤S51,接收端(遥控器2)再次接收重发的数据传输包。
[0053]步骤S521:暂存数据传输包,并执行步骤S53。
[0054]在遥控器的暂存存储区,暂存接收到的经过步骤S52的完整验证的数据传输包。
[0055]步骤S53:判断是否完全接收所有的数据传输包。
[0056]依据数据传输包3的序列区32来判断,也就是,所述序列区32更包含识别位,用来标示最后一个数据传输包。。因此,接收端收到数据传输包可从序列区32来判断是否为最后一个。利用单线程顺序传输,当所接收的数据传输包为最后一个数据传输包,就表示所有的数据传输包都已被完成接收。
[0057]当然还有一种情况,在单线程顺序传输过程中,会有丢包或者发生错误的情况,这种情况下往往需要重传,因此导致传输有可能不是按照顺序的,而是打乱的,此时仅仅凭借发送端在打包最后一个数据传输包在序列区32所作的记录去检测是否完整传输是不足够的,因为不能确认是否这个数据传输包之后是否还有尚未重传的数据传输包。因此需要对遥控器的暂存存储区对所有接收到并暂存的数据传输包进行检测,检测这些数据传输包的序列号是否连续完整,并且以在序列区32有“最后一个”识别位的数据传输包作为结束。例如,最后一个数据传输包的序列区32的识别位设为“0”,其他数据传输包的序列区32的识别位设为“I”。如果这些数据传输包的序列号是连续完整,则可以确保完全接收所有的数据传输包。同时通过上述检测这些数据传输包的序列号是否连续完整的过程,还可以将序列号重复的数据传输包找出,并通过对数据传输包的数据内容进行验证从而将真正重复的数据传输包去重。
[0058]如果步骤S53判断为“否”,并没有完全接收所有的数据传输包,说明可能当前并没有接收到在序列区32作有“最后一个”识别位的数据传输包,显然此时数据传输包还没有传输完,也有可能是虽然接收到了在序列区32作有“最后一个”识别位的数据传输包,但是通过检测发现丢失了一些数据传输包,此时需要请求对丢失的数据传输包进行重传,则执行步骤S58。
[0059]如果步骤S53判断为“是”,确保完全接收所有的数据传输包,则执行步骤S54。
[0060]步骤S54:合并所有的数据传输包,在该遥控器形成升级文件。
[0061]将在遥控器侧暂存存储区中的数据传输包解析为相应的子文件,并根据解析得到的所有子文件进行合并,将其组合形成升级文件。
[0062]步骤S55:对步
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1