一、概述 本文主要闡述的是如何在串口屏中實現(xiàn)掉電保存的功能,即用戶在對文本輸入之后,設(shè)置了保存的操作之后,能夠?qū)崿F(xiàn)屏幕在掉電重新上電的情況下實現(xiàn)數(shù)據(jù)保存的功能,即重新上電還是顯示上次輸入的文本內(nèi)容。本例子主要是通過lua腳本的讀寫flash的函數(shù)來實現(xiàn)的,實現(xiàn)該功能有兩個方法:一是通過數(shù)組方式實現(xiàn),二是通過字符串的方式實現(xiàn),下面會一一介紹這兩種方法。 二、適用范圍 本文適用于廣州大彩F系列、物聯(lián)型等支持lua腳本的型號。其中,F(xiàn)系列的固件版本需達(dá)到349及以上,物聯(lián)型的需要在590以上。 三、實現(xiàn)方法 3.1 讀寫flash數(shù)據(jù)——以數(shù)組方式屏幕可供用戶使用的flash空間為128KB,可用于存儲配置參數(shù)。其中,flash地址大小為0-131071,對應(yīng)的一個地址對應(yīng)一個字節(jié)。相應(yīng)的數(shù)組讀取函數(shù)如圖 31所示。
1.png (31.79 KB, 下載次數(shù): 53)
下載附件
2020-5-19 14:16 上傳
圖 31以數(shù)組方式讀寫 3.1.1 界面配置本例子的實現(xiàn):用戶在界面上設(shè)置文本控件的輸入,輸入完成可通過點擊“保存”按鈕來實現(xiàn)將數(shù)值保存起來,斷電重新上電文本控件顯示上次輸入的值。本例子主要用到的是文本控件以及按鈕控件,界面設(shè)置如圖 32所示。
2.png (5.74 KB, 下載次數(shù): 50)
下載附件
大彩串口屏如何實現(xiàn)掉電保存功能
2020-5-19 14:16 上傳
圖 32數(shù)組方式界面編輯 本例子主要以一個字節(jié)的讀寫來做示范,對應(yīng)的數(shù)值大于255的話,對應(yīng)的需要對數(shù)據(jù)做高低位處理,然后按照高低位字節(jié)對應(yīng)存入數(shù)組里面。文本控件的設(shè)置如圖 33所示。
3.png (17.33 KB, 下載次數(shù): 46)
下載附件
大彩串口屏如何實現(xiàn)掉電保存功能
2020-5-19 14:17 上傳
圖 33小鍵盤輸入 3.1.2 腳本編寫腳本實現(xiàn)的功能:用戶在界面上設(shè)置文本控件的輸入,輸入完成可通過點擊“保存”按鈕來實現(xiàn)將數(shù)值保存起來,斷電重新上電文本控件顯示上次輸入的值。腳本的實現(xiàn)的思路:通過在按鈕控件的通知回調(diào)函數(shù)觸發(fā)數(shù)據(jù)以數(shù)組方式寫入到flash,由于是數(shù)組方式,所以獲取數(shù)值使用get_value(screen,control)來獲取。然后通過初始化函數(shù),即屏幕重新啟動的時候再將數(shù)據(jù)從flash讀取回來顯示。相應(yīng)的腳本實現(xiàn)如圖 34所示。
4.png (86.18 KB, 下載次數(shù): 44)
下載附件
2020-5-19 14:18 上傳
圖 34以數(shù)組讀寫的腳本 3.2 讀寫flash數(shù)據(jù)——以字符串方式相對于數(shù)組方式的讀寫來說,以字符串讀寫的方式會方便一點。具體表現(xiàn)為:字符串讀取函數(shù)直接設(shè)定起始存儲的地址,然后使用get_text(screen,control)將讀取的字符串存進(jìn)去就可以。然后讀取flash,對應(yīng)設(shè)定起始地址就可以將之前的字符串讀取出來。相應(yīng)的字符串讀取函數(shù)如圖 35所示。
5.png (35.66 KB, 下載次數(shù): 43)
下載附件
大彩串口屏如何實現(xiàn)掉電保存功能
2020-5-19 14:19 上傳
圖 35以字符串方式 注意:用戶需要給對應(yīng)的字符串估算一個最大需要的存儲空間,因為字符串讀寫的話,是全部字符串從起始地址開始直接存儲的,這也是避免不同的字符串存儲的地址重疊導(dǎo)致讀取有錯或者不完整。 3.2.1 界面配置界面的配置同樣是需要文本控件和按鈕控件,文本控件主要可以讓用戶輸入相應(yīng)的字符,包括數(shù)字、英文以及中文。然后點擊“保存”按鈕,對應(yīng)的輸入信息就會保存起來。相應(yīng)的界面配置如圖 36所示。
6.png (4.81 KB, 下載次數(shù): 57)
下載附件
大彩串口屏如何實現(xiàn)掉電保存功能
2020-5-19 14:20 上傳
圖 36字符串方式界面配置 以字符串方式存儲的方式,文本控件可以對應(yīng)輸入字符,包括數(shù)字、英文以及中文,故文本控件的輸入方式可設(shè)置成全鍵盤輸入,對應(yīng)的設(shè)置如圖 37所示。
7.png (19.77 KB, 下載次數(shù): 56)
下載附件
大彩串口屏如何實現(xiàn)掉電保存功能
2020-5-19 14:23 上傳
圖 37全鍵盤輸入 3.2.2 腳本編寫腳本實現(xiàn)的功能:用戶可以在文本控件輸入相應(yīng)的字符,點擊保存按鈕之后,屏幕斷電重新上電依然顯示上次輸入的字符。 腳本實現(xiàn)的思路:通過在按鈕控件的通知回調(diào)函數(shù)將文本控件輸入的字符以字符串方式寫入到flash,然后通過初始化函數(shù),即屏幕重新啟動的時候再將字符串從flash讀取回來顯示。相應(yīng)的腳本實現(xiàn)如圖 38和圖 39所示。
8.png (46.92 KB, 下載次數(shù): 49)
下載附件
2020-5-19 14:24 上傳
圖 38初始化讀取字符串
9.png (52.32 KB, 下載次數(shù): 56)
下載附件
2020-5-19 14:24 上傳
圖 39觸發(fā)字符串保存 4、總結(jié) 以上介紹的關(guān)于數(shù)組以及字符串讀寫flash的方法,對應(yīng)都有其使用的范圍。以數(shù)組方式保存的方法,是針對于用戶輸入的一些數(shù)據(jù),僅限于對應(yīng)數(shù)字的輸入,這個可以應(yīng)用于保存數(shù)字密碼、版本號或者配置參數(shù)等數(shù)據(jù)。以字符串方式保存的方法,應(yīng)用范圍相對于數(shù)組保存的要廣,對應(yīng)可以保存字符,包括數(shù)字、英文和中文,這部分可以應(yīng)用于保存參數(shù)名稱、字符密碼以及支持字符的數(shù)據(jù)。
|