淺析.Net Micro Framework的數(shù)據(jù)永久存儲
.Net Micro Framework不支持文件系統(tǒng)(目前該項功能正在研發(fā)之中),所以無法像Windows和windows ce平臺那樣把需要***保存的數(shù)據(jù)保存到文件之中。內(nèi)存中保存的數(shù)據(jù)只要系統(tǒng)一掉電,所有的數(shù)據(jù)也都消失了,這對一些需要保存參數(shù)的應(yīng)用來說真是不妙。
這幾天在研究MF觸摸屏功能時就遇到該問題,因為觸摸屏校準之后,需要保存校準后的參數(shù),否則MF一重啟,難道還需要重新校準不成?
感謝Donald Thompson 和 Rob S. Miles,從他們的大作上找到了問題的解決辦法。辦法就是把對象保存到Flash(EEPROM)中(有點像對象的二進制序列化)。
下面是我整理的示例代碼(實現(xiàn)比較簡單,但總覺得不太正規(guī),不知道能存多大,也搞不清楚數(shù)據(jù)到底存放在什么位置了。):
圖1建立存儲類
圖2建立存儲函數(shù)
圖3Bug預(yù)見處理
圖4保存數(shù)據(jù)
圖5存儲數(shù)據(jù)
以上代碼在Digi開發(fā)板上測試成功,斷電之后,再上電,保存的數(shù)據(jù)確實沒有丟失。
MSDN中相關(guān)函數(shù)的說明如下:
圖6繼承所用的數(shù)據(jù)結(jié)構(gòu)
圖7Field的設(shè)置
圖8Properties的設(shè)置
圖9方法的設(shè)置
【編輯推薦】