System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及物聯(lián)網(wǎng)網(wǎng)關(guān)管理,具體涉及一種物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法。
技術(shù)介紹
1、物聯(lián)網(wǎng)網(wǎng)關(guān),在物聯(lián)網(wǎng)時(shí)代扮演非常重要的角色,是連接感知網(wǎng)絡(luò)與傳統(tǒng)通信網(wǎng)絡(luò)的紐帶。作為網(wǎng)關(guān)設(shè)備,物聯(lián)網(wǎng)網(wǎng)關(guān)可以實(shí)現(xiàn)感知網(wǎng)絡(luò)與通信網(wǎng)絡(luò),以及不同類型感知網(wǎng)絡(luò)之間的協(xié)議轉(zhuǎn)換、既可以實(shí)現(xiàn)廣域互聯(lián)、也可以實(shí)現(xiàn)局域互聯(lián)。此外物聯(lián)網(wǎng)網(wǎng)關(guān)還需要具備設(shè)備管理功能,運(yùn)營商通過物聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)備可以管理底層的各感知節(jié)點(diǎn),了解各節(jié)點(diǎn)的相關(guān)信息,并實(shí)現(xiàn)遠(yuǎn)程控制。
2、現(xiàn)有技術(shù)中對網(wǎng)關(guān)實(shí)現(xiàn)遠(yuǎn)程升級的辦法是:在網(wǎng)關(guān)內(nèi)部嵌入式微處理器的ram區(qū)預(yù)留接收固件升級包的接收緩存,一次性接收固件升級包完畢后,再寫入非易失性存儲空間flsah的程序區(qū)完成升級;但是,嵌入式微處理器內(nèi)部一般ram容量較小但flsah容量相對較大,程序運(yùn)行也須占用ram空間,因此預(yù)留程序遠(yuǎn)程升級的ram緩沖區(qū)就不能太大,隨著程序不斷迭代升級,升級包容量越來越大,一旦超過預(yù)留的ram緩沖區(qū)大小,網(wǎng)關(guān)將無法一次性完整接收固件升級包,也就無法完成遠(yuǎn)程升級。
技術(shù)實(shí)現(xiàn)思路
1、鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本專利技術(shù)的目的在于提供一種物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,用于解決現(xiàn)有技術(shù)中網(wǎng)關(guān)通過ram區(qū)一次性接收固件升級包的方式存在無法一次性完整接收較大的固件升級包的問題。
2、為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本專利技術(shù)提供一種物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,包括裝有固件升級包的上位機(jī)系統(tǒng)和待升級的物聯(lián)網(wǎng)網(wǎng)關(guān),所述物聯(lián)網(wǎng)網(wǎng)關(guān)內(nèi)部設(shè)有接收ram緩沖區(qū)和flsah區(qū);
>3、將所述flsah區(qū)劃分為flsah緩沖區(qū)、flsah備份區(qū)、flsah執(zhí)行區(qū);所述遠(yuǎn)程升級方法包括如下步驟:
4、步驟1、在物聯(lián)網(wǎng)網(wǎng)關(guān)與上位機(jī)系統(tǒng)之間通過網(wǎng)口建立遠(yuǎn)程連接;
5、步驟2、網(wǎng)關(guān)開始接收固件升級包的升級數(shù)據(jù)并將接收到的升級數(shù)據(jù)放入ram緩沖區(qū);
6、步驟3、網(wǎng)關(guān)接收的升級數(shù)據(jù)達(dá)到塊長度后,記錄當(dāng)前ram緩沖區(qū)的接收長度;
7、步驟4、升級數(shù)據(jù)開始由ram緩沖區(qū)寫入flsah緩沖區(qū)設(shè)置的規(guī)定長度;
8、步驟5、升級數(shù)據(jù)寫入flsah緩沖區(qū)后,記錄寫入flsah緩沖區(qū)的已寫長度;
9、步驟6、網(wǎng)關(guān)繼續(xù)接收升級數(shù)據(jù),其ram緩沖區(qū)升級數(shù)據(jù)的再次接收從步驟4記錄的上次升級數(shù)據(jù)達(dá)到塊長度后的位置開始執(zhí)行;重復(fù)執(zhí)行步驟4的升級數(shù)據(jù)接收寫入操作直到完成所有升級數(shù)據(jù)接收;
10、步驟7、當(dāng)網(wǎng)關(guān)接收下一輪升級數(shù)據(jù)的接收長度超出ram緩沖區(qū)的長度時(shí),記錄當(dāng)前ram緩沖區(qū)滿位長度;
11、步驟8、升級數(shù)據(jù)接收長度到達(dá)ram緩沖區(qū)的末位置,下一輪接收升級數(shù)據(jù)將放入ram緩沖區(qū)首位置;
12、步驟9、當(dāng)網(wǎng)關(guān)接收的升級數(shù)據(jù)達(dá)到規(guī)定長度時(shí),重新記錄當(dāng)前ram緩沖區(qū)的接收長度;
13、步驟10、網(wǎng)關(guān)將升級數(shù)據(jù)從所述步驟8記錄的ram緩沖區(qū)位置開始繼續(xù)寫入flsah緩沖區(qū);
14、步驟11、網(wǎng)關(guān)接收到所需全部升級數(shù)據(jù)后,最后一次執(zhí)行將升級數(shù)據(jù)寫入flsah緩沖區(qū)的操作;
15、步驟12、對flsah緩沖區(qū)接收的升級數(shù)據(jù)進(jìn)行校驗(yàn),校驗(yàn)完成后將升級數(shù)據(jù)寫入flsah備份區(qū),并回傳上位機(jī)升級數(shù)據(jù)已成功接收的信號;
16、步驟13、flsah備份區(qū)寫入成功后,繼續(xù)將升級數(shù)據(jù)寫入flsah執(zhí)行區(qū);
17、步驟14、升級數(shù)據(jù)寫入flsah執(zhí)行區(qū)后,回傳上位成功信號;
18、步驟15、新程序執(zhí)行成功后,向上位機(jī)系統(tǒng)發(fā)出新版本號再次確保此次升級的完整性。
19、于本專利技術(shù)的一實(shí)施例中,在步驟4中,所述flsah緩沖區(qū)的規(guī)定長度取決于該網(wǎng)關(guān)內(nèi)部flsah的讀寫特性,當(dāng)flsah支持字寫入時(shí),將所述規(guī)定長度設(shè)為字;當(dāng)flsah只支持塊擦除和塊寫入時(shí),則將所述規(guī)定長度設(shè)為支持塊寫入的塊大小。
20、于本專利技術(shù)的一實(shí)施例中,所述flsah緩沖區(qū)的規(guī)定長度是由升級數(shù)據(jù)寫入flsah的所需時(shí)間與接收時(shí)間的關(guān)系計(jì)算得出,該計(jì)算如下:設(shè)定flsah緩存區(qū)的大小為l1,規(guī)定長度為l2;ram接收緩存區(qū)接收規(guī)定長度所需時(shí)間為t1;flsah緩存區(qū)寫入規(guī)定長度所需時(shí)間為t2,則需滿足l1>([t2/t1]+2)*l2。
21、于本專利技術(shù)的一實(shí)施例中,在步驟7中,在所述網(wǎng)關(guān)接收下一輪升級數(shù)據(jù)前,寫入flsah緩沖區(qū)的操作已完成。
22、于本專利技術(shù)的一實(shí)施例中,所述遠(yuǎn)程升級方法還包括在網(wǎng)關(guān)處于待升級狀態(tài)時(shí)對升級過程進(jìn)行時(shí)間管理;在步驟1至15的操作過程中均需滿足該時(shí)間管理,中途任一過程失敗網(wǎng)關(guān)會回傳上位機(jī)相關(guān)狀態(tài),并進(jìn)行版本回退。
23、一種物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級裝置,所述上位機(jī)系統(tǒng)裝于物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級裝置中;所述物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級裝置包括:存儲器、處理器,所述存儲器上存儲有能夠被處理器調(diào)用的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)所述的物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級方法的步驟。
24、一種計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)上存儲有物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級程序,所述物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)所述的物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級方法的步驟。
25、如上所述,本專利技術(shù)的物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,具有以下有益效果:
26、本專利技術(shù)利用網(wǎng)關(guān)用于接收數(shù)據(jù)的ram緩沖區(qū)容量較小無法一次性全部接收固件升級包的升級數(shù)據(jù),而網(wǎng)關(guān)內(nèi)部flsah區(qū)的容量足夠大,且網(wǎng)關(guān)將ram緩沖區(qū)接收的升級數(shù)據(jù)寫入flsah區(qū)的速率遠(yuǎn)遠(yuǎn)大于升級數(shù)據(jù)接收速率,所以網(wǎng)關(guān)在將升級數(shù)據(jù)寫入并不會影響固件升級包的升級數(shù)據(jù)接收;網(wǎng)關(guān)接收到規(guī)定固件升級包升級數(shù)據(jù)長度后,ram緩沖區(qū)接收的升級數(shù)據(jù)寫入flsah緩沖區(qū),記錄當(dāng)前ram緩沖區(qū)的接收長度,升級數(shù)據(jù)寫入flsah緩沖區(qū)完成后,記錄寫入flsah緩沖區(qū)的已寫長度,網(wǎng)關(guān)繼續(xù)等待接收;ram緩沖區(qū)的再次接收與flsah緩沖區(qū)的再次寫入是從上次完成位置處開始執(zhí)行;ram緩沖區(qū)的接收長度滿時(shí),記錄接收長度滿標(biāo)志位,下一輪升級數(shù)據(jù)接收從ram緩沖區(qū)的首位置開始繼續(xù)接收;再次接收到塊長度后,網(wǎng)關(guān)將ram緩沖區(qū)的未寫升級數(shù)據(jù)繼續(xù)寫入flsah緩沖區(qū),當(dāng)執(zhí)行到ram緩沖區(qū)的末位置后,待寫入升級數(shù)據(jù)從ram緩沖區(qū)首位置繼續(xù)寫入;全部固件升級包接收完成、并寫入緩沖flsah區(qū)完成后對升級數(shù)據(jù)進(jìn)行校驗(yàn),進(jìn)而寫入flsah備份區(qū)、flsah執(zhí)行操作;本專利技術(shù)提供的對于物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法通過設(shè)置寫入flsah緩沖區(qū)的規(guī)定長度、記錄寫入flsah緩沖區(qū)的已寫長度、記錄當(dāng)前ram緩沖區(qū)滿位長度,將ram緩沖區(qū)接收的升級數(shù)據(jù)重復(fù)寫入flsah區(qū),充分利用flsah資源,占用較少的ram資源就可接收數(shù)倍于ram緩沖區(qū)大小的固件升級包,實(shí)現(xiàn)網(wǎng)關(guān)大容量程序的遠(yuǎn)程升級;本專利技術(shù)對整個(gè)升級過程全程進(jìn)行時(shí)間管理,避免升級失敗或者通訊中斷等造成的升級時(shí)間異常導(dǎo)致網(wǎng)關(guān)不能正常運(yùn)行問題,提高升級效果。
本文檔來自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,包括裝有固件升級包的上位機(jī)系統(tǒng)和待升級的物聯(lián)網(wǎng)網(wǎng)關(guān),所述物聯(lián)網(wǎng)網(wǎng)關(guān)內(nèi)部設(shè)有接收RAM緩沖區(qū)和FLSAH區(qū);
2.根據(jù)權(quán)利要求1所述的物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,其特征在于:在步驟4中,所述FLSAH緩沖區(qū)的規(guī)定長度取決于該網(wǎng)關(guān)內(nèi)部FLSAH的讀寫特性,當(dāng)FLSAH支持字寫入時(shí),將所述規(guī)定長度設(shè)為字;當(dāng)FLSAH只支持塊擦除和塊寫入時(shí),則將所述規(guī)定長度設(shè)為支持塊寫入的塊大小。
3.根據(jù)權(quán)利要求2所述的物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,其特征在于:所述FLSAH緩沖區(qū)的規(guī)定長度是由升級數(shù)據(jù)寫入FLSAH的所需時(shí)間與接收時(shí)間的關(guān)系計(jì)算得出,該計(jì)算如下:設(shè)定FLSAH緩存區(qū)的大小為L1,規(guī)定長度為L2;RAM接收緩存區(qū)接收規(guī)定長度所需時(shí)間為T1;FLSAH緩存區(qū)寫入規(guī)定長度所需時(shí)間為T2,則需滿足L1>([T2/T1]+2)*L2。
4.根據(jù)權(quán)利要求1所述的物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,其特征在于:在步驟7中,在所述網(wǎng)關(guān)接收下一輪升級數(shù)據(jù)前,寫入FLSAH緩沖區(qū)的操作已完成。
5.根據(jù)權(quán)利要求1所述的物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)
6.一種物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級裝置,所述上位機(jī)系統(tǒng)裝于物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級裝置中;其特征在于,所述物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級裝置包括:存儲器、處理器,所述存儲器上存儲有能夠被處理器調(diào)用的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至5中任一項(xiàng)所述的物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級方法的步驟。
7.一種計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲介質(zhì)上存儲有物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級程序,所述物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至5中任一項(xiàng)所述的物聯(lián)網(wǎng)網(wǎng)關(guān)遠(yuǎn)程升級方法的步驟。
...【技術(shù)特征摘要】
1.一種物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,包括裝有固件升級包的上位機(jī)系統(tǒng)和待升級的物聯(lián)網(wǎng)網(wǎng)關(guān),所述物聯(lián)網(wǎng)網(wǎng)關(guān)內(nèi)部設(shè)有接收ram緩沖區(qū)和flsah區(qū);
2.根據(jù)權(quán)利要求1所述的物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,其特征在于:在步驟4中,所述flsah緩沖區(qū)的規(guī)定長度取決于該網(wǎng)關(guān)內(nèi)部flsah的讀寫特性,當(dāng)flsah支持字寫入時(shí),將所述規(guī)定長度設(shè)為字;當(dāng)flsah只支持塊擦除和塊寫入時(shí),則將所述規(guī)定長度設(shè)為支持塊寫入的塊大小。
3.根據(jù)權(quán)利要求2所述的物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方法,其特征在于:所述flsah緩沖區(qū)的規(guī)定長度是由升級數(shù)據(jù)寫入flsah的所需時(shí)間與接收時(shí)間的關(guān)系計(jì)算得出,該計(jì)算如下:設(shè)定flsah緩存區(qū)的大小為l1,規(guī)定長度為l2;ram接收緩存區(qū)接收規(guī)定長度所需時(shí)間為t1;flsah緩存區(qū)寫入規(guī)定長度所需時(shí)間為t2,則需滿足l1>([t2/t1]+2)*l2。
4.根據(jù)權(quán)利要求1所述的物聯(lián)網(wǎng)網(wǎng)關(guān)的遠(yuǎn)程升級方...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:王正山,武稔,羅文曉,吳志江,
申請(專利權(quán))人:無錫冠之杰數(shù)據(jù)信息技術(shù)有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。