本發(fā)明涉及通信,具體為一種租賃柜設(shè)備終端遠(yuǎn)程固件升級(jí)及意外處理方法。
背景技術(shù):
1、隨著現(xiàn)代生活節(jié)奏的加快,人們對(duì)于便捷、靈活的個(gè)人物品存儲(chǔ)解決方案的需求日益增長(zhǎng)。在公共場(chǎng)合如商場(chǎng)、車站、機(jī)場(chǎng)等,傳統(tǒng)的存儲(chǔ)柜服務(wù)往往存在排隊(duì)等待、操作繁瑣、升級(jí)不能使用等問題,無法滿足現(xiàn)代用戶對(duì)于快速、簡(jiǎn)單服務(wù)的需求。
2、同行業(yè)類似產(chǎn)品通常會(huì)在線下通過連接線進(jìn)行升級(jí),在進(jìn)行固件升級(jí)時(shí),會(huì)導(dǎo)致終端設(shè)備暫時(shí)無法正常工作,影響服務(wù)的連續(xù)性和用戶體驗(yàn),在傳輸固件升級(jí)數(shù)據(jù)時(shí)存在數(shù)據(jù)不完整的情況,出現(xiàn)的錯(cuò)誤無法得到有效的糾正,從而影響數(shù)據(jù)傳輸?shù)目煽啃院透咝?;面?duì)停電和重啟等意外情況,無法有效地進(jìn)行升級(jí),導(dǎo)致升級(jí)失敗或者設(shè)備損壞,增加了維護(hù)成本和風(fēng)險(xiǎn)。
技術(shù)實(shí)現(xiàn)思路
1、(一)解決的技術(shù)問題
2、針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種租賃柜設(shè)備終端遠(yuǎn)程固件升級(jí)及意外處理方法,解決了管理者通過互聯(lián)網(wǎng)平臺(tái)對(duì)線下各終端設(shè)備進(jìn)行遠(yuǎn)程升級(jí)時(shí)傳輸固件升級(jí)數(shù)據(jù)時(shí)存在數(shù)據(jù)不完整情況,不能準(zhǔn)確高效的傳輸,并且在固件升級(jí)數(shù)據(jù)傳輸過程中影響設(shè)備正常使用,面對(duì)意外情況不能自主進(jìn)行升級(jí)恢復(fù)處理的問題。
3、(二)技術(shù)方案
4、為實(shí)現(xiàn)以上目的,本發(fā)明通過以下技術(shù)方案予以實(shí)現(xiàn):一種租賃柜設(shè)備終端遠(yuǎn)程固件升級(jí)及意外處理方法,其特征在于,包括以下步驟:
5、a.待固件升級(jí)數(shù)據(jù)存儲(chǔ)在云端,通過網(wǎng)絡(luò)通信傳輸至通信單元;
6、b.通信單元通過將固件升級(jí)數(shù)據(jù)分割成每個(gè)數(shù)據(jù)包并將數(shù)據(jù)包進(jìn)行分片編號(hào)和為每一片生成相應(yīng)crc校驗(yàn)碼,通過物理方式傳輸至每一個(gè)終端單元,終端單元使用crc校驗(yàn)碼驗(yàn)證數(shù)據(jù)的完整性,數(shù)據(jù)不完整則拒絕接收;
7、c.采用前向糾錯(cuò)和物理方式傳輸,通信單元使用rs編碼算法為每個(gè)數(shù)據(jù)包生成糾錯(cuò)碼,每個(gè)數(shù)據(jù)包和rs糾錯(cuò)碼一起被傳輸?shù)浇K端單元;終端單元接收到數(shù)據(jù)包后,使用crc校驗(yàn)碼進(jìn)行錯(cuò)誤檢測(cè);crc校驗(yàn)碼通過,數(shù)據(jù)包沒有錯(cuò)誤,終端單元繼續(xù)處理數(shù)據(jù);crc校驗(yàn)碼失敗,終端單元使用rs解碼器校正數(shù)據(jù)包中的錯(cuò)誤;rs解碼器校正錯(cuò)誤,并且錯(cuò)誤率低于5%,則數(shù)據(jù)包完整;錯(cuò)誤率超過5%或數(shù)據(jù)傳輸超時(shí)為意外情況,終端單元將記錄錯(cuò)誤編號(hào),終端單元根據(jù)錯(cuò)誤編號(hào)請(qǐng)求通信單元重傳錯(cuò)誤編號(hào)及以后的數(shù)據(jù)包和糾錯(cuò)碼;終端單元再次接收到重傳的數(shù)據(jù)包后,使用crc校驗(yàn)碼進(jìn)行驗(yàn)證;crc校驗(yàn)碼通過,則數(shù)據(jù)包完整并繼續(xù)處理;校驗(yàn)失敗,則繼續(xù)請(qǐng)求重傳,直到根據(jù)數(shù)據(jù)包的編號(hào)和crc校驗(yàn)碼進(jìn)行比對(duì),判斷為完整數(shù)據(jù)包;
8、d.通信單元?jiǎng)?chuàng)建消息數(shù)據(jù)表,存儲(chǔ)針對(duì)終端單元的消息數(shù)據(jù)節(jié)點(diǎn);
9、e.消息數(shù)據(jù)處理器輪詢多個(gè)消息數(shù)據(jù)表,并對(duì)單個(gè)消息數(shù)據(jù)表的消息數(shù)據(jù)節(jié)點(diǎn)進(jìn)行處理;
10、f.終端單元接收來自通信單元的數(shù)據(jù),根據(jù)數(shù)據(jù)類型進(jìn)行響應(yīng)或存儲(chǔ)至消息數(shù)據(jù)表中的待固件升級(jí)數(shù)據(jù)區(qū);
11、g.終端單元在接收完整個(gè)固件升級(jí)數(shù)據(jù)后,備份固件升級(jí)之前的數(shù)據(jù)即原固件數(shù)據(jù)至存儲(chǔ)區(qū)域;
12、h.終端單元在備份完成后,更新固件升級(jí)數(shù)據(jù)至消息數(shù)據(jù)表中的運(yùn)行區(qū)域,完成固件升級(jí);
13、i.終端單元在出現(xiàn)意外后從數(shù)據(jù)傳輸錯(cuò)誤編號(hào)處恢復(fù)數(shù)據(jù)傳輸;若在升級(jí)過程中遇到意外情況,終端單元根據(jù)存儲(chǔ)的固件升級(jí)數(shù)據(jù)進(jìn)行自主恢復(fù),實(shí)現(xiàn)斷點(diǎn)續(xù)傳。
14、優(yōu)選的,物理方式傳輸采用rs485通信和can通信,通信單元根據(jù)與終端單元的連接方式,決定單個(gè)數(shù)據(jù)包的最大數(shù)據(jù)載荷量,然后將待固件升級(jí)數(shù)據(jù)按照單個(gè)數(shù)據(jù)包的最大數(shù)據(jù)載荷量進(jìn)行分片,最后在每個(gè)分片數(shù)據(jù)中加入編號(hào)和總包號(hào),其中rs485通信使用差分信號(hào)傳輸,并且支持多個(gè)終端單元通過總線結(jié)構(gòu)連接到同一通信單元,實(shí)現(xiàn)一對(duì)多的通信模式;can通信采用基于消息的通信協(xié)議,每個(gè)消息包含終端單元的編號(hào)和固件數(shù)據(jù);通過網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),允許終端單元之間的數(shù)據(jù)通信。
15、優(yōu)選的,消息數(shù)據(jù)處理器用來獲取消息數(shù)據(jù)表的數(shù)據(jù)節(jié)點(diǎn),并對(duì)消息數(shù)據(jù)節(jié)點(diǎn)進(jìn)行解析,包括理解消息的結(jié)構(gòu)、解碼數(shù)據(jù)以及識(shí)別消息中的指令或數(shù)據(jù),然后將數(shù)據(jù)發(fā)送至相應(yīng)的終端單元;消息處理器會(huì)對(duì)多個(gè)消息數(shù)據(jù)表進(jìn)行輪詢,若當(dāng)前消息數(shù)據(jù)表有消息節(jié)點(diǎn),則對(duì)消息節(jié)點(diǎn)進(jìn)行添加協(xié)議頭、進(jìn)行錯(cuò)誤檢測(cè)和糾正編碼處理,查詢下一個(gè)消息數(shù)據(jù)表,將數(shù)據(jù)發(fā)送至相應(yīng)的終端單元。
16、優(yōu)選的,終端單元接收來自通信單元的數(shù)據(jù)通過對(duì)需要升級(jí)的終端單元編號(hào),使通信單元能夠準(zhǔn)確識(shí)別和區(qū)分不同的終端單元,為每個(gè)終端單元發(fā)送特定的固件升級(jí)數(shù)據(jù),將分片后的固件升級(jí)數(shù)據(jù)按照次序掛載至相應(yīng)的數(shù)據(jù)消息表,若用戶指令輸入,通信單元停止掛載固件升級(jí)數(shù)據(jù),將用戶指令掛載至相應(yīng)的數(shù)據(jù)表的尾部,再接著掛載固件升級(jí)數(shù)據(jù),直至固件升級(jí)數(shù)據(jù)掛載完成;數(shù)據(jù)處理器在輪詢數(shù)據(jù)表的過程中,根據(jù)當(dāng)前處理的數(shù)據(jù)類型為當(dāng)前數(shù)據(jù)增加標(biāo)簽,用于標(biāo)識(shí)是固件升級(jí)數(shù)據(jù)還是用戶指令數(shù)據(jù),若是用戶指令,則執(zhí)行特定的操作,如打開關(guān)閉、重啟服務(wù);若是固件升級(jí)數(shù)據(jù),則將固件升級(jí)數(shù)據(jù)存儲(chǔ)至待固件升級(jí)數(shù)據(jù)區(qū),每收到一條數(shù)據(jù)都要向通信單元進(jìn)行應(yīng)答,其中待固件升級(jí)數(shù)據(jù)區(qū)是終端單元上的消息數(shù)據(jù)表,用于臨時(shí)保存從通信單元接收的固件升級(jí)數(shù)據(jù)包,直到整個(gè)固件升級(jí)數(shù)據(jù)被完整下載。
17、優(yōu)選的,固件升級(jí)通過通信單元發(fā)送一個(gè)升級(jí)請(qǐng)求給終端單元,一旦終端單元接收到升級(jí)請(qǐng)求,終端單元會(huì)檢查當(dāng)前的網(wǎng)絡(luò)連接狀態(tài)和終端資源,使有足夠的空間和帶寬來下載和處理新的固件,通信單元發(fā)送固件升級(jí)數(shù)據(jù),終端單元?jiǎng)t接收固件數(shù)據(jù);通信過程中出現(xiàn)數(shù)據(jù)傳輸錯(cuò)誤或網(wǎng)絡(luò)中斷,終端單元根據(jù)前向糾錯(cuò)重新請(qǐng)求丟失或損壞的消息數(shù)據(jù)節(jié)點(diǎn),設(shè)置重發(fā)次數(shù)規(guī)避無限循環(huán)的重試;一旦固件被成功接收,終端單元將原有的固件版本備份至存儲(chǔ)設(shè)備中,使其在新固件出現(xiàn)問題時(shí)能恢復(fù)到之前的版本;備份完成后,終端單元將開始更新其固件,擦除舊的固件數(shù)據(jù),寫入新的固件數(shù)據(jù),然后重新啟動(dòng)設(shè)備以加載新固件,其中終端資源是終端單元上用于完成升級(jí)過程的硬件和軟件資源。
18、優(yōu)選的,前向糾錯(cuò)通過在數(shù)據(jù)傳輸過程中,通過使用rs編碼算法,在通信單元確定終端單元的網(wǎng)絡(luò)質(zhì)量參數(shù),包括丟包率、延遲;使用rs編碼算法,選擇數(shù)據(jù)塊的長(zhǎng)度n和原始信息的長(zhǎng)度k,以及要添加的冗余數(shù)據(jù)的長(zhǎng)度r?=?n?-?k,選擇一個(gè)有限域gf(q),根據(jù)編碼參數(shù),找到一個(gè)不可約多項(xiàng)式g(x),將待固件升級(jí)數(shù)據(jù)轉(zhuǎn)換為一個(gè)多項(xiàng)式m(x),將m(x)乘以x的r次冪,然后對(duì)生成多項(xiàng)式g(x)進(jìn)行模除,得到冗余多項(xiàng)式r(x),將待固件升級(jí)數(shù)據(jù)多項(xiàng)式m(x)和冗余多項(xiàng)式r(x)組合,形成最終的碼字多項(xiàng)式c(x),將c(x)的系數(shù)作為數(shù)據(jù)發(fā)送出去生成糾錯(cuò)碼,用于在終端單元檢測(cè)并糾正發(fā)生的錯(cuò)誤,將待固件升級(jí)數(shù)據(jù)和生成的糾錯(cuò)碼組合成數(shù)據(jù)包,通過rs485通信協(xié)議將組好的數(shù)據(jù)包發(fā)送到終端單元;終端單元接收到數(shù)據(jù)包后,使用rs解碼器檢測(cè)數(shù)據(jù)包中的錯(cuò)誤,若檢測(cè)到錯(cuò)誤,rs解碼器將利用糾錯(cuò)碼糾正錯(cuò)誤、若數(shù)據(jù)包在傳輸過程中丟失,終端單元根據(jù)已接收的數(shù)據(jù)包恢復(fù)丟失的數(shù)據(jù)包,數(shù)據(jù)包被成功接收并校正,終端單元對(duì)固件進(jìn)行升級(jí),其中糾錯(cuò)碼是待固件升級(jí)數(shù)據(jù)的副本;rs解碼器通過高級(jí)編程語言實(shí)現(xiàn),用于解碼rs編碼生成的糾錯(cuò)碼。
19、優(yōu)選的,斷點(diǎn)續(xù)傳功能通過將待傳輸?shù)墓碳指畛啥鄠€(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包都有唯一的編號(hào),使數(shù)據(jù)能夠按照正確的順序重新組合;通信單元和終端單元通過crc校驗(yàn)碼記錄每個(gè)數(shù)據(jù)包的傳輸正?;驌p壞,每個(gè)數(shù)據(jù)包傳輸后,使用crc校驗(yàn)碼驗(yàn)證數(shù)據(jù)的完整性;終端單元記錄最后成功接收數(shù)據(jù)包的編號(hào),若傳輸過程中遇到錯(cuò)誤,終端單元根據(jù)記錄的數(shù)據(jù)包的編號(hào)進(jìn)行恢復(fù),終端單元能將升級(jí)狀態(tài)和進(jìn)度信息上報(bào)給通信單元,使其進(jìn)行遠(yuǎn)程監(jiān)控。
20、優(yōu)選的,意外情況包括通信單元向終端單元發(fā)送固件升級(jí)數(shù)據(jù)過程,即終端單元存儲(chǔ)待固件升級(jí)數(shù)據(jù)過程,設(shè)備遇到意外停電或者重啟情況,重啟之后終端單元會(huì)先讀取事先存儲(chǔ)的升級(jí)狀態(tài),出意外之前升級(jí)狀態(tài)為傳輸固件升級(jí)數(shù)據(jù)過程,終端單元直接啟動(dòng);當(dāng)終端單元完成固件升級(jí)數(shù)據(jù)接收后會(huì)進(jìn)入備份原固件階段,在進(jìn)入此階段前將升級(jí)狀態(tài)更新為備份狀態(tài),并進(jìn)行存儲(chǔ),在此過程中設(shè)備遇到意外停電、中斷或者重啟情況,重啟之后終端單元會(huì)先讀取事先存儲(chǔ)的升級(jí)狀態(tài),出意外之前升級(jí)狀態(tài)為備份原固件過程;當(dāng)終端單元完成原固件備份后會(huì)進(jìn)入更新新固件階段,將升級(jí)狀態(tài)更新為更新狀態(tài),并進(jìn)行存儲(chǔ),設(shè)備遇到意外停電、中斷或者重啟情況,重啟之后終端單元會(huì)先讀取事先存儲(chǔ)的升級(jí)狀態(tài),發(fā)現(xiàn)在出意外之前升級(jí)狀態(tài)為更新新固件過程,終端單元將備份的固件重新運(yùn)行啟動(dòng)。
21、(三)有益效果
22、本發(fā)明提供了一種租賃柜設(shè)備終端遠(yuǎn)程固件升級(jí)及意外處理方法,具備以下有益效果:
23、本發(fā)明允許管理者通過互聯(lián)網(wǎng)平臺(tái)對(duì)線下各終端設(shè)備進(jìn)行遠(yuǎn)程固件升級(jí),提升了維護(hù)和升級(jí)的便捷性,在固件升級(jí)數(shù)據(jù)傳輸過程中,傳輸固件升級(jí)數(shù)據(jù)時(shí)準(zhǔn)確無誤傳輸?shù)矫恳粋€(gè)終端單元,提高了數(shù)據(jù)傳輸?shù)母咝院涂煽啃?,并且終端設(shè)備可以保持正常使用,不影響用戶的租賃業(yè)務(wù),從而提高了服務(wù)的可用性和用戶滿意度。
24、本發(fā)明面對(duì)意外情況,終端單元能夠自主進(jìn)行升級(jí)恢復(fù)處理,終端單元具備斷點(diǎn)續(xù)傳功能,能夠在網(wǎng)絡(luò)中斷后從數(shù)據(jù)傳輸錯(cuò)誤編號(hào)處恢復(fù)數(shù)據(jù)傳輸,避免了重復(fù)傳輸和時(shí)間浪費(fèi)。