本發(fā)明涉及無線數(shù)據(jù)傳輸技術(shù)領(lǐng)域,特別涉及一種基于藍(lán)牙電子設(shè)備的軟件升級方法及裝置。
背景技術(shù):
目前市場上常見的藍(lán)牙電子產(chǎn)品,升級一般都要返回廠家更換固件,或者通過產(chǎn)品本身的usb接口,進(jìn)行有線升級,這樣的產(chǎn)品升級給用戶帶來不便,直接影響了藍(lán)牙電子產(chǎn)品的后續(xù)維護(hù)。
對比文件1(cn104915237a)公開了一種藍(lán)牙設(shè)備固件程序的升級方法,包括:藍(lán)牙設(shè)備上電后,自動判斷是否啟動固件程序升級;若啟動,則使藍(lán)牙設(shè)備進(jìn)入等待固件升級狀態(tài),并通過app端向與藍(lán)牙設(shè)備建立有物理鏈路連接的無線微控制器發(fā)送升級指令;藍(lán)牙設(shè)備接收無線微控制器發(fā)送檢測指令,并根據(jù)檢測指令將等待固件升級狀態(tài)反饋至無線微控制器,使無線微控制器根據(jù)升級指令從云端獲取相應(yīng)的固件程序升級包,并將固件程序升級包返回至藍(lán)牙設(shè)備;藍(lán)牙設(shè)備利用固件程序升級包進(jìn)行固件程序升級。上述方法雖然可實現(xiàn)自動升級,然而未考慮各種情況,比如升級文件在先前傳輸中突然中斷,而設(shè)備中已有部分升級文件,若重新下載,必然會耗費時間。
此外,在現(xiàn)有技術(shù)文件cn104820611a、cn106210102a均對藍(lán)牙電子設(shè)備的軟件升級進(jìn)行相關(guān)描述,然而沒有考慮藍(lán)牙升級中實際面臨的各種情況,比如用戶正在使用藍(lán)牙電子設(shè)備聽音樂或者打電話等,此時進(jìn)行升級軟件下載勢必影響用戶使用。同時,若中斷升級軟件下載,則由于現(xiàn)有技術(shù)中未考慮藍(lán)牙通信的斷點續(xù)傳,用戶中斷軟件下載后,需刪除緩存重新下載,因此其用戶體驗不佳。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于藍(lán)牙電子設(shè)備的軟件升級方法及裝置,用以解決現(xiàn)有技術(shù)中對藍(lán)牙電子設(shè)備進(jìn)行軟件升級時升級過程復(fù)雜,影響用戶使用所導(dǎo)致的用戶體驗不佳的技術(shù)問題。
本發(fā)明提供一種基于藍(lán)牙電子設(shè)備的軟件升級方法,所述軟件升級方法包括以下步驟:
s1待升級藍(lán)牙電子設(shè)備通過藍(lán)牙與升級源設(shè)備配對并建立通信連接;
s2判斷所述待升級藍(lán)牙電子設(shè)備是否有待接收的升級文件;
s3若有待接收的升級文件,則初始化所述待接收的升級文件的文件序號;
s4向所述升級源設(shè)備發(fā)送所述文件序號;
s5接收所述升級源設(shè)備的控制指令,依據(jù)所述控制指令對所述待接收的升級文件執(zhí)行相關(guān)操作。
優(yōu)選地,步驟s3進(jìn)一步包括以下步驟:
s31若有待接收的升級文件,判斷所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài);
s32依據(jù)所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài),確定是否開始初始化所述待接收的升級文件的文件序號;
s33若是,初始化所述待接收的升級文件的文件序號。
優(yōu)選地,所述控制指令為升級文件數(shù)據(jù)指令、升級文件屬性信息指令、新固件升級指令、設(shè)備升級指令、設(shè)備取消升級指令中至少一種。
優(yōu)選地,步驟s5進(jìn)一步包括:
s51當(dāng)所述控制指令為升級文件數(shù)據(jù)指令時,判斷所述升級文件數(shù)據(jù)序號是否所述文件序號一致,若不一致,則返回步驟s30;
s52當(dāng)所述控制指令為升級文件信息指令時,存儲當(dāng)前升級文件信息,包括:當(dāng)前升級文件的校驗和信息、當(dāng)前升級文件的長度信息以及當(dāng)前升級文件的對應(yīng)的版本號信息;
s53當(dāng)所述控制指令為新固件升級指令時,刪除先前的升級文件信息,初始化接收新固件升級文件的屬性信息,向所述升級源設(shè)備發(fā)送準(zhǔn)備好升級命令;
s54當(dāng)所述控制指令為設(shè)備升級指令時,關(guān)閉與所述升級源設(shè)備的連接,關(guān)閉與所述設(shè)備升級不相關(guān)的設(shè)備和應(yīng)用程序,對所述待升級藍(lán)牙電子設(shè)備進(jìn)行升級,升級完后自動重啟系統(tǒng);
s55當(dāng)所述控制指令為設(shè)備取消升級指令時,刪除所述待接收的升級文件,并刪除所述待接收的升級文件的屬性信息。
優(yōu)選地,步驟s51中若一致時,還包括以下步驟:
s511本地文件序號加1;
s512檢查所述待接收的升級文件是否已傳輸完成;
s513若傳輸完成,則對整個升級文件進(jìn)行校驗和檢查,若所述校驗和檢查后結(jié)果為正確,則發(fā)送升級文件傳輸結(jié)束的信息至所述升級源設(shè)備;若所述校驗和檢查后結(jié)果為錯誤,則刪除所述升級文件,并設(shè)置文件偏移序號為零,通知所述升級源設(shè)備升級文件傳輸失敗,向所述升級源設(shè)備發(fā)送準(zhǔn)備好升級的信息,重新傳輸所述升級文件。
優(yōu)選地,所述軟件升級方法在步驟s1與步驟s2之間還包括以下步驟:
s01所述升級源設(shè)備獲取所述待升級藍(lán)牙電子設(shè)備的當(dāng)前固件版本信息,并從服務(wù)器獲取所述待升級藍(lán)牙電子設(shè)備的最新固件版本信息;
s02判斷所述固件版本信息與所述最新固件版本信息是否一致;
s03若不一致,則發(fā)送信息至所述待升級藍(lán)牙電子設(shè)備;
s04所述升級源設(shè)備接收所述待升級藍(lán)牙電子設(shè)備的反饋信息;
所述步驟s5進(jìn)一步包括:
s05所述升級源設(shè)備依據(jù)所述反饋信息發(fā)送所述控制指令。
本發(fā)明還提供一種基于藍(lán)牙電子設(shè)備的軟件升級裝置,所述軟件升級裝置包括:
通信連接模塊,用于待升級藍(lán)牙電子設(shè)備通過藍(lán)牙與升級源設(shè)備配對并建立通信連接;
判斷模塊,用于判斷所述待升級藍(lán)牙電子設(shè)備是否有待接收的升級文件;
初始化模塊,用于若有待接收的升級文件,則初始化所述待接收的升級文件的文件序號;
發(fā)送模塊,用于向所述升級源設(shè)備發(fā)送所述文件序號;
控制升級操作模塊,用于接收所述升級源設(shè)備的控制指令,依據(jù)所述控制指令對所述待接收的升級文件執(zhí)行相關(guān)操作。
優(yōu)選地,所述初始化模塊具體包括:
判斷單元,用于在有待接收的升級文件時,判斷所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài);
確定單元,用于依據(jù)所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài),確定是否開始初始化所述待接收的升級文件的文件序號;
初始化單元,用于初始化所述待接收的升級文件的文件序號。
優(yōu)選地,所述控制升級操作模塊包括:
升級文件數(shù)據(jù)序號判斷單元,用于當(dāng)所述控制指令為升級文件數(shù)據(jù)指令時,判斷所述升級文件數(shù)據(jù)序號是否所述文件序號一致;
存儲單元,用于當(dāng)所述控制指令為升級文件信息指令時,存儲當(dāng)前升級文件信息,包括:當(dāng)前升級文件的校驗和信息、當(dāng)前升級文件的長度信息以及當(dāng)前升級文件的對應(yīng)的版本號信息;
所述控制升級操作模塊還包括:新固件升級單元,和/或設(shè)備升級單元,和/或設(shè)備取消升級單元;
所述新固件升級單元,用于當(dāng)所述控制指令為新固件升級指令時,刪除先前的升級文件信息,初始化接收新固件升級文件的屬性信息,向所述升級源設(shè)備發(fā)送準(zhǔn)備好升級命令;
所述設(shè)備升級單元,用于當(dāng)所述控制指令為設(shè)備升級指令時,關(guān)閉與所述升級源設(shè)備的連接,關(guān)閉與所述設(shè)備升級不相關(guān)的設(shè)備和應(yīng)用程序,對所述待升級藍(lán)牙電子設(shè)備進(jìn)行升級,升級完后自動重啟系統(tǒng);
所述設(shè)備取消升級單元,用于當(dāng)所述控制指令為設(shè)備取消升級指令時,刪除所述待接收的升級文件,并刪除所述待接收的升級文件的屬性信息。
本發(fā)明還提供一種基于藍(lán)牙電子設(shè)備的軟件升級裝置,包括處理器和存儲器,所述存儲器存儲有程序指令,所述處理器調(diào)用所述存儲器中存儲的程序指令用于執(zhí)行以下步驟:
s1待升級藍(lán)牙電子設(shè)備通過藍(lán)牙與升級源設(shè)備配對并建立通信連接;
s2判斷所述待升級藍(lán)牙電子設(shè)備是否有待接收的升級文件;
s3若有待接收的升級文件,則初始化所述待接收的升級文件的文件序號;
s4向所述升級源設(shè)備發(fā)送所述文件序號;
s5接收所述升級源設(shè)備的控制指令,依據(jù)所述控制指令對所述待接收的升級文件執(zhí)行相關(guān)操作。
本發(fā)明的基于藍(lán)牙電子設(shè)備的軟件升級方法及裝置在終端用戶購買藍(lán)牙電子設(shè)備后仍可在不影響用戶使用的前提下,采用簡單的方法即可實現(xiàn)軟件升級,提升了用戶體驗。
附圖說明
圖1示出了本發(fā)明實施方式一的基于藍(lán)牙電子設(shè)備的軟件升級方法的流程示意圖。
圖2示出了步驟s3的流程示意圖。
圖3示出了本發(fā)明實施方式二的基于藍(lán)牙電子設(shè)備的軟件升級裝置的結(jié)構(gòu)示意圖。
圖4示出了圖3中初始化模塊的結(jié)構(gòu)示意圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本申請的實施方式及實施方式中的特征可以相互組合。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明的保護(hù)范圍并不受下面公開的具體實施方式的限制。
實施方式一
請參見圖1,本發(fā)明提供一種基于藍(lán)牙電子設(shè)備的軟件升級方法,這里的藍(lán)牙電子設(shè)備,主要指帶有藍(lán)牙功能的便攜式智能終端、娛樂游戲設(shè)備及監(jiān)測設(shè)備等,例如藍(lán)牙音箱、手機、平板電腦、游戲機等產(chǎn)品,這些藍(lán)牙電子設(shè)備在終端用戶購買后,廠商需對上述藍(lán)牙電子設(shè)備的固件進(jìn)行迭代更新,以提升用戶對電子設(shè)備的用戶體驗。所述軟件升級方法包括以下步驟:
s1待升級藍(lán)牙電子設(shè)備通過藍(lán)牙與升級源設(shè)備配對并建立通信連接;這里的藍(lán)牙通信連接優(yōu)先使用spp連接,若沒有spp連接再使用ble連接。上述待升級藍(lán)牙電子設(shè)備指上述藍(lán)牙電子設(shè)備還沒有升級完成,要么處于接收了對固件升級的部分升級文件后中斷、要么是還沒接收到任何升級文件的數(shù)據(jù)、要么是接收了升級文件的屬性信息還沒有接收升級文件等情況。升級源設(shè)備可以是帶有藍(lán)牙通信模塊的手機、平板電腦或者其它計算機設(shè)備。
s2判斷所述待升級藍(lán)牙電子設(shè)備是否有待接收的升級文件;這里的待接收的升級文件包括升級文件的屬性信息、升級文件的數(shù)據(jù)等。
s3若有待接收的升級文件,則初始化所述待接收的升級文件的文件序號;有待接收的升級文件包括尚未傳輸?shù)纳壩募蛡鬏斄瞬糠值磦鬏斖甑纳壩募煞N情況,也就是先前完全沒有傳輸過的升級文件,在升級源設(shè)備檢測到有之后,通知待升級藍(lán)牙電子設(shè)備是否進(jìn)行升級;還有傳輸了部分但未傳輸完的升級文件,在現(xiàn)有的藍(lán)牙電子設(shè)備中,通常不支持這種傳輸方式,然而藍(lán)牙電子設(shè)備在使用中會常遇到這種情況:比如正在進(jìn)行升級文件傳輸時,因為外界某些原因,比如要撥打視頻電話、播放視頻等,為不影響用戶體驗,需要中斷正在進(jìn)行的升級文件傳輸,一旦中斷,則原先傳輸?shù)剿{(lán)牙電子設(shè)備的部分升級文件在下次重啟藍(lán)牙傳輸時保留在緩存里,而藍(lán)牙電子設(shè)備又要重新下載整個升級文件的屬性信息以及升級文件的數(shù)據(jù)等,每次都要保證連續(xù)傳輸以保證升級文件的完整性,而先前的不完整的升級文件會留在藍(lán)牙電子設(shè)備的緩存里,占用內(nèi)存,影響藍(lán)牙電子設(shè)備的運行速度。而本發(fā)明是通過初始化待接收的升級文件的文件序號x=x0+1,其中x0為上次傳輸完成的文件序號,僅對文件序號進(jìn)行初始化。
s4向所述升級源設(shè)備發(fā)送所述文件序號;這個文件序號里包括上述x。初始化完成后將文件序號發(fā)出到升級源設(shè)備進(jìn)行比對。
s5接收所述升級源設(shè)備的控制指令,依據(jù)所述控制指令對所述待接收的升級文件執(zhí)行相關(guān)操作。在升級源設(shè)備確認(rèn)文件序號后,相應(yīng)地發(fā)出控制指令,然后依據(jù)控制指令對升級文件進(jìn)行相關(guān)操作。在具體實施例中,所述控制指令為升級文件數(shù)據(jù)指令、升級文件屬性信息指令、新固件升級指令、設(shè)備升級指令、設(shè)備取消升級指令中至少一種。
本發(fā)明的基于藍(lán)牙電子設(shè)備的軟件升級方法在終端用戶購買藍(lán)牙電子設(shè)備后仍可在不影響用戶使用的前提下,采用簡單的方法即可實現(xiàn)軟件升級,提升了用戶體驗。同時,由于本發(fā)明的基于藍(lán)牙電子設(shè)備的軟件升級方法對于有待接收的升級文件包括尚未傳輸?shù)纳壩募蛡鬏斄说磦鬏斖瓿傻纳壩募?,也就是說正在傳輸?shù)纳壩募舫霈F(xiàn)影響用戶使用的情況,比如正在傳輸升級文件時,用戶需要啟動藍(lán)牙電子設(shè)備的其它應(yīng)用程序,比如玩游戲或者其它情況時,中斷升級文件的傳輸,這個中斷可以是為了提升用戶使用體驗,藍(lán)牙電子設(shè)備自動中斷,待藍(lán)牙電子設(shè)備沒有其它應(yīng)用程序使用處于空閑狀態(tài)時,二者建立通信連接。也可以是外界某些情況導(dǎo)致藍(lán)牙傳輸信號不好,比如升級源設(shè)備因用戶攜帶移動距離藍(lán)牙電子設(shè)備較遠(yuǎn),沒法通過藍(lán)牙方式建立通信連接,或者藍(lán)牙電子設(shè)備關(guān)機或升級源設(shè)備之一關(guān)機后,靠近或者重新開機使得二者建立通信連接,通過ble做數(shù)據(jù)通道,盡管采用藍(lán)牙ble通信速度比較低,但使用用戶自定義控制指令進(jìn)行升級文件數(shù)據(jù)包的繼續(xù)傳遞,將繼續(xù)上次未完成的升級文件數(shù)據(jù)的傳輸,可以有效保證經(jīng)過多次傳輸完成整個升級文件的傳輸,最終實現(xiàn)藍(lán)牙電子設(shè)備的升級工作。因而,本發(fā)明大幅提升了藍(lán)牙電子設(shè)備的用戶體驗。
請參見圖2,上述步驟s3進(jìn)一步包括以下步驟:
s31若有待接收的升級文件,判斷所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài);
s32依據(jù)所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài),確定是否開始初始化所述待接收的升級文件的文件序號;例如該待升級藍(lán)牙電子設(shè)備為藍(lán)牙音箱,此時正在播放音樂,則此時不宜開始初始化待接收的升級文件的文件序號,應(yīng)等待藍(lán)牙音箱沒有處于待機狀態(tài)時或者說空閑狀態(tài)時開始初始化。又如,該待升級藍(lán)牙電子設(shè)備為手機,用戶正在打電話,則不用初始化。
s33若是,初始化所述待接收的升級文件的文件序號。在待升級的藍(lán)牙電子設(shè)備的工作狀態(tài)是空閑或者待機狀態(tài),在開始對藍(lán)牙電子設(shè)備進(jìn)行升級,這樣不會對用戶使用藍(lán)牙電子設(shè)備帶來干擾,
優(yōu)選地,步驟s5進(jìn)一步包括:
s51當(dāng)所述控制指令為升級文件數(shù)據(jù)指令時,判斷所述升級文件數(shù)據(jù)序號是否所述文件序號一致,若不一致,則返回步驟s30;
s52當(dāng)所述控制指令為升級文件屬性信息指令時,存儲當(dāng)前升級文件屬性信息,包括:當(dāng)前升級文件的校驗和信息、當(dāng)前升級文件的長度信息以及當(dāng)前升級文件的對應(yīng)的版本號信息;
s53當(dāng)所述控制指令為新固件升級指令時,刪除先前的升級文件信息,初始化接收所述新固件升級文件的屬性信息,向所述升級源設(shè)備發(fā)送準(zhǔn)備好升級命令;這里的屬性信息包括:升級文件的版本號,升級文件的長度信息,升級文件的校驗和等信息。
s54當(dāng)所述控制指令為設(shè)備升級指令時,關(guān)閉與所述升級源設(shè)備的連接,關(guān)閉與所述設(shè)備升級不相關(guān)的設(shè)備和應(yīng)用程序,對所述待升級藍(lán)牙電子設(shè)備進(jìn)行升級,升級完后自動重啟系統(tǒng);這里關(guān)閉與設(shè)備升級不相關(guān)的設(shè)備主要是指藍(lán)牙電子設(shè)備中的某些與設(shè)備升級不相關(guān)的硬件模塊,比如為藍(lán)牙音箱時,播放音樂的喇叭,又如,此時與升級源設(shè)備連接的藍(lán)牙通信模塊,通過用戶向手機發(fā)送關(guān)閉藍(lán)牙連接指令,手機發(fā)送指令關(guān)閉藍(lán)牙電子設(shè)備的藍(lán)牙通訊功能。
s55當(dāng)所述控制指令為設(shè)備取消升級指令時,刪除所述待接收的升級文件,并刪除所述待接收的升級文件的屬性信息。這里將當(dāng)前升級文件的屬性信息進(jìn)行清除,并將已經(jīng)下載的升級文件數(shù)據(jù)擦除,使得不會占用藍(lán)牙電子設(shè)備的緩存,提升了藍(lán)牙電子設(shè)備的系統(tǒng)工作時的反應(yīng)速度。
優(yōu)選地,步驟s51中若一致時,還包括以下步驟:
s511本地文件序號加1;
s512檢查所述待接收的升級文件是否已傳輸完成;
s513若傳輸完成,則對整個升級文件進(jìn)行校驗和檢查,若所述校驗和檢查后結(jié)果為正確,則發(fā)送升級文件傳輸結(jié)束的信息至所述升級源設(shè)備;若所述校驗和檢查后結(jié)果為錯誤,則刪除所述升級文件,并設(shè)置文件偏移序號為零,通知所述升級源設(shè)備升級文件傳輸失敗,向所述升級源設(shè)備發(fā)送準(zhǔn)備好升級的信息,重新傳輸所述升級文件。設(shè)定文件偏移序號為零,以便下次升級時重新升級。另外,本文中的文件偏移序號是指在升級文件拆成的多個數(shù)據(jù)包后,依序賦予各數(shù)據(jù)包一個文件序號,各數(shù)據(jù)包的文件序號與排序第一的數(shù)據(jù)包的文件序號差值即文件偏移序號。
優(yōu)選地,所述軟件升級方法在步驟s1與步驟s2之間還包括以下步驟:
s01所述升級源設(shè)備獲取所述待升級藍(lán)牙電子設(shè)備的當(dāng)前固件版本信息,并從服務(wù)器獲取所述待升級藍(lán)牙電子設(shè)備的最新固件版本信息;這里的固件升級的升級源設(shè)備優(yōu)選為移動電子終端,例如手機,手機從服務(wù)器下載該固件的升級文件后,通過手機傳輸固件的升級文件至藍(lán)牙電子設(shè)備。
升級文件傳輸給設(shè)備前,升級文件本身有數(shù)據(jù),還有對這個數(shù)據(jù)的檢驗,還有他所處的版本號信息,統(tǒng)稱為升級文件信息,也是固件升級信息。
s02判斷所述固件版本信息與所述最新固件版本信息是否一致;
s03若不一致,則發(fā)送信息至所述待升級藍(lán)牙電子設(shè)備;
s04所述升級源設(shè)備接收所述待升級藍(lán)牙電子設(shè)備的反饋信息;
所述步驟s5進(jìn)一步包括:
s05所述升級源設(shè)備依據(jù)所述反饋信息發(fā)送所述控制指令。這里的反饋信息包括藍(lán)牙電子設(shè)備準(zhǔn)備好升級的請求信息、藍(lán)牙電子設(shè)備請求升級文件的文件序號、藍(lán)牙電子設(shè)備的升級文件已傳輸完等信息。
下面以手機為例對升級源設(shè)備的運行過程也進(jìn)行介紹:
第一步:啟動手機中與藍(lán)牙電子設(shè)備的固件升級有關(guān)的應(yīng)用程序(app)連接藍(lán)牙電子設(shè)備,通過該應(yīng)用程序可以控制藍(lán)牙電子設(shè)備,此時連接就是通過藍(lán)牙的ble數(shù)據(jù)通道;
第二步:手機中與藍(lán)牙電子設(shè)備的固件升級有關(guān)的應(yīng)用程序向藍(lán)牙電子設(shè)備請求藍(lán)牙電子設(shè)備的當(dāng)前固件版本號,并請求服務(wù)器得到此藍(lán)牙電子設(shè)備的最新固件版本號,如果兩個固件版本號一致,將跳轉(zhuǎn)到第四步,否則跳轉(zhuǎn)到第三步;
第三步:通知藍(lán)牙電子設(shè)備固件有新固件版本,可以接受升級;
第四步:手機中與藍(lán)牙電子設(shè)備的固件升級有關(guān)的應(yīng)用程序等待設(shè)備命令,如果收到藍(lán)牙電子設(shè)備準(zhǔn)備好升級的請求信息,則跳轉(zhuǎn)到第五步;如果收到藍(lán)牙電子設(shè)備請求升級文件的文件序號,則跳轉(zhuǎn)到第六步;如果收到藍(lán)牙電子設(shè)備的升級文件已傳輸完,則跳轉(zhuǎn)到第七步;
第五步:此時藍(lán)牙電子設(shè)備需全新升級,也就是由第三步通知藍(lán)牙電子設(shè)備,藍(lán)牙電子設(shè)備返回全新升級的請求,手機中與藍(lán)牙電子設(shè)備的固件升級有關(guān)的應(yīng)用程序?qū)⑸壩募南嚓P(guān)信息發(fā)送給藍(lán)牙電子設(shè)備。再跳轉(zhuǎn)到第四步;這里的相關(guān)信息包括新固件的升級文件的屬性信息以及升級文件數(shù)據(jù)包;
第六步:此時傳輸文件,手機中與藍(lán)牙電子設(shè)備的固件升級有關(guān)的應(yīng)用程序?qū)⑾鄳?yīng)的偏移數(shù)據(jù)發(fā)送給藍(lán)牙電子設(shè)備,因每次傳輸?shù)钠茢?shù)據(jù)量都是已知量,所以文件序號可以唯一確認(rèn)數(shù)據(jù)所在升級文件的偏移值,再跳轉(zhuǎn)到第四步;上述偏移數(shù)據(jù)為升級文件拆分成多個數(shù)據(jù)包,每個數(shù)據(jù)包按順序賦予一個文件序號,由于本發(fā)明可以在升級文件傳輸中止后,在下一次連接上時繼續(xù)傳輸剩余升級文件,因此,在下一次傳輸時,只需找到相應(yīng)的偏移數(shù)據(jù)(包括升級文件拆分的數(shù)據(jù)包以及文件序號)繼續(xù)傳輸即可,這樣避免了現(xiàn)有技術(shù)對待升級藍(lán)牙電子設(shè)備傳輸中,出現(xiàn)的中斷后,數(shù)據(jù)緩存中存在未傳輸文件留存,下次傳輸時任然重新下載的問題。還有本發(fā)明中,對于傳輸中斷后已傳輸?shù)纳壩募?,可以將其從緩存區(qū)移到固定存儲區(qū),在下次啟動升級文件接收時,再調(diào)出到緩存區(qū),以便形成一個完整的升級文件。這樣不會占用待升級藍(lán)牙電子設(shè)備的內(nèi)存,運行速度不受影響,提升了用戶體驗。
第七步:收到藍(lán)牙電子設(shè)備的升級文件傳輸完成的請求,并在手機中與藍(lán)牙電子設(shè)備的固件升級有關(guān)的應(yīng)用程序上提示用戶藍(lán)牙電子設(shè)備有新固件版本,是否升級,如果用戶選擇升級,跳轉(zhuǎn)到第八步;否則跳轉(zhuǎn)到第九步;
第八步:向藍(lán)牙電子設(shè)備發(fā)送升級命令,此時藍(lán)牙電子設(shè)備會關(guān)閉與升級不相關(guān)的硬件模塊,并斷開與手機中與藍(lán)牙電子設(shè)備的固件升級有關(guān)的應(yīng)用程序之間的連接,進(jìn)行固件升級;跳轉(zhuǎn)回第四步;
第九步:用戶取消升級,通過手機與藍(lán)牙電子設(shè)備的固件升級有關(guān)的應(yīng)用程序通知藍(lán)牙電子設(shè)備忽略此次升級;跳轉(zhuǎn)回第四步。
用戶只需在手機上操作就可以完成整個藍(lán)牙電子設(shè)備的操作,避免了現(xiàn)有技術(shù)中藍(lán)牙電子設(shè)備的固件升級需要返廠升級或由專業(yè)人員參與升級的繁瑣,在不影響用戶使用、不增加用戶費用的情況下,對藍(lán)牙電子設(shè)備進(jìn)行固件升級工作,保證了藍(lán)牙電子設(shè)備后續(xù)的迭代更新。
實施方式二
請參見圖3和圖4,本發(fā)明實施方式二在上述實施方式一的基礎(chǔ)上還提供一種基于藍(lán)牙電子設(shè)備的軟件升級裝置,所述軟件升級裝置包括:
通信連接模,10,用于待升級藍(lán)牙電子設(shè)備通過藍(lán)牙與升級源設(shè)備配對并建立通信連接;
判斷模塊20,用于判斷所述待升級藍(lán)牙電子設(shè)備是否有待接收的升級文件;
初始化模塊30,用于若有待接收的升級文件,則初始化所述待接收的升級文件的文件序號;
發(fā)送模塊40,用于向所述升級源設(shè)備發(fā)送所述文件序號;
控制升級操作模塊50,用于接收所述升級源設(shè)備的控制指令,依據(jù)所述控制指令對所述待接收的升級文件執(zhí)行相關(guān)操作。
本發(fā)明的基于藍(lán)牙電子設(shè)備的軟件升級裝置在終端用戶購買藍(lán)牙電子設(shè)備后仍可在不影響用戶使用的前提下,采用簡單的方法即可實現(xiàn)軟件升級,提升了用戶體驗。
請參見圖4,所述初始化模塊30具體包括:
判斷單元31,用于在有待接收的升級文件時,判斷所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài);
確定單元32,用于依據(jù)所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài),確定是否開始初始化所述待接收的升級文件的文件序號;
初始化單元33,用于初始化所述待接收的升級文件的文件序號。
所述控制升級操作模塊包括:
升級文件數(shù)據(jù)序號判斷單元,用于當(dāng)所述控制指令為升級文件數(shù)據(jù)指令時,判斷所述升級文件數(shù)據(jù)序號是否所述文件序號一致;
存儲單元,用于當(dāng)所述控制指令為升級文件信息指令時,存儲當(dāng)前升級文件信息,包括:當(dāng)前升級文件的校驗和信息、當(dāng)前升級文件的長度信息以及當(dāng)前升級文件的對應(yīng)的版本號信息;
所述控制升級操作模塊還包括:新固件升級單元,和/或設(shè)備升級單元,和/或設(shè)備取消升級單元;
所述新固件升級單元,用于當(dāng)所述控制指令為新固件升級指令時,刪除先前的升級文件信息,初始化接收新固件升級文件的屬性信息,向所述升級源設(shè)備發(fā)送準(zhǔn)備好升級命令;
所述設(shè)備升級單元,用于當(dāng)所述控制指令為設(shè)備升級指令時,關(guān)閉與所述升級源設(shè)備的連接,關(guān)閉與所述設(shè)備升級不相關(guān)的設(shè)備和應(yīng)用程序,對所述待升級藍(lán)牙電子設(shè)備進(jìn)行升級,升級完后自動重啟系統(tǒng);
所述設(shè)備取消升級單元,用于當(dāng)所述控制指令為設(shè)備取消升級指令時,刪除所述待接收的升級文件,并刪除所述待接收的升級文件的屬性信息。
由于所述控制升級操作模塊可以是包括上述新固件升級單元、設(shè)備升級單元及設(shè)備取消升級單元三者之一,或者三者全包括,因此可以對應(yīng)不同的升級控制指令,實現(xiàn)藍(lán)牙電子設(shè)備相應(yīng)的升級。
上述初始化模塊、控制升級操作模塊的詳細(xì)描述請參見實施方式一中的相關(guān)描述,在此不再贅述。
實施方式三
本發(fā)明實施方式三還提供一種基于藍(lán)牙電子設(shè)備的軟件升級裝置,包括處理器和存儲器,所述存儲器存儲有程序指令,所述處理器調(diào)用所述存儲器中存儲的程序指令用于執(zhí)行以下步驟:
s1待升級藍(lán)牙電子設(shè)備通過藍(lán)牙與升級源設(shè)備配對并建立通信連接;
s2判斷所述待升級藍(lán)牙電子設(shè)備是否有待接收的升級文件;
s3若有待接收的升級文件,則初始化所述待接收的升級文件的文件序號;
s4向所述升級源設(shè)備發(fā)送所述文件序號;
s5接收所述升級源設(shè)備的控制指令,依據(jù)所述控制指令對所述待接收的升級文件執(zhí)行相關(guān)操作。
優(yōu)選地,步驟s3進(jìn)一步包括以下步驟:
s31若有待接收的升級文件,判斷所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài);
s32依據(jù)所述待升級藍(lán)牙電子設(shè)備當(dāng)前的工作狀態(tài),確定是否開始初始化所述待接收的升級文件的文件序號;
s33若是,初始化所述待接收的升級文件的文件序號。
優(yōu)選地,所述控制指令為升級文件數(shù)據(jù)指令、升級文件屬性信息指令、新固件升級指令、設(shè)備升級指令、設(shè)備取消升級指令中至少一種。
優(yōu)選地,步驟s5進(jìn)一步包括:
s51當(dāng)所述控制指令為升級文件數(shù)據(jù)指令時,判斷所述升級文件數(shù)據(jù)序號是否所述文件序號一致,若不一致,則返回步驟s30;
s52當(dāng)所述控制指令為升級文件信息指令時,存儲當(dāng)前升級文件信息,包括:當(dāng)前升級文件的校驗和信息、當(dāng)前升級文件的長度信息以及當(dāng)前升級文件的對應(yīng)的版本號信息;
s53當(dāng)所述控制指令為新固件升級指令時,刪除先前的升級文件信息,初始化接收新固件升級文件的屬性信息,向所述升級源設(shè)備發(fā)送準(zhǔn)備好升級命令;
s54當(dāng)所述控制指令為設(shè)備升級指令時,關(guān)閉與所述升級源設(shè)備的連接,關(guān)閉與所述設(shè)備升級不相關(guān)的設(shè)備和應(yīng)用程序,對所述待升級藍(lán)牙電子設(shè)備進(jìn)行升級,升級完后自動重啟系統(tǒng);
s55當(dāng)所述控制指令為設(shè)備取消升級指令時,刪除所述待接收的升級文件,并刪除所述待接收的升級文件的屬性信息。
優(yōu)選地,步驟s51中若一致時,還包括以下步驟:
s511本地文件序號加1;
s512檢查所述待接收的升級文件是否已傳輸完成;
s513若傳輸完成,則對整個升級文件進(jìn)行校驗和檢查,若所述校驗和檢查后結(jié)果為正確,則發(fā)送升級文件傳輸結(jié)束的信息至所述升級源設(shè)備;若所述校驗和檢查后結(jié)果為錯誤,則刪除所述升級文件,并設(shè)置文件偏移序號為零,通知所述升級源設(shè)備升級文件傳輸失敗,向所述升級源設(shè)備發(fā)送準(zhǔn)備好升級的信息,重新傳輸所述升級文件。
本發(fā)明的基于藍(lán)牙電子設(shè)備的軟件升級裝置在終端用戶購買藍(lán)牙電子設(shè)備后仍可在不影響用戶使用的前提下,采用簡單的方法即可實現(xiàn)軟件升級,提升了用戶體驗。
以上僅為本發(fā)明的優(yōu)選實施方式而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。