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