文件讀寫演示視頻
本文檔適合大彩M系列醫(yī)用級的串口屏產(chǎn)品使用。
1.VisualTFT軟件版本:V3.0.0.1111及以上的版本。
版本查看:
1)打開VisualTFT軟件啟動頁面如圖2-1軟件版本,右上角會顯示的軟件版本號;
圖2-1軟件版本
2) 打開VisualTFT,在軟件右下角可以查看軟件版本圖2-2軟件版本,最新版本可登錄http://gc086.com/進(jìn)行下載。
圖2-2軟件版本
2.串口屏硬件版本:V6.3.249.0 及以上的版本。
版本查看:
1) 查看屏幕背面版本號貼紙;
2) VisualTFT與屏幕聯(lián)機(jī)成功后,右下角顯示的版本號。
本例程中,介紹Lua系統(tǒng)函數(shù)中的文件API讀寫,其中F系列和M系列僅支持對SD卡讀寫,物聯(lián)型系列支持對屏內(nèi)及SD卡、U盤的讀寫。
1
《LUA 腳本API V1.4》可通過以下鏈接下載物聯(lián)型開發(fā)包獲取:
http:/gc086.com/index.php?s=/List/index/cid/19.html
2
《LUA基礎(chǔ)學(xué)習(xí)》可通過以下鏈接下載物聯(lián)型開發(fā)包獲取:
http:/gc086.com/index.php?s=/List/index/cid/19.html
3
LUA腳本初學(xué)者可以通過下面鏈接進(jìn)行學(xué)習(xí)。
http://www.runoob.com/lua/lua-arrays.html
4
AT指令,可以通過下面子連接了解
http://www.openluat.com/
本文主要將以下2點進(jìn)行說明:
1. 準(zhǔn)備工程素材;
2. 配置串口屏工程;
5.1 準(zhǔn)備工程素材
5.1.1 準(zhǔn)備工程素材
在實現(xiàn)例程前需要作以下3個準(zhǔn)備:
1. 硬件平臺;
2. 軟件平臺;
3. UI素材;
該例程使用大彩M系列7寸串口屏DC80480M070_1111_0T為驗證開發(fā)平臺。如圖5-1所示;
圖5-1 M系列7寸串口屏
其他尺寸、系列的串口屏均可借鑒此教程。
5.1.2 軟件平臺
使用大彩自主研發(fā)的上位機(jī)軟件VisualTFT配置工程,登錄http://gc086.com/下載。如圖5-2所示;
圖5-2下載軟件
5.2 配置串口屏工程
本文的文件主要介紹以下2點:
(1) 讀文件
(2) 寫文件
5.2.1 讀文件
本例程中的讀文件,是讀取SD根目錄下的‘1.txt’文件,并用數(shù)據(jù)記錄控件顯示出來,用戶可滑動數(shù)據(jù)記錄控件,查看‘1.txt’里面的內(nèi)容。
1. 畫面配置
在畫面ID1中,添加1個數(shù)據(jù)記錄控件(控件ID1)和一個按鈕控件(控件ID2),其中控件ID1用于顯示‘1.txt’文件的內(nèi)容??丶蘒D2 用于觸發(fā)讀取‘1.txt’文件的按鈕。畫面配置如圖5-3所示:
注意:其他非關(guān)鍵控件不在一一介紹,下文不在累述
圖5-3 畫面配置
2. LUA腳本編輯
本例程中,用戶點擊按鈕控件ID2后,將讀取SD目錄下載的‘1.txt’文件,并添加到數(shù)據(jù)記錄控件中顯示;若文件不存在,則彈框提示。代碼如程序清單1所示:
程序清單 1 讀文件
▲下滑查看
核心API函數(shù)
1) file_open(path,mode)
打開文件,成功返回true,失敗false
- path-文件路徑
- mode-打開模式,如下組合方式:
打開模式 |
值 |
FA_OPEN_EXISTING |
0x00 |
FA_READ |
0x01 |
FA_WRITE |
0x02 |
FA_CREATE_NEW |
0x04 |
FA_CREATE_ALWAYS |
0x08 |
FA_OPEN_ALWAYS |
0x10 |
例如:
打開文件用于讀取file_open(path, 0x01)
創(chuàng)建文件用于寫入file_open(path, 0x02|0x08)
2) file_size()
獲取當(dāng)前文件大小,返回字節(jié)數(shù)
例如:all_byte = file_size()
3) file_seek(offset)
定位文件讀取位置,成功返回true,失敗false
- offset-文件偏移位置
例如:定位到第2048個字節(jié),file_seek(2048)
4) file_read(count)
讀取文件內(nèi)容,成功返回table數(shù)組,失敗返回nil
- count-讀取字節(jié)數(shù),最大讀取2048個字節(jié)
例如:讀取2048個字節(jié),read_byte_Tb = file_read(2048)
5) file_close()
關(guān)閉文件,成功返回true,失敗false
基本思路:當(dāng)按鈕控件ID2按下的時候,觸發(fā)觸摸控件回調(diào)函數(shù)on_control_notify(),在調(diào)用自定義函數(shù)my_read_filedata()。
6) 關(guān)閉文件:文件讀取完畢,將該文件關(guān)閉。
5.2.2 寫文件
常用的寫文件操作主要有以下兩種:
2) 覆蓋寫:清空在寫入數(shù)據(jù)。本例程在SD卡目錄下,每次寫入創(chuàng)建一個新的NewFile.txt,并寫入數(shù)據(jù)。
追加寫和覆蓋寫的功能實現(xiàn)區(qū)別:
1) 打開方式:file_open(path,mode)。
- 追加寫:mode = FA_WRITE|FA_READ;
- 覆蓋寫:mode = FA_CREATE_ALWAYS|FA_WRITE;
2) 寫入位置:file_seek(offset)。
- 追加寫:offset = file_size() + (i - 1) * WriteOnceSize;其中WriteOnceSize為一次寫入數(shù)據(jù)的大小,i為循環(huán)寫入的次數(shù)。
- 覆蓋寫:offset = 0;
1. 畫面配置
在畫面ID2中,添加1個數(shù)據(jù)記錄控件、2個文本控件(控件ID2、控件ID4)和2個按鈕控件(控件ID3、控件ID5),其中數(shù)據(jù)記錄控件僅做顯示文件內(nèi)容效果。按鈕控件3用于體現(xiàn)追加寫功能,按鈕控件5用于覆蓋寫功能。畫面配置如圖5-4所示:
圖5-4 畫面配置
2. LUA腳本編輯
按鈕控件ID3按下時候,將文本控件ID2的內(nèi)容寫在SD根目錄下的‘1.txt’文件末尾(追加寫);按鈕控件ID5按下時候,將文本控件ID4的內(nèi)容寫在SD根目錄下的‘NewFile.txt’文件(覆蓋寫)代碼如程序清單 2所示。
程序清單 2 寫文件
▲下滑查看
核心API函數(shù)
1) file_open(path,mode)
相關(guān)說明參考讀文件章節(jié),不在贅述
2) file_size()
相關(guān)說明參考讀文件章節(jié),不在贅述
3) file_seek(offset)
相關(guān)說明參考讀文件章節(jié),不在贅述
4) file_write(data)
寫文件內(nèi)容,成功返回true,失敗返回false
- data-待寫入的table數(shù)組,索引從0開始,最大一次性寫2048個字節(jié)
5) file_close()
相關(guān)說明參考讀文件章節(jié),不在贅述
基本思路:當(dāng)按鈕控件ID3或按鈕控件ID5按下的時候,觸發(fā)觸摸控件回調(diào)函數(shù)on_control_notify(),在調(diào)用自定義函數(shù)my_write_filedata()。
1) 打開文件:
- 追加寫:以讀寫的方式(FA_READ|FA_WRITE:0x01|0x02)打開SD卡目錄下的1.txt文件。
- 覆蓋寫:以新建寫入的方式(FA_CREATE_ALWAYS|FA_WRITE:0x08|0x02)打開SD卡目錄下的NewFile.txt文件
6) 關(guān)閉文件:文件寫完后完畢,將該文件關(guān)閉。
5.3 下載工程
工程編譯成功后在輸出窗口會提示編譯成功,如圖5-4所示。編譯成功后點擊菜單欄中【工具】→【量產(chǎn)向?qū)А?,如圖5-5所示;
圖5-4編譯成功
圖5-5量產(chǎn)向?qū)?/span>
在彈窗中選中【SD卡下載】,然后把將文件夾中的private文件夾拷貝到SD卡中,如圖5-6和圖5-7所示;把SD卡接上串口屏后重新上電,等到提示燒錄工程成功后,拔掉SD卡重新上電即可。
圖5-6量產(chǎn)向?qū)?/span>
圖5-7拷貝到SD卡