專利名稱:兼容程序版本參數(shù)配置方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到嵌入式技術(shù)領(lǐng)域,特別涉及到兼容程序版本參數(shù)配置方法和裝置。
背景技術(shù):
目前,在嵌入式設(shè)備實現(xiàn)程序版本升級時,需要同時將舊版本的參數(shù)配置文件替換為新版本,通常采用以下方式實現(xiàn),首先比較設(shè)備中原配置文件版本與新程序版本是否一致,當(dāng)設(shè)備中原配置文件版本與新程序版本不同吋,將舊版本的配置文件為新版本的對應(yīng)格式。但是,傳統(tǒng)的參數(shù)配置轉(zhuǎn)換過程十分復(fù)雜,當(dāng)跨版本升級時,很難實現(xiàn)參數(shù)結(jié)構(gòu)體順利轉(zhuǎn)換。同時,當(dāng)參數(shù)配置文件在轉(zhuǎn)換的過程中,突然發(fā)生系統(tǒng)斷電或掉線等情況時,可能會造成配置文件損壞,造成配置文件參數(shù)數(shù)據(jù)內(nèi)容丟失,系統(tǒng)將無法正常運行,可靠性較低。有些時候,為了增加配置數(shù)據(jù)可靠性,大多在毎次更新配置文件的同時,也更新備份配置文件,但采用這種方式卻増大了讀寫次數(shù),降低了讀寫效率。
發(fā)明內(nèi)容
本發(fā)明的主要目的為提供一種可靠性高、讀寫效率高的兼容程序版本參數(shù)配置方法和裝置。本發(fā)明提出一種兼容程序版本參數(shù)配置方法,包括步驟在配置文件隊列中,將更新時間最晚且數(shù)據(jù)完整的配置文件中所有參數(shù)加載至緩存中;在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式相匹配時,直接進行讀寫操作;在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作。優(yōu)選地,所述參數(shù)格式包括參數(shù)長度,所述在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式相匹配時,直接進行讀寫操作的步驟具體包括在所述待寫入?yún)?shù)的參數(shù)長度等于或小于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,將所述待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至所述緩存的對應(yīng)參數(shù)中;在所述待填充參數(shù)的參數(shù)長度等于或大于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,輸出所述緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至所述待填充參數(shù)中。優(yōu)選地,所述在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作的步驟具體包括在所述待寫入?yún)?shù)的參數(shù)長度大于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)所述待寫入?yún)?shù)的參數(shù)長度,増加所述緩存中對應(yīng)參數(shù)的參數(shù)長度,并將所述待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至所述緩存的對應(yīng)參數(shù)中;在所述待填充參數(shù)的參數(shù)長度小于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)所述待填充參數(shù)的參數(shù)長度,輸出所述緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至所述待填充參數(shù)中。優(yōu)選地,所述參數(shù)格式包括參數(shù)ID,所述在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作的步驟具體還包括當(dāng)所述緩存中沒有對應(yīng)于所述待寫入?yún)?shù)的參數(shù)ID吋,將所述待寫入?yún)?shù)的參數(shù)ID和數(shù)據(jù)內(nèi)容加載至所述緩存中;當(dāng)所述緩存中沒有對應(yīng)于所述待填充參數(shù)的參數(shù)ID時,輸出空數(shù)據(jù)至所述待填充參數(shù)中。優(yōu)選地,所述兼容程序版本參數(shù)配置方法,還包括步驟當(dāng)所述緩存中的參數(shù)有更新時,根據(jù)預(yù)設(shè)的刷新時間,將所述緩存中的所有參數(shù)加載至更新時間最早的配置文件中。 本發(fā)明還提出一種兼容程序版本參數(shù)配置裝置,包括緩存加載模塊,用于在配置文件隊列中,將更新時間最晚且數(shù)據(jù)完整的配置文件中所有參數(shù)加載至緩存中;參數(shù)匹配模塊,用于在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式相匹配時,直接進行讀寫操作;參數(shù)調(diào)整模塊,用于在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作。優(yōu)選地,所述參數(shù)格式包括參數(shù)長度,所述參數(shù)匹配模塊具體包括寫參數(shù)匹配単元,用于在所述待寫入?yún)?shù)的參數(shù)長度等于或小于所述緩存中對應(yīng)參數(shù)的參數(shù)長度吋,將所述待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至所述緩存的對應(yīng)參數(shù)中;讀參數(shù)匹配単元,用于在所述待填充參數(shù)的參數(shù)長度等于或大于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,輸出所述緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至所述待填充參數(shù)中。優(yōu)選地,所述參數(shù)調(diào)整模塊具體包括寫參數(shù)調(diào)整単元,用于在所述待寫入?yún)?shù)的參數(shù)長度大于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)所述待寫入?yún)?shù)的參數(shù)長度,増加所述緩存中對應(yīng)參數(shù)的參數(shù)長度,并將所述待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至所述緩存的對應(yīng)參數(shù)中;讀參數(shù)調(diào)整單元,用于在所述待填充參數(shù)的參數(shù)長度小于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)所述待填充參數(shù)的參數(shù)長度,輸出所述緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至所述待填充參數(shù)中。優(yōu)選地,所述參數(shù)格式包括參數(shù)ID,所述寫參數(shù)調(diào)整單元還用干,當(dāng)所述緩存中沒有對應(yīng)于所述待寫入?yún)?shù)的參數(shù)ID吋,將所述待寫入?yún)?shù)的參數(shù)ID和數(shù)據(jù)內(nèi)容加載至所述緩存中;所述讀參數(shù)調(diào)整單元還用于,當(dāng)所述緩存中沒有對應(yīng)于所述待填充參數(shù)的參數(shù)ID時,輸出空數(shù)據(jù)至所述待填充參數(shù)中。優(yōu)選地,所述兼容程序版本參數(shù)配置裝置,還包括刷新模塊,用于當(dāng)所述緩存中的參數(shù)有更新時,根據(jù)預(yù)設(shè)的刷新時間,將所述緩存中的所有參數(shù)加載至更新時間最早的配置文件中。本發(fā)明通過多個配置文件交替讀寫的方式,有效提高配置文件中配置參數(shù)的可靠性,并根據(jù)不同版本的參數(shù)格式要求,動態(tài)自適應(yīng)的調(diào)整配置參數(shù)的參數(shù)格式,實現(xiàn)對不同版本程序的兼容。
圖I為本發(fā)明一實施例中兼容程序版本參數(shù)配置方法的流程圖;圖2為本發(fā)明一實施例的兼容程序版本參數(shù)配置方法中加載配置文件參數(shù)的步驟流程圖;圖3為本發(fā)明一實施例一實施方案的兼容程序版本參數(shù)配置方法中寫參數(shù)的步驟流程圖; 圖4為本發(fā)明一實施例另ー實施方案的兼容程序版本參數(shù)配置方法中寫參數(shù)的步驟流程圖;圖5為本發(fā)明一實施例一實施方案的兼容程序版本參數(shù)配置方法中讀參數(shù)的步驟流程圖;圖6為本發(fā)明一實施例另ー實施方案的兼容程序版本參數(shù)配置方法中讀參數(shù)的步驟流程圖;圖7為本發(fā)明另ー實施例中兼容程序版本參數(shù)配置方法的流程圖;圖8為本發(fā)明一實施例中兼容程序版本參數(shù)配置裝置的結(jié)構(gòu)示意圖;圖9為本發(fā)明一實施例的兼容程序版本參數(shù)配置裝置中緩存加載模塊的步驟流程圖;圖10為本發(fā)明一實施例的兼容程序版本參數(shù)配置裝置中參數(shù)匹配模塊的結(jié)構(gòu)示意圖;圖11為本發(fā)明一實施例的兼容程序版本參數(shù)配置裝置中參數(shù)調(diào)整模塊的結(jié)構(gòu)示意圖;圖12為本發(fā)明另ー實施例中兼容程序版本參數(shù)配置裝置的結(jié)構(gòu)示意圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進ー步說明。
具體實施例方式應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖I所示,圖I為本發(fā)明一實施例中兼容程序版本參數(shù)配置方法的流程圖,該實施例提到的兼容程序版本參數(shù)配置方法,包括步驟S10,在配置文件隊列中,將更新時間最晚且數(shù)據(jù)完整的配置文件中所有參數(shù)加載至緩存中;本實施例的配置文件隊列中包括多個配置文件,通過多個配置文件交替讀寫的方式,在對其中ー個配置文件進行讀寫的過程中,當(dāng)發(fā)生系統(tǒng)斷電或掉線造成配置文件數(shù)據(jù)損壞時,在系統(tǒng)下次啟動并進行讀寫操作時,選取數(shù)據(jù)未損壞的其他配置文件,以有效提高配置文件中配置參數(shù)的可靠性。其中,更新時間最晚的配置文件即為設(shè)備中配置參數(shù)版本最高的配置文件,該版本的配置參數(shù)最接近于已更新的程序版本,進ー步確保參數(shù)配置的順利進行。步驟S20,判斷待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與緩存中對應(yīng)參數(shù)的參數(shù)格式是否匹配,如果是,則執(zhí)行步驟S30 ;如果否,則執(zhí)行步驟S40 ;本實施例中,當(dāng)系統(tǒng)需要對某ー配置參數(shù)進行讀寫時,為了避免讀寫出錯,需要事先判斷緩存中對應(yīng)參數(shù)的參數(shù)格式能夠滿足當(dāng)前系統(tǒng)運行程序版本的要求,即判斷緩存中對應(yīng)參數(shù)的參數(shù)格式與當(dāng)前系統(tǒng)運行程序版本的參數(shù)格式要求是否匹配。步驟S30,直接進行讀寫操作;通常情況下,在當(dāng)前運行程序的版本與配置參數(shù)的版本一致時,其參數(shù)格式是相匹配的;在寫參數(shù)過程中,如果當(dāng)前運行程序的版本低于配置參數(shù)的版本,由于較高的版本通常能夠兼容較低的版本,因此配置參數(shù)的參數(shù)格式也能夠滿 足當(dāng)前運行程序的參數(shù)格式要求,其參數(shù)格式也是相匹配的;在讀參數(shù)過程中,如果當(dāng)前運行程序的版本高于配置參數(shù)的版本,由于較高的版本通常能夠兼容較低的版本,因此配置參數(shù)的參數(shù)格式也能夠滿足當(dāng)前運行程序的參數(shù)格式要求,其參數(shù)格式也是相匹配的。步驟S40,調(diào)整緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作。在寫參數(shù)過程中,如果當(dāng)前運行程序的版本高于配置參數(shù)的版本時,由于較高版本的運行程序中新増加了ー些功能,則較低版本的配置參數(shù)中找不到這些新增功能對應(yīng)的參數(shù);此外,當(dāng)較高版本的運行程序中某些功能被升級后,其對應(yīng)參數(shù)的參數(shù)格式隨之發(fā)生變化,雖然在設(shè)備已有的配置參數(shù)中能夠找到與上述功能對應(yīng)的參數(shù),但其參數(shù)格式卻無法滿足較高版本程序的參數(shù)格式要求,造成兩個版本的配置參數(shù)無法兼容,系統(tǒng)無法正常寫配置參數(shù)。在讀參數(shù)過程中,則恰好相反。本實施例中對參數(shù)格式是否匹配的判斷方法,可通過對參數(shù)ID的一致性進行判斷,例如,當(dāng)版本相同時,各參數(shù)ID —一對應(yīng),參數(shù)ID數(shù)量相同;當(dāng)運行程序版本低于設(shè)備已存在的配置參數(shù)版本時,運行程序中各參數(shù)ID均能夠在設(shè)備配置文件中找到,運行程序的參數(shù)ID數(shù)量小于設(shè)備配置參數(shù)ID數(shù)量;當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本吋,設(shè)備配置文件中無法找到運行程序中某些新增功能對應(yīng)的參數(shù)ID,運行程序的參數(shù)ID數(shù)量大于設(shè)備配置參數(shù)ID數(shù)量?;蛲ㄟ^對參數(shù)長度的一致性進行判斷,例如,當(dāng)版本相同吋,參數(shù)長度也相同;當(dāng)運行程序版本低于設(shè)備已存在的配置參數(shù)版本時,運行程序要求的參數(shù)長度小于設(shè)備配置參數(shù)長度;當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本吋,運行程序要求的參數(shù)長度大于設(shè)備配置參數(shù)長度?;蝾A(yù)先在配置參數(shù)中設(shè)置版本識別標(biāo)識符,每ー個版本識別標(biāo)識符對應(yīng)ー個版本,通過對版本識別標(biāo)識符進行版本高低的判斷。如圖2所示,圖2為本發(fā)明一實施例的兼容程序版本參數(shù)配置方法中加載配置文件參數(shù)的步驟流程圖,步驟Sio具體包括步驟S11,獲取配置文件隊列中所有配置文件的文件頭信息,文件頭信息包括更新序號G和校驗碼;本實施例中,更新序號G對應(yīng)于配置文件的更新時間,例如,按照更新時間的先后順序從小到大依次排列。校驗碼表示配置文件中數(shù)據(jù)的完整性,當(dāng)系統(tǒng)斷電或掉線造成配置文件數(shù)據(jù)損壞時,該配置文件中會出現(xiàn)無效的校驗碼,不可對該配置文件中的數(shù)據(jù)進行讀寫,以避免系統(tǒng)運行錯誤,有效提高配置文件中參數(shù)數(shù)據(jù)的可靠性。步驟S12,比較更新序號G,獲取最大更新序號G (i)對應(yīng)的配置文件的校驗碼;本實施例中,更新序號最大,即更新時間最晚,由于更新時間最晚的配置文件中配置參數(shù)的版本最高,最接近于當(dāng)前程序版本,因此可進一歩確保參數(shù)配置的順利進行。
步驟S13,驗證校驗碼是否有效,如果否,則執(zhí)行14 ;如果是,則執(zhí)行15 ;步驟S14,獲取G(i+1)對應(yīng)的配置文件的校驗碼,執(zhí)行步驟S13 ;步驟S15,將該配置文件中所有參數(shù)加載至緩存中。本實施例為避免緩存加載已損壞的配置文件參數(shù)數(shù)據(jù),通過有效的驗證碼識別參數(shù)數(shù)據(jù)的完整性,選取數(shù)據(jù)未損壞的配置文件進行加載,以有效提高配置文件中配置參數(shù)的可靠性。如圖3所示,圖3為本發(fā)明一實施例一實施方案的兼容程序版本參數(shù)配置方法中寫參數(shù)的步驟流程圖,其中,參數(shù)格式包括參數(shù)長度L。步驟S20具體包括步驟S21,判斷待寫入?yún)?shù)的參數(shù)長度LI是否小于或等于緩存中對應(yīng)參數(shù)的參數(shù) 長度L2,如果是,則執(zhí)行步驟S31 ;如果否,則執(zhí)行步驟S41 ;步驟S30具體包括步驟S31,將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至緩存的對應(yīng)參數(shù)中;步驟S40具體包括步驟S41,根據(jù)待寫入?yún)?shù)的參數(shù)長度,増加緩存中對應(yīng)參數(shù)的參數(shù)長度,并將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至緩存的對應(yīng)參數(shù)中。本實施例在寫參數(shù)操作過程中對參數(shù)長度的一致性進行判斷。當(dāng)版本相同時,參數(shù)長度也相同,待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容可直接寫入緩存的對應(yīng)參數(shù)中。當(dāng)運行程序版本低于設(shè)備已存在的配置參數(shù)版本時,運行程序中待寫入?yún)?shù)的參數(shù)長度小于設(shè)備配置參數(shù)長度,即設(shè)備配置參數(shù)有足夠的空間存儲待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容,因此,較高的版本通常能夠兼容較低的版本,待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容也可直接寫入緩存的對應(yīng)參數(shù)中。當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本時,運行程序中待寫入?yún)?shù)的參數(shù)長度大于設(shè)備配置參數(shù)長度,此時,如果將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容直接寫入緩存的對應(yīng)參數(shù),則會造成待寫入?yún)?shù)的部分?jǐn)?shù)據(jù)丟失,因此需要將緩存中對應(yīng)參數(shù)的參數(shù)長度増加到與待寫入?yún)?shù)的參數(shù)長度一致,通過動態(tài)自適應(yīng)的調(diào)整配置參數(shù)的參數(shù)格式,實現(xiàn)對不同版本程序的兼容。如圖4所示,圖4為本發(fā)明一實施例另ー實施方案的兼容程序版本參數(shù)配置方法中寫參數(shù)的步驟流程圖,其中,參數(shù)格式還包括參數(shù)ID ;步驟S20具體還包括步驟S22,判斷緩存中是否存在對應(yīng)于待寫入?yún)?shù)的參數(shù)ID,如果是,則執(zhí)行步驟S21 ;如果否,則執(zhí)行步驟S42 ;步驟S40具體還包括步驟S42,將待寫入?yún)?shù)的參數(shù)ID和數(shù)據(jù)內(nèi)容加載至緩存中。本實施例在寫參數(shù)操作過程中對參數(shù)ID的一致性進行判斷。當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本時,由于當(dāng)前程序新増加了ー些功能,緩存中無法找到對應(yīng)于這些新增功能的參數(shù)ID,則無法完成正常的寫參數(shù)操作。因此,需將待寫入?yún)?shù)的參數(shù)ID和數(shù)據(jù)內(nèi)容加載至緩存中,以完成對設(shè)備配置參數(shù)的參數(shù)格式動態(tài)自適應(yīng)調(diào)整,實現(xiàn)對不同版本程序的寫操作兼容性。如圖5所示,圖5為本發(fā)明一實施例一實施方案的兼容程序版本參數(shù)配置方法中讀參數(shù)的步驟流程圖,其中,參數(shù)格式包括參數(shù)長度。
步驟S20具體包括步驟S23,判斷待寫入?yún)?shù)的參數(shù)長度L3是否大于或等于緩存中對應(yīng)參數(shù)的參數(shù)長度L2,如果是,則執(zhí)行步驟S33 ;如果否,則執(zhí)行步驟S43 ;步驟S30具體包括步驟S33,輸出緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至待填充參數(shù)中;步驟S40具體包括步驟S43,根據(jù)待填充參數(shù)的參數(shù)長度,輸出緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至待填充參數(shù)中。本實施例在讀參數(shù)操作過程中對參數(shù)長度的一致性進行判斷。當(dāng)版本相同時,參數(shù)長度也相同,可直接讀取緩存中對應(yīng)參數(shù)中的數(shù)據(jù)內(nèi)容填充至待填充參數(shù)中。當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本時,運行程序中待填充參數(shù)的參數(shù)長度大于設(shè)備配置參數(shù)長度,即待填充參數(shù)有足夠的空間存儲設(shè)備配置參數(shù)的數(shù)據(jù)內(nèi)容,因此,較高的版本通常能夠兼容較低的版本,也可直接讀取緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容填充至待填充參數(shù)中,待填充參數(shù)中多余的部分可采用默認(rèn)數(shù)據(jù)進行填充。當(dāng)運行程序版本低于設(shè)備已存在的配置參數(shù)版本時,運行程序中待填充參數(shù)的參數(shù)長度小于設(shè)備配置參數(shù)長度,此時,如果直接讀取緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容填充至待填充參數(shù)中,則會超出待填充參數(shù)的存儲空間,造成參數(shù)讀取錯誤,此時,只需要將緩存中對應(yīng)參數(shù)的前半部分?jǐn)?shù)據(jù)內(nèi)容填充至待填充 寫操作兼容性。如圖6所示,圖6為本發(fā)明一實施例另ー實施方案的兼容程序版本參數(shù)配置方法中讀參數(shù)的步驟流程圖,其中,參數(shù)格式還包括參數(shù)ID。步驟S20具體還包括步驟S24,判斷緩存中是否存在對應(yīng)于待填充參數(shù)的參數(shù)ID,如果是,則執(zhí)行步驟S23 ;如果否,則執(zhí)行步驟S44 ;步驟S40具體還包括步驟S44,輸出空數(shù)據(jù)至待填充參數(shù)中。本實施例在讀參數(shù)操作過程中對參數(shù)ID的一致性進行判斷。當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本時,由于當(dāng)前程序新増加了ー些功能,緩存中無法找到對應(yīng)于這些新增功能的參數(shù)ID,即緩存中沒有這些新增功能參數(shù)ID的相關(guān)數(shù)據(jù),因此,向待填充參數(shù)返回空數(shù)據(jù),例如全O數(shù)據(jù),作為提示信息。如圖7所示,圖7為本發(fā)明另ー實施例中兼容程序版本參數(shù)配置方法的流程圖,該實施例的兼容程序版本參數(shù)配置方法還包括步驟S50,當(dāng)緩存中的參數(shù)有更新時,根據(jù)預(yù)設(shè)的刷新時間,將緩存中的所有參數(shù)加載至更新時間最早的配置文件中。本實施例通過定時刷新的方式更新配置文件,即類似于定時備份操作,減少了備份次數(shù),提高了讀寫效率。同時,本實施例并未新増加備份文件,而是直接將緩存中的參數(shù)加載到配置文件隊列中已存在的配置文件中,有效減少了系統(tǒng)存儲空間。如圖8所示,圖8為本發(fā)明一實施例中兼容程序版本參數(shù)配置裝置的結(jié)構(gòu)示意圖,該實施例提到兼容程序版本參數(shù)配置裝置,包括
緩存加載模塊10,用于在配置文件隊列中,將更新時間最晚且數(shù)據(jù)完整的配置文件中所有參數(shù)的數(shù)據(jù)內(nèi)容加載至緩存中;參數(shù)匹配模塊20,用于在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與緩存中對應(yīng)參數(shù)的參數(shù)格式相匹配時,直接進行讀寫操作;參數(shù)調(diào)整模塊30,用于在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作。本實施例的配置文件隊列中包括多個配置文件,通過多個配置文件交替讀寫的方式,在對其中ー個配置文件進行讀寫的過程中,當(dāng)發(fā)生系統(tǒng)斷電或掉線造成配置文件數(shù)據(jù)損壞時,在系統(tǒng)下次啟動并進行讀寫操作時,緩存加載模塊10選取數(shù)據(jù)未損壞的其他配置文件,以有效提高配置文件中配置參數(shù)的可靠性。其中,更新時間最晚的配置文件即為設(shè)備中配置參數(shù)版本最高的配置文件,該版本的配置參數(shù)最接近于已更新的程序版本,進ー步確保參數(shù)配置的順利進行。 當(dāng)系統(tǒng)需要對某ー配置參數(shù)進行讀寫時,為了避免讀寫出錯,需要事先判斷緩存中對應(yīng)參數(shù)的參數(shù)格式能夠滿足當(dāng)前系統(tǒng)運行程序版本的要求,即判斷緩存中對應(yīng)參數(shù)的參數(shù)格式與當(dāng)前系統(tǒng)運行程序版本的參數(shù)格式要求是否匹配。通常情況下,在當(dāng)前運行程序的版本與配置參數(shù)的版本一致時,其參數(shù)格式是相匹配的;在寫參數(shù)過程中,如果當(dāng)前運行程序的版本低于配置參數(shù)的版本,由于較高的版本通常能夠兼容較低的版本,因此配置參數(shù)的參數(shù)格式也能夠滿足當(dāng)前運行程序的參數(shù)格式要求,其參數(shù)格式也是相匹配的;在讀參數(shù)過程中,如果當(dāng)前運行程序的版本高于配置參數(shù)的版本,由于較高的版本通常能夠兼容較低的版本,因此配置參數(shù)的參數(shù)格式也能夠滿足當(dāng)前運行程序的參數(shù)格式要求,其參數(shù)格式也是相匹配的。上述情況可以直接通過參數(shù)匹配模塊20進行讀寫參數(shù)操作。在寫參數(shù)過程中,如果當(dāng)前運行程序的版本高于配置參數(shù)的版本時,由于較高版本的運行程序中新増加了ー些功能,則較低版本的配置參數(shù)中找不到這些新增功能對應(yīng)的參數(shù);此外,當(dāng)較高版本的運行程序中某些功能被升級后,其對應(yīng)參數(shù)的參數(shù)格式隨之發(fā)生變化,雖然在設(shè)備已有的配置參數(shù)中能夠找到與上述功能對應(yīng)的參數(shù),但其參數(shù)格式卻無法滿足較高版本程序的參數(shù)格式要求,造成兩個版本的配置參數(shù)無法兼容,系統(tǒng)無法正常寫配置參數(shù)。在讀參數(shù)過程中,則恰好相反。此時,需要通過參數(shù)調(diào)整模塊30對緩存中參數(shù)的格式進行調(diào)整,使其能夠兼容程序版本的需求。本實施例中對參數(shù)格式是否匹配的判斷方法,可通過對參數(shù)ID的一致性進行判斷,例如,當(dāng)版本相同時,各參數(shù)ID —一對應(yīng),參數(shù)ID數(shù)量相同;當(dāng)運行程序版本低于設(shè)備已存在的配置參數(shù)版本時,運行程序中各參數(shù)ID均能夠在設(shè)備配置文件中找到,運行程序的參數(shù)ID數(shù)量小于設(shè)備配置參數(shù)ID數(shù)量;當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本吋,設(shè)備配置文件中無法找到運行程序中某些新增功能對應(yīng)的參數(shù)ID,運行程序的參數(shù)ID數(shù)量大于設(shè)備配置參數(shù)ID數(shù)量。或通過對參數(shù)長度的一致性進行判斷,例如,當(dāng)版本相同吋,參數(shù)長度也相同;當(dāng)運行程序版本低于設(shè)備已存在的配置參數(shù)版本時,運行程序要求的參數(shù)長度小于設(shè)備配置參數(shù)長度;當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本吋,運行程序要求的參數(shù)長度大于設(shè)備配置參數(shù)長度?;蝾A(yù)先在配置參數(shù)中設(shè)置版本識別標(biāo)識符,每ー個版本識別標(biāo)識符對應(yīng)ー個版本,通過對版本識別標(biāo)識符進行版本高低的判斷。如圖9所示,圖9為本發(fā)明一實施例的兼容程序版本參數(shù)配置裝置中緩存加載模塊的步驟流程圖,緩存加載模塊10具體包括頭信息獲取單元11,用于獲取配置文件隊列中配置文件的文件頭信息,文件頭信息包括更新序號G和校驗碼;校驗碼驗證單元12,用于驗證最大更新序號G(i)對應(yīng)的配置文件的校驗碼是否有效,并輸出驗證結(jié)果;根據(jù)校驗碼無效的驗證結(jié)果,重新驗證G(i+1)對應(yīng)的配置文件的校驗碼是否有效,并輸出驗證結(jié)果;緩存加載單元13,用于根據(jù)校驗碼有效的驗證結(jié)果,將該配置文件中所有參數(shù)加載至緩存中。本實施例中,頭信息獲取單元11獲取的更新序號G對應(yīng)于配置文件的更新時間,例如,按照更新時間的先后順序從小到大依次排列。更新序號最大,即更新時間最晩,由于 更新時間最晚的配置文件中配置參數(shù)的版本最高,最接近于當(dāng)前程序版本,可確保參數(shù)配置的順利進行。此外,文件頭信息包括的校驗碼表示配置文件中數(shù)據(jù)的完整性,當(dāng)系統(tǒng)斷電或掉線造成配置文件數(shù)據(jù)損壞吋,該配置文件中包含無效的校驗碼,不可對該配置文件中的數(shù)據(jù)進行讀寫。為避免緩存加載已損壞的配置文件參數(shù)數(shù)據(jù),通過校驗碼驗證単元12驗證驗證碼的有效性,以判斷參數(shù)數(shù)據(jù)的完整性,緩存加載單元13選取數(shù)據(jù)未損壞的配置文件進行加載,可有效提高配置文件中配置參數(shù)的可靠性。如圖10所示,圖10為本發(fā)明一實施例的兼容程序版本參數(shù)配置裝置中參數(shù)匹配模塊的結(jié)構(gòu)示意圖,參數(shù)格式包括參數(shù)長度,參數(shù)匹配模塊20具體包括寫參數(shù)匹配単元21,用于在待寫入?yún)?shù)的參數(shù)長度等于或小于緩存中對應(yīng)參數(shù)的參數(shù)長度時,將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至緩存的對應(yīng)參數(shù)中;讀參數(shù)匹配単元22,用于在待填充參數(shù)的參數(shù)長度等于或大于緩存中對應(yīng)參數(shù)的參數(shù)長度時,輸出緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至待填充參數(shù)中。本實施例在寫參數(shù)操作過程中,當(dāng)版本相同吋,參數(shù)長度也相同,寫參數(shù)匹配単元21將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容直接寫入緩存的對應(yīng)參數(shù)中。當(dāng)運行程序版本低于設(shè)備已存在的配置參數(shù)版本時,運行程序中待寫入?yún)?shù)的參數(shù)長度小于設(shè)備配置參數(shù)長度,即設(shè)備配置參數(shù)有足夠的空間存儲待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容,因此,較高的版本通常能夠兼容較低的版本,寫參數(shù)匹配単元21也可將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容直接寫入緩存的對應(yīng)參數(shù)中。在讀參數(shù)操作過程中,當(dāng)版本相同吋,參數(shù)長度也相同,讀參數(shù)匹配単元22可直接讀取緩存中對應(yīng)參數(shù)中的數(shù)據(jù)內(nèi)容填充至待填充參數(shù)中。當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本吋,運行程序中待填充參數(shù)的參數(shù)長度大于設(shè)備配置參數(shù)長度,即待填充參數(shù)有足夠的空間存儲設(shè)備配置參數(shù)的數(shù)據(jù)內(nèi)容,因此,較高的版本通常能夠兼容較低的版本,讀參數(shù)匹配單元22也可直接讀取緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容填充至待填充參數(shù)中,待填充參數(shù)中多余的部分可采用默認(rèn)數(shù)據(jù)進行填充。如圖11所示,圖11為本發(fā)明一實施例的兼容程序版本參數(shù)配置裝置中參數(shù)調(diào)整模塊的結(jié)構(gòu)示意圖,參數(shù)格式包括參數(shù)長度,參數(shù)調(diào)整模塊30具體包括寫參數(shù)調(diào)整単元31,用于在待寫入?yún)?shù)的參數(shù)長度大于緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)待寫入?yún)?shù)的參數(shù)格式,調(diào)整緩存中對應(yīng)參數(shù)的參數(shù)格式,并將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至緩存的對應(yīng)參數(shù)中;讀參數(shù)調(diào)整單元32,用于在待填充參數(shù)的參數(shù)長度小于緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)待填充參數(shù)的參數(shù)長度,輸出緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至待填充參數(shù)中。本實施例在寫參數(shù)操作過程中,當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本吋,運行程序中待寫入?yún)?shù)的參數(shù)長度大于設(shè)備配置參數(shù)長度,此時,如果將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容直接寫入緩存的對應(yīng)參數(shù),則會造成待寫入?yún)?shù)的部分?jǐn)?shù)據(jù)丟失,因此寫參數(shù)調(diào)整単元31需要將緩存中對應(yīng)參數(shù)的參數(shù)長度増加到與待寫入?yún)?shù)的參數(shù)長度一致,通過動態(tài)自適應(yīng)的調(diào)整配置參數(shù)的參數(shù)格式,實現(xiàn)對不同版本程序的兼容。在讀參數(shù)操作過程中,當(dāng)運行程序版本低于設(shè)備已存在的配置參數(shù)版本時,運行程序中待填充參數(shù)的參數(shù)長度小于設(shè)備配置參數(shù)長度,此時,如果直接讀取緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容填充至待填充參數(shù)中,則會超出待填充參數(shù)的存儲空間,造成參數(shù)讀取錯誤,此時,讀參數(shù)調(diào)整單元32只需要將緩存中對應(yīng)參數(shù)的前半部分?jǐn)?shù)據(jù)內(nèi)容填充至待填充參數(shù)中即可,以完成對設(shè)備配置參數(shù)的參數(shù)格式動態(tài)自適應(yīng)調(diào)整,實現(xiàn)對不同版本程序的寫操作兼容性。本發(fā)明實施例中,參數(shù)格式還包括參數(shù)ID。寫參數(shù)調(diào)整単元31還用于,當(dāng)緩存中沒有對應(yīng)于待寫入?yún)?shù)的參數(shù)ID時,將待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容加載至緩存中;讀參數(shù)調(diào)整單元32還用于,當(dāng)緩存中沒有對應(yīng)于待填充參數(shù)的參數(shù)ID時,輸出空數(shù)據(jù)至待填充參數(shù)中。本實施例在寫參數(shù)操作過程中,當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本吋,由于當(dāng)前程序新増加了ー些功能,緩存中無法找到對應(yīng)于這些新增功能的參數(shù)ID,則無 法完成正常的寫參數(shù)操作。因此,寫參數(shù)調(diào)整単元31需將待寫入?yún)?shù)的參數(shù)ID和數(shù)據(jù)內(nèi)容加載至緩存中,以完成對設(shè)備配置參數(shù)的參數(shù)格式動態(tài)自適應(yīng)調(diào)整,實現(xiàn)對不同版本程序的寫操作兼容性。在讀參數(shù)操作過程中,當(dāng)運行程序版本高于設(shè)備已存在的配置參數(shù)版本吋,由于當(dāng)前程序新増加了ー些功能,緩存中無法找到對應(yīng)于這些新增功能的參數(shù)ID,即緩存中沒有這些新增功能參數(shù)ID的相關(guān)數(shù)據(jù),因此,讀參數(shù)調(diào)整單元32向待填充參數(shù)返回空數(shù)據(jù),例如全O數(shù)據(jù),作為提示信息。如圖12所示,圖12為本發(fā)明另ー實施例中兼容程序版本參數(shù)配置裝置的結(jié)構(gòu)示意圖,該實施例的兼容程序版本參數(shù)配置裝置還包括刷新模塊40,用于當(dāng)緩存中的參數(shù)有更新時,根據(jù)預(yù)設(shè)的刷新時間,將緩存中的所有參數(shù)加載至更新時間最早的配置文件中。本實施例通過刷新模塊40定時刷新的方式更新配置文件,即類似于定時備份操作,減少了備份次數(shù),提高了讀寫效率。同時,本實施例并未新増加備份文件,而是直接將緩存中的參數(shù)加載到配置文件隊列中已存在的配置文件中,有效減少了系統(tǒng)存儲空間。以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。
權(quán)利要求
1.一種兼容程序版本參數(shù)配置方法,其特征在于,包括步驟 在配置文件隊列中,將更新時間最晚且數(shù)據(jù)完整的配置文件中所有參數(shù)加載至緩存中; 在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式相匹配時,直接進行讀寫操作; 在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作。
2.根據(jù)權(quán)利要求I所述的兼容程序版本參數(shù)配置方法,其特征在于,所述參數(shù)格式包括參數(shù)長度,所述在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式相匹配時,直接進行讀寫操作的步驟具體包括 在所述待寫入?yún)?shù)的參數(shù)長度等于或小于所述緩存中對應(yīng)參數(shù)的參數(shù)長度吋,將所述待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至所述緩存的對應(yīng)參數(shù)中; 在所述待填充參數(shù)的參數(shù)長度等于或大于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,輸出所述緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至所述待填充參數(shù)中。
3.根據(jù)權(quán)利要求2所述的兼容程序版本參數(shù)配置方法,其特征在于,所述在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作的步驟具體包括 在所述待寫入?yún)?shù)的參數(shù)長度大于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)所述待寫入?yún)?shù)的參數(shù)長度,増加所述緩存中對應(yīng)參數(shù)的參數(shù)長度,并將所述待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至所述緩存的對應(yīng)參數(shù)中; 在所述待填充參數(shù)的參數(shù)長度小于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)所述待填充參數(shù)的參數(shù)長度,輸出所述緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至所述待填充參數(shù)中。
4 根據(jù)權(quán)利要求I至3任一項所述的兼容程序版本參數(shù)配置方法,其特征在于,所述參數(shù)格式包括參數(shù)ID,所述在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作的步驟具體還包括 當(dāng)所述緩存中沒有對應(yīng)于所述待寫入?yún)?shù)的參數(shù)ID吋,將所述待寫入?yún)?shù)的參數(shù)ID和數(shù)據(jù)內(nèi)容加載至所述緩存中; 當(dāng)所述緩存中沒有對應(yīng)于所述待填充參數(shù)的參數(shù)ID時,輸出空數(shù)據(jù)至所述待填充參數(shù)中。
5.根據(jù)權(quán)利要求4所述的兼容程序版本參數(shù)配置方法,其特征在于,還包括步驟 當(dāng)所述緩存中的參數(shù)有更新時,根據(jù)預(yù)設(shè)的刷新時間,將所述緩存中的所有參數(shù)加載至更新時間最早的配置文件中。
6.一種兼容程序版本參數(shù)配置裝置,其特征在于,包括 緩存加載模塊,用于在配置文件隊列中,將更新時間最晚且數(shù)據(jù)完整的配置文件中所有參數(shù)加載至緩存中; 參數(shù)匹配模塊,用于在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式相匹配時,直接進行讀寫操作; 參數(shù)調(diào)整模塊,用于在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作。
7.根據(jù)權(quán)利要求6所述的兼容程序版本參數(shù)配置裝置,其特征在于,所述參數(shù)格式包括參數(shù)長度,所述參數(shù)匹配模塊具體包括 寫參數(shù)匹配単元,用于在所述待寫入?yún)?shù)的參數(shù)長度等于或小于所述緩存中對應(yīng)參數(shù)的參數(shù)長度吋,將所述待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至所述緩存的對應(yīng)參數(shù)中; 讀參數(shù)匹配單元,用于在所述待填充參數(shù)的參數(shù)長度等于或大于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,輸出所述緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至所述待填充參數(shù)中。
8.根據(jù)權(quán)利要求7所述的兼容程序版本參數(shù)配置裝置,其特征在于,所述參數(shù)調(diào)整模塊具體包括 寫參數(shù)調(diào)整単元,用于在所述待寫入?yún)?shù)的參數(shù)長度大于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)所述待寫入?yún)?shù)的參數(shù)長度,増加所述緩存中對應(yīng)參數(shù)的參數(shù)長度,并將所述待寫入?yún)?shù)的數(shù)據(jù)內(nèi)容更新至所述緩存的對應(yīng)參數(shù)中; 讀參數(shù)調(diào)整單元,用于在所述待填充參數(shù)的參數(shù)長度小于所述緩存中對應(yīng)參數(shù)的參數(shù)長度時,根據(jù)所述待填充參數(shù)的參數(shù)長度,輸出所述緩存中對應(yīng)參數(shù)的數(shù)據(jù)內(nèi)容至所述待填充參數(shù)中。
9.根據(jù)權(quán)利要求6至8任一項所述的兼容程序版本參數(shù)配置裝置,其特征在于,所述參數(shù)格式包括參數(shù)ID, 所述寫參數(shù)調(diào)整單元還用干,當(dāng)所述緩存中沒有對應(yīng)于所述待寫入?yún)?shù)的參數(shù)ID吋,將所述待寫入?yún)?shù)的參數(shù)ID和數(shù)據(jù)內(nèi)容加載至所述緩存中; 所述讀參數(shù)調(diào)整單元還用于,當(dāng)所述緩存中沒有對應(yīng)于所述待填充參數(shù)的參數(shù)ID時,輸出空數(shù)據(jù)至所述待填充參數(shù)中。
10.根據(jù)權(quán)利要求9所述的兼容程序版本參數(shù)配置裝置,其特征在干,還包括刷新模塊,用于當(dāng)所述緩存中的參數(shù)有更新時,根據(jù)預(yù)設(shè)的刷新時間,將所述緩存中的所有參數(shù)加載至更新時間最早的配置文件中。
全文摘要
本發(fā)明公開了一種兼容程序版本參數(shù)配置方法和裝置,其方法包括步驟在配置文件隊列中,將更新時間最晚且數(shù)據(jù)完整的配置文件中所有參數(shù)的數(shù)據(jù)內(nèi)容加載至緩存中;在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式相匹配時,直接進行讀寫操作;在待寫入?yún)?shù)或待填充參數(shù)的參數(shù)格式與所述緩存中對應(yīng)參數(shù)的參數(shù)格式不匹配時,調(diào)整所述緩存中對應(yīng)參數(shù)的參數(shù)格式后,再進行讀寫操作。本發(fā)明通過多個配置文件交替讀寫的方式,有效提高配置文件中配置參數(shù)的可靠性,并根據(jù)不同版本的參數(shù)格式要求,動態(tài)自適應(yīng)的調(diào)整配置參數(shù)的參數(shù)格式,實現(xiàn)對不同版本程序的兼容。
文檔編號G06F9/445GK102707964SQ20121010197
公開日2012年10月3日 申請日期2012年4月9日 優(yōu)先權(quán)日2012年4月9日
發(fā)明者劉冰川, 毛宏偉, 解雄杰, 鄒佳龍, 郭鵬年 申請人:深圳市佳信捷電子有限公司