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