发明内容
本发明的主要目的在于提供一种云台固件升级的方法,旨在降低云台固件升级成本,及简化升级操作,并保证成功,从而避免由于升级失败而导致云台系统瘫痪的问题。
为实现上述目的,本发明提供一种云台固件升级的方法,包括以下步骤:
PC端运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级;
在云台固件升级过程中,所述PC端检测所述云台固件升级程序的运行状态;
当所述PC端检测到云台固件升级程序运行中断时,获取所述云台在中断时刻最后写入的有效数据的有效地址所在页;
PC端根据所述有效地址所在页获取中断前未传输的升级文件数据,将所述中断前未传输的数据传输给所述云台。
优选地,获取所述云台在中断时刻最后写入的有效数据的有效地址的步骤之前还包括:
判断当前云台固件升级的预置条件是断点续传模式还是掉电重传模式;
若预置条件为掉电重传模式,则重新向所述云台发送升级文件数据;
若预置条件为断点续传模式,则执行步骤:获取所述云台在中断时刻最后写入的有效数据的有效地址。
优选地,PC端运行云台固件升级程序,将升级文件数据传输至云台,以对所述云台固件进行升级的步骤之前,还包括:
PC端从服务器获取文件更新列表和文件差异列表,所述文件更新列表包括新版本文件相比旧版本文件而新增的文件名和/或修改的文件名,所述文件差异列表包括修改的文件中新版本文件相比旧版本文件的相同、相似和/或不同区域所在页的页名;
PC端根据所述文件更新列表和文件差异列表,从所述服务器下载新增文件和/或差异化文件中相似和/或不同区域所在页的数据到本地。
优选地,该方法还包括:
PC端将所下载的相似和/或不同区域所在页,与旧版本文件中的相同区域所在页进行合并,形成修改的文件;
将所述新增的文件和/或所述修改的文件共同组成所述升级文件数据。
优选地,当所述PC端检测到云台固件升级程序运行中断时,获取所述云台在中断时刻最后写入的有效数据的有效地址的步骤包括:
读取所述云台的数据,从预设位置开始逐个与预设值进行比较;
当预设数量的升级数据与预设值相等且这些升级数据彼此连续时,记录最后一个升级数据在所述云台中存储的地址;
根据所述地址计算出所述云台在中断时刻最后写入的有效数据的有效地址。
优选地,PC端根据所述有效地址获取中断前未传输的数据,将所述中断前未传输的数据传输给所述云台的步骤包括:
定位到升级文件数据中与所述有效地址所在页对应的位置;
向所述云台传输所述页后的升级文件数据。
优选地,所述PC端运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级的步骤之前,还包括:
在云台固件升级程序启动后,提示选择界面供用户选择预置条件;
根据用户的选择指令设置预设条件为断点续传模式或者掉电重传模式。
优选地,所述PC端从服务器获取文件更新列表和文件差异列表的步骤之前,还包括:
PC端获取所述云台固件的当前版本信息;
PC端根据所述当前版本信息检查所述服务器中是否存在新版本,若是,则执行步骤:PC端从服务器获取文件更新列表和文件差异列表,否则退出流程。
本发明实施例还提出一种云台固件升级的装置,该装置包括:
数据传输模块,用于运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级;
状态检测模块,用于在云台固件升级过程中,检测所述云台固件升级程序的运行状态;
数据读写模块,用于当检测到云台固件升级程序运行中断时,获取所述云台在中断时刻最后写入的有效数据的有效地址所在页;
控制模块,用于根据所述有效地址所在页获取中断前未传输的升级文件数据,将所述中断前未传输的数据传输给所述云台。
优选地,该装置还包括:
模式判断模块,用于判断当前云台固件升级的预置条件是断点续传模式还是掉电重传模式,若预置条件为掉电重传模式,则由所述数据传输模块重新向所述云台发送升级文件数据;若预置条件为断点续传模式,则由所述数据读写模块获取所述云台在中断时刻最后写入的有效数据的有效地址。
优选地,该装置还包括:
列表获取模块,用于从服务器获取文件更新列表和文件差异列表,所述文件更新列表包括新版本文件相比旧版本文件而新增的文件名和/或修改的文件名,所述文件差异列表包括修改的文件中新版本文件相比旧版本文件的相同、相似和/或不同区域所在页的页名;
下载模块,用于根据所述文件更新列表和文件差异列表,从所述服务器下载新增文件和/或差异化文件中相似和/或不同区域所在页的数据到本地。
优选地,该装置还包括:
数据合并模块,用于将所下载的相似和/或不同区域所在页,与旧版本文件中的相同区域所在页进行合并,形成修改的文件;
数据处理模块,用于将所述新增的文件和/或所述修改的文件共同组成所述升级文件数据。
优选地,所述数据读写模块包括:
数据比较单元,用于读取所述云台的数据,从预设位置开始逐个与预设值进行比较;
记录单元,用于当预设数量的升级数据与预设值相等且这些升级数据彼此连续时,记录最后一个升级数据在所述云台中存储的地址;
计算单元,用于根据所述地址计算出所述云台在中断时刻最后写入的有效数据的有效地址。
优选地,所述控制模块包括:
控制定位单元,用于定位到升级文件数据中与所述有效地址所在页对应的位置;
控制传输单元,用于向所述云台传输所述页后的升级文件数据。
优选地,所述装置还包括:
提示选择模块,用于在云台固件升级程序启动后,提示选择界面供用户选择预置条件;
模式设置模块,用于根据用户的选择指令设置预设条件为断点续传模式或者掉电重传模式。
优选地,所述装置还包括:
信息获取模块,用于获取所述云台固件的当前版本信息;
新版本检查模块,用于根据所述当前版本信息检查所述服务器中是否存在新版本,若是,则由所述列表获取模块从服务器获取文件更新列表和文件差异列表,否则退出流程。
本发明实施例提出的一种云台固件升级的方法及装置,首先通过PC端运行云台固件升级程序,将升级文件数据传输至云台,以对云台固件进行升级;然后在云台固件升级过程中,检测云台固件升级程序的运行状态;当检测到云台固件升级程序运行中断时,获取云台在中断时刻最后写入的有效数据的有效地址;最后根据有效地址获取中断前未传输的升级文件数据,将中断前未传输的数据传输给所述云台,可以使云台固件升级程序运行中断后,根据预置条件进行断点续传或者掉电重传的操作,从而保证升级成功,同时降低升级成本及升级难度,并避免由于升级失败而造成系统瘫痪的情况。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:PC端运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级;在云台固件升级过程中,所述PC端检测所述云台固件升级程序的运行状态;当所述PC端检测到云台固件升级程序运行中断时,获取所述云台在中断时刻最后写入的有效数据的有效地址;PC端根据所述有效地址获取中断前未传输的升级文件数据,将所述中断前未传输的数据传输给所述云台。
由于现有技术可能出现由于数据线连接不稳定或者数据量太大而网速又不够等其他原因造成升级程序运行中断的情况,从而出现因升级失败而造成云台系统瘫痪的问题。
本发明提供一种解决方案,使升级程序运行中断后,根据预置条件进行断点续传的操作,从而保证升级成功,同时降低云台固件升级成本,并避免由于升级失败而造成云台系统瘫痪的情况。
如图1所示,为本发明一种云台固件升级的方法的第一实施例,所述方法包括:
步骤S01,PC端运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级;
其中,航拍云台是一种以飞行器为载体,通过飞行器带动航拍云台上所搭载的相机进行航空拍摄的航空摄影测量系统,本实施例用于解决云台固件的升级过程中出现由于数据线连接不稳定或者数据量太大而网速又不够等其他原因造成升级程序运行中断,从而出现因升级失败而造成云台系统瘫痪的问题。
PC端通过串口与云台的主控制芯片通信,上电后,主控制芯片进入Bootloader程序,读取当前的升级标志位并判断,进而决定是进入APP还是进入升级模式。具体的,若升级成功标志(升级成功标志是指升级后,芯片自检其代码完整有效,即将升级成功标志置为成功如1,否则为失败如0)为未成功或升级标志(升级标志是指收到升级命令,即将升级标志置为升级如1,否则为不升级如0)为升级,则进入升级模式,否则进入APP模式。
在进入升级模式后,将当前APP代码保存到备份区,并改变升级标志至1且擦除升级成功标志(或者为程序完整性标志)至0,等待PC端发送升级代码。
PC端运行云台固件升级程序通过串口与主控制芯片通信,并将升级文件数据传输至所述云台。
步骤S02,在云台固件升级过程中,所述PC端检测所述云台固件升级程序的运行状态;
即实时检测升级成功标志,若升级成功标志置为失败如0则执行步骤S03,若升级成功标志置为成功如1,则升级完成。
步骤S03,当PC端检测到云台固件升级程序运行中断时,获取所述云台在中断时刻最后写入的有效数据的有效地址所在页;
在云台固件升级程序运行的过程中,当PC端无法检测到云台这个设备或者当PC端检测到升级程序持续停留在某一位置超过预设时间或者云台固件升级程序运行出现问题等,PC端判断云台固件升级程序运行中断。在检测到云台与PC可通讯时,获取中断时刻最后写入的有效数据的有效地址所在页。
步骤S04,PC端根据所述有效地址所在页获取中断前未传输的升级文件数据,将所述中断前未传输的数据传输给所述云台。
本实施例通过上述方案,可以使云台固件升级程序运行中断后,进行断点续传的操作,从而保证云台固件升级成功,同时减少了云台固件升级时人力物力的付出,并避免由于升级失败而造成云台系统瘫痪的情况。
进一步的,如图2所示,为本发明一种云台固件升级的方法的第二实施例提,基于上述图1所示的实施例:
在步骤S01,PC端运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级之前还包括:
步骤S11,在云台固件升级程序启动后,提示选择界面供用户选择预置条件;
用户通过PC端提供的友好界面,获取用户对云台固件升级程序中断后,进入断点续传模式或者掉电重传模式的选择指令,其中所述断点续传模式为PC端检测到云台固件升级程序运行中断时获取中断前程序传输的有效地址并PC端根据所述有效地址获取中断前未传输部分的内容,将所述中断前未传输部分的内容发送给所述云台;掉电重传模式为PC端检测到云台固件升级程序运行中断时重新向所述云台发送完整的升级文件内容。
步骤S12,根据用户的选择指令设置预设条件为断点续传模式或者掉电重传模式;
在步骤S03中,获取所述云台在中断时刻最后写入的有效数据的有效地址所在页之前还包括:
步骤S14,判断当前云台固件升级的预置条件是断点续传模式还是掉电重传模式;
具体过程如下:
若预设条件为断点续传模式,则执行步骤S03,获取所述云台在中断时刻最后写入的有效数据的有效地址所在页;
若预设条件为掉电重传模式,则执行步骤S16,重新向所述云台发送升级文件数据;
其它步骤与上述实施例相同。
本实施例通过上述方案,由用户预设传输中断后处理方式,减少传输中断发生后用户的参与,使所述云台固件升级程序能够自动对传输中断的情况的进行处理。
对应地,如图3所示,为本发明一种云台固件升级的方法的第三实施例,基于上述图1所示的实施例:
在步骤S01,PC端运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级之前还包括:
步骤S21,PC端从服务器获取文件更新列表和文件差异列表,所述文件更新列表包括新版本文件相比旧版本文件而新增的文件名和/或修改的文件名,所述文件差异列表包括修改的文件中新版本文件相比旧版本文件的相同、相似和/或不同区域所在页的页名;
PC端云台固件升级程序与服务器通信,获取由服务器提供的文件更新列表和文件差异列表并保存在本地,所述文件更新列表包括新版本文件相比旧版本文件而新增的文件名和/或修改的文件名,所述文件差异列表包括修改的文件中新版本文件相比旧版本文件的相同、相似和/或不同区域所在页的页名。此处的和/或是因为有时新版本文件相比旧版本文件仅仅新增了文件,并未对已有的文件进行修改(如新增功能);有时新版本文件相比旧版本文件仅仅修改了已有的文件(如进行功能优化);有时新版本文件相比旧版本文件不仅新增了文件,还修改了已有的文件(如即新增了功能,又进行了功能优化)。
由于具有文件更新列表,在后续的更新下载过程中,可以仅下载新增的文件和/或修改的文件,同样,由于具有文件差异列表,在后续的更新下载过程中,可以仅下载修改的文件中的相似和/或不同区域所在页,这样可以节省下载资源,节省升级时间。
步骤S22,PC端根据所述文件更新列表和文件差异列表,从所述服务器下载新增文件和/或差异化文件中相似和/或不同区域所在页的数据到本地。
PC端通过解析所述文件更新列表和文件差异列表,获得需要下载的数据等信息,PC端根据解析所获得的信息从服务器上下载新增文件和/或差异化文件中相似和/或不同区域所在页的数据到本地。
在另一优选实施例中,由于差异化文件数据可能将一个文件分为多个部分,下载时仅下载文件相似区域和文件不同区域信息等差异化文件数据,所以在下载后还需要对旧版本中的该文件的文件相同区域与新版本中的该文件的文件相似区域、文件不同区域进行合并,形成修改的文件,即具有步骤S23。
步骤S23,PC端将所下载的相似和/或不同区域所在页,与旧版本文件中的相同区域所在页进行合并,形成修改的文件。
步骤S24,将所述新增的文件和/或所述修改的文件共同组成所述升级文件数据。
进一步地,相比上述图3所示的实施例,在PC端从服务器获取文件更新列表和文件差异列表之前,还可以对是否存在云台固件的新版本进行判断,以简化操作流程,减少下载不必要的更新文件和差异文件数据;
具体地,在所述步骤S21,PC端从服务器获取文件更新列表和文件差异列表之前还包括:
PC端获取所述云台固件的当前版本信息;
PC端根据所述当前版本信息检查所述服务器中是否存在新版本,若是,则执行步骤:PC端从服务器获取文件更新列表和文件差异列表,否则退出流程。
所述服务器可以根据PC端提供的版本信息判断是否存在新版本,根据PC端提供的版本信息向PC端提供文件更新列表和文件差异列表,存储更新文件和差异化文件数据。
具体实现时,如图4所示:
云台连接到电脑时,PC端云台固件升级程序自动获取所述云台固件版本为1.0,而目前的最新版本为2.0,服务器根据该版本号V2.0检测到其包括5个文件,而该版本号V1.0包括4个文件,即需要进行升级操作。再如,新版本相对旧版本新增1个文件,且修改了2个文件,同时每个文件又被分为文件相似区域、文件相同区域和文件不同区域(如图5所示),PC端从服务器获取上述内容组成的文件更新列表和文件差异化列表,且PC端从服务器下载新增的1个文件和修改的2个文件中的相似区域和不同区域信息即文件差异化数据,下载后还需要对旧版本中的该修改的文件的相同区域与新版本中的该文件的相似区域、不同区域进行合并,合并后的文件和更新文件组成升级文件数据通过云台固件升级程序传输所述云台。
其它步骤与上述实施例相同。
本实施例通过上述方案,自动检测服务器是否有新的版本软件需要更新,并比较新旧版本文件的差异化,下载差异化的文件内容,减少更新文件的下载时间,自动更新软件,并重新运行新的程序,对用户来说设备的升级过程是在后台自动、平滑地实现,节省了宽带及下载时间。
步骤S03的具体过程如下:
第1步:读取所述云台的数据,从预设位置开始逐个与预设值进行比较;
第2步:预设数量的升级数据与预设值相同且这些升级数据彼此连续时,记录最后一个升级数据在所述云台中存储的地址;
第3步:根据所述地址计算出所述云台在中断时刻最后写入的有效数据的有效地址;
具体实现时,以云台主控制芯片为STM32F10X为例,假设程序读取的开始位置为0x8010000(即预设位置为0x8010000),判断代码终止传输的值为0Xff(即预设值为0Xff),如果连续出现32(即预设数量为32)个0Xff值,则判定传输终止,则判定传输终止的有效地址为当前地址减去32即为中断时刻最后写入的有效数据的有效地址。
步骤S04的具体过程如下:
第1步:定位到升级文件数据中与所述有效地址所在页对应的位置;
第2步:向所述云台传输所述页后的升级文件数据;
具体实现时,假设Flash的页大小为1K(1024Byets),在获取了中断时刻最后写入的有效数据的有效地址后,用该地址除以1024,取整数部分,那么下次程序的擦除区域就从该整数加1页开始(最小单位一般是页擦除)。具体的,如果升级代码有5页,已经传输了2页多100个字节,那么从第3页的第101个字节开始有32个字节为0Xff,即当前的地址减去32后除以1024,取整数部分,即为3,也即从第3页所在地址开始续传。
如图6所示,为本发明一种云台固件升级的装置的第一实施例,所述装置包括:数据传输模块101、状态检测模块102、数据读写模块103及控制模块104,其中:
数据传输模块101用于运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级;
状态检测模块102用于在云台固件升级过程中,检测所述云台固件升级程序的运行状态;
数据读写模块103用于当检测到云台固件升级程序运行中断时,获取所述云台在中断时刻最后写入的有效数据的有效地址所在页;
控制模块104用于根据所述有效地址所在页获取中断前未传输的升级文件数据,将所述中断前未传输的数据传输给所述云台。
具体的,首先运行云台固件升级程序,将升级文件数据传输至所述云台,以对所述云台固件进行升级;
上电后,主控制芯片进入Bootloader程序,读取当前的升级标志位并判断,进而决定是进入APP还是进入升级模式。具体的,若升级成功标志(升级成功标志是指升级后,芯片自检其代码完整有效,即将升级成功标志置为成功如1,否则为失败如0)为未成功或升级标志(升级标志是指收到升级命令,即将升级标志置为升级如1,否则为不升级如0)为升级,则进入升级模式,否则进入APP模式。
在进入升级模式后,将当前APP代码保存到备份区,并改变升级标志至1且擦除升级成功标志(或者为程序完整性标志)至0,等待PC端发送升级代码。
PC端运行云台固件升级程序通过串口与云台的主控制芯片通信,并将升级文件数据传输至所述云台。
在云台固件升级过程中,检测所述云台固件升级程序的运行状态;
即实时检测升级成功标志,若升级成功标志置为失败如0则执行步骤S03,若升级成功标志置为成功如1,则升级完成。
PC端检测到云台固件升级程序运行中断时,获取所述云台在中断时刻最后写入的有效数据的有效地址所在页;
在云台固件升级程序运行的过程中,当PC端无法检测到云台这个设备或者当PC端检测到升级程序持续停留在某一位置超过预设时间或者云台固件升级程序运行出现问题等,PC端判断云台固件升级程序运行中断。在检测到云台与PC可通讯时,获取中断时刻最后写入的有效数据的有效地址所在页。
PC端根据所述有效地址所在页获取中断前未传输的升级文件数据,将所述中断前未传输的数据传输给所述云台。
本实施例通过上述方案,可以使云台固件升级程序运行中断后,进行断点续传的操作,从而保证云台固件升级成功,同时减少了云台固件升级时人力物力的付出,并避免由于升级失败而造成云台系统瘫痪的情况。
如图7所示,为本发明一种云台固件升级装置的第二实施例,基于上述图6所示的实施例本实施例还包括提示选择模块201、模式设置模块202及模式判断模块203,其中:
提示选择模块201用于在云台固件升级程序启动后,提示选择界面供用户选择预置条件;
模式设置模块202用于根据用户的选择指令设置预设条件为断点续传模式或者掉电重传模式;
模式判断模块203用于判断当前云台固件升级的预置条件是断点续传模式还是掉电重传模式。
数据读写模块103包括数据比较单元231、记录单元232及计算单元233,其中:
其中数据比较单元231用于读取所述云台的数据从预设位置开始逐个与预设值进行比较;
记录单元232用于当预设数量的升级数据与预设值相等且这些升级数据彼此连续时,记录最后一个升级数据在所述云台中存储的地址;
计算单元233用于根据所述地址计算出所述云台在中断时刻最后写入的有效数据的有效地址所在页。
控制模块104包括控制定位单元241和控制传输单元242,其中:
控制定位单元241用于定位到升级文件数据中与所述有效地址所在页对应的位置;
控制传输单元242用于向所述云台传输所述位置后的升级文件数据。
其中,用户通过PC端提供的友好界面,获取用户对云台固件升级程序中断后,进入断点续传模式或者掉电重传模式的选择指令,其中所述断点续传模式为PC端检测到云台固件升级程序运行中断时获取中断前程序传输的有效地址并PC端根据所述有效地址获取中断前未传输部分的内容,将所述中断前未传输部分的内容发送给所述云台;掉电重传模式为PC端检测到云台固件升级程序运行中断时重新向所述云台发送完整的升级文件内容。
其它模块功能与上述实施例相同。
本实施例通过上述方案,由用户预设传输中断后处理方式,减少传输中断发生后用户的参与,使所述云台固件升级程序能够自动对传输中断的情况的进行处理。
如图8所示,为本发明一种云台固件升级装置的第三实施例,基于上述图6所示的实施例本实施例还包括列表获取模块301、下载模块302、数据合并模块303及数据处理模块304,其中:
列表获取模块301用于从服务器获取文件更新列表和文件差异列表,所述文件更新列表包括新版本文件相比旧版本文件而新增的文件名和/或修改的文件名,所述文件差异列表包括修改的文件中新版本文件相比旧版本文件的相同、相似和/或不同区域所在页的页名;
下载模块302用于根据所述文件更新列表和文件差异列表,从所述服务器下载新增文件和/或差异化文件中相似和/或不同区域所在页的数据到本地;
数据合并模块303用于将差异化文件数据中的相似和/或不同区域所在页,与旧版本文件中的相同区域进行合并,形成差异化文件;
数据处理模块304用于将所述更新文件与所述差异化文件共同组成所述升级文件数据。
具体地,PC端云台固件升级程序与服务器通信,获取由服务器提供的文件更新列表和文件差异列表并保存在本地,所述文件更新列表包括新版本文件相比旧版本文件而新增的文件名和/或修改的文件名,所述文件差异列表包括修改的文件中新版本文件相比旧版本文件的相同、相似和/或不同区域所在页的页名。此处的和/或是因为有时新版本文件相比旧版本文件仅仅新增了文件,并未对已有的文件进行修改(如新增功能);有时新版本文件相比旧版本文件仅仅修改了已有的文件(如进行功能优化);有时新版本文件相比旧版本文件不仅新增了文件,还修改了已有的文件(如即新增了功能,又进行了功能优化)。
由于具有文件更新列表,在后续的更新下载过程中,可以仅下载新增的文件和/或修改的文件,同样,由于具有文件差异列表,在后续的更新下载过程中,可以仅下载修改的文件中的相似和/或不同区域所在页,这样可以节省下载资源,节省升级时间。
PC端通过解析所述文件更新列表和文件差异列表,获得需要下载的数据等信息,PC端根据解析所获得的信息从服务器上下载新增文件和/或差异化文件中相似和/或不同区域所在页的数据到本地。
在另一优选实施例中,由于差异化文件数据可能将一个文件分为多个部分,下载时仅下载文件相似区域和文件不同区域信息等差异化文件数据,所以在下载后还需要对旧版本中的该文件的文件相同区域与新版本中的该文件的文件相似区域、文件不同区域进行合并,形成修改的文件,即PC端将所下载的相似和/或不同区域所在页,与旧版本文件中的相同区域所在页进行合并,形成修改的文件。
之后,PC端将所述新增的文件和/或所述修改的文件共同组成所述升级文件数据。
进一步地,相比上述图8所示的实施例,为简化操作流程,减少下载不必要的更新文件和差异文件数据,该装置还包括:
信息获取模块,用于获取所述云台固件的当前版本信息;
新版本检查模块,用于根据所述当前版本信息检查所述服务器中是否存在新版本,若是,则所述列表获取模块从服务器获取文件更新列表和文件差异列表,否则退出流程。
其中所述服务器可以根据PC端提供的版本信息判断是否存在新版本,根据PC端提供的版本信息向PC端提供文件更新列表和文件差异列表,存储更新文件和差异化文件数据。
具体实现时,如图4所示:
云台连接到电脑时,PC端云台固件升级程序自动获取所述云台固件版本为1.0,而目前的最新版本为2.0,服务器根据该版本号V2.0检测到其包括5个文件,而该版本号V1.0包括4个文件,即需要进行升级操作。再如,新版本相对旧版本新增1个文件,且修改了2个文件,同时每个文件又被分为文件相似区域、文件相同区域和文件不同区域(如图5所示),PC端从服务器获取上述内容组成的文件更新列表和文件差异化列表,且PC端从服务器下载新增的1个文件和修改的2个文件中的相似区域和不同区域信息即文件差异化数据,下载后还需要对旧版本中的该修改的文件的相同区域与新版本中的该文件的相似区域、不同区域进行合并,合并后的文件和更新文件组成升级文件数据通过云台固件升级程序传输所述云台。
其它模块功能与上述实施例相同。
本实施例通过上述方案,自动检测服务器是否有新的版本软件需要更新,并比较新旧版本文件的差异化,下载差异化的文件内容,减少更新文件的下载时间,自动更新软件,并重新运行新的程序,对用户来说设备的升级过程是在后台自动、平滑地实现,节省了宽带及下载时间。
上述数据读写模块103的具体执行过程如下:
第1步:读取所述云台的数据,从预设位置开始逐个与预设值进行比较;
第2步:预设数量的升级数据与预设值相同且这些升级数据彼此连续时,记录最后一个升级数据在所述云台中存储的地址;
第3步:根据所述地址计算出所述云台在中断时刻最后写入的有效数据的有效地址;
具体实现时,以云台主控制芯片为STM32F10X为例,假设程序读取的开始位置为0x8010000(即预设位置为0x8010000),判断代码终止传输的值为0Xff(即预设值为0Xff),如果连续出现32(即预设数量为32)个0Xff值,则判定传输终止,则判定传输终止的有效地址为当前地址减去32即为中断时刻最后写入的有效数据的有效地址。
上述控制模块104的具体执行过程如下:
第1步:定位到升级文件数据中与所述有效地址所在页对应的位置;
第2步:向所述云台传输所述页后的升级文件数据;
具体实现时,假设Flash的页大小为1K(1024Byets),在获取了中断时刻最后写入的有效数据的有效地址后,用该地址除以1024,取整数部分,那么下次程序的擦除区域就从该整数加1页开始(最小单位一般是页擦除)。具体的,如果升级代码有5页,已经传输了2页多100个字节,那么从第3页的第101个字节开始有32个字节为0Xff,即当前的地址减去32后除以1024,取整数部分,即为3,也即从第3页所在地址开始续传。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。