「App:Library:LVGL:docs:Overview:File system」の版間の差分

提供: robot-jp wiki
ナビゲーションに移動検索に移動
 
(同じ利用者による、間の3版が非表示)
2行目: 2行目:
 
__NOTOC__
 
__NOTOC__
 
= File system =
 
= File system =
LVGL has a 'File system' abstraction module that enables you to attach any type of file system. A file system is identified by an assigned drive letter. For example, if an SD card is associated with the letter <code>'S'</code>, a file can be reached using <code>"S:path/to/file.txt"</code>.
+
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 +
LVGL has a 'File system' abstraction module that enables you to attach any type of file system.  
 +
 
 +
A file system is identified by an assigned drive letter.  
 +
 
 +
For example, if an SD card is associated with the letter <code style="color: #bb0000;">'S'</code>, a file can be reached using <code style="color: #bb0000;">"S:path/to/file.txt"</code>.
 +
|LVGLには'File system'抽象化モジュールがあり、任意の種類のファイルシステムをアタッチすることができます。
 +
ファイルシステムは、ドライブレターで識別されます。
 +
 
 +
例えば、SDカードに<code style="color: #bb0000;">'S'</code>という文字が割り当てられている場合、<code style="color: #bb0000;">"S:path/to/file.txt"</code>でファイルにアクセスすることができる。
 +
|}
 +
:[[App:Library:LVGL:docs:Overview#File_system|戻る : Previous]]
 +
 
  
 
== Ready to use drivers ==
 
== Ready to use drivers ==
The lv_fs_if repository contains prepared drivers using POSIX, standard C and the FATFS API. See its README for the details.
+
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 +
The lv_fs_if repository contains prepared drivers using POSIX, standard C and the FATFS API.  
 +
 
 +
See its README for the details.
 +
|lv_fs_ifリポジトリには、POSIX、標準C、FATFS APIを使用したドライバが用意されています。
 +
詳しくはREADMEをご覧ください。
 +
|}
 +
:[[App:Library:LVGL:docs:Overview#File_system|戻る : Previous]]
 +
 
  
 
== Adding a driver ==
 
== Adding a driver ==
 +
=== Registering a driver ===
 +
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 +
To add a driver, a <code style="color: #bb0000;">lv_fs_drv_t</code> needs to be initialized like below.
  
=== Registering a driver ===
+
The <code style="color: #bb0000;">lv_fs_drv_t</code> needs to be static, global or dynamically allocated and not a local variable.
To add a driver, a <code>lv_fs_drv_t</code> needs to be initialized like below. The <code>lv_fs_drv_t</code> needs to be static, global or dynamically allocated and not a local variable.
+
<syntaxhighlight lang="C++" style="border:1px dashed gray;">
 +
static lv_fs_drv_t drv;                  /*Needs to be static or global*/
 +
lv_fs_drv_init(&drv);                    /*Basic initialization*/
 +
 +
drv.letter = 'S';                        /*An uppercase letter to identify the drive */
 +
drv.cache_size = my_cahce_size;          /*Cache size for reading in bytes. 0 to not cache.*/
 +
 +
drv.ready_cb = my_ready_cb;              /*Callback to tell if the drive is ready to use */
 +
drv.open_cb = my_open_cb;                /*Callback to open a file */
 +
drv.close_cb = my_close_cb;              /*Callback to close a file */
 +
drv.read_cb = my_read_cb;                /*Callback to read a file */
 +
drv.write_cb = my_write_cb;              /*Callback to write a file */
 +
drv.seek_cb = my_seek_cb;                /*Callback to seek in a file (Move cursor) */
 +
drv.tell_cb = my_tell_cb;                /*Callback to tell the cursor position  */
 +
 +
drv.dir_open_cb = my_dir_open_cb;        /*Callback to open directory to read its content */
 +
drv.dir_read_cb = my_dir_read_cb;        /*Callback to read a directory's content */
 +
drv.dir_close_cb = my_dir_close_cb;      /*Callback to close a directory */
 +
 +
drv.user_data = my_user_data;            /*Any custom data if required*/
 +
 +
lv_fs_drv_register(&drv);                /*Finally register the drive*/
 +
</syntaxhighlight>
 +
Any of the callbacks can be <code style="color: #bb0000;">NULL</code> to indicate that operation is not supported.
 +
|ドライバを追加するには、以下のように<code style="color: #bb0000;">lv_fs_drv_t</code> を初期化する必要があります。
 +
<code style="color: #bb0000;">lv_fs_drv_t</code> は、ローカル変数ではなく、スタティック、グローバル、またはダイナミックにアロケートされたものである必要があります。<syntaxhighlight lang="C++" style="border:1px dashed gray;">
 
  static lv_fs_drv_t drv;                  /*Needs to be static or global*/
 
  static lv_fs_drv_t drv;                  /*Needs to be static or global*/
 
  lv_fs_drv_init(&drv);                    /*Basic initialization*/
 
  lv_fs_drv_init(&drv);                    /*Basic initialization*/
32行目: 92行目:
 
   
 
   
 
  lv_fs_drv_register(&drv);                /*Finally register the drive*/
 
  lv_fs_drv_register(&drv);                /*Finally register the drive*/
Any of the callbacks can be <code>NULL</code> to indicate that operation is not supported.
+
</syntaxhighlight>
 +
コールバックのいずれかを<code style="color: #bb0000;">NULL</code>にすることで、操作がサポートされていないことを示すことができる。
 +
|}
 +
:[[App:Library:LVGL:docs:Overview#File_system|戻る : Previous]]
 +
 
  
 
=== Implementing the callbacks ===
 
=== Implementing the callbacks ===
 +
==== Open callback ====
 +
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 +
The prototype of <code style="color: #bb0000;">open_cb</code> looks like this:
 +
void * (*open_cb)(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode);
 +
<code style="color: #bb0000;">path</code> is the path after the drive letter (e.g. "S:path/to/file.txt" -> "path/to/file.txt").
  
==== Open callback ====
+
<code style="color: #bb0000;">mode</code> can be <code style="color: #bb0000;">LV_FS_MODE_WR</code> or <code style="color: #bb0000;">LV_FS_MODE_RD</code> to open for writes or reads.
The prototype of <code>open_cb</code> looks like this:
+
 
 +
The return value is a pointer to a ''file object'' that describes the opened file or <code style="color: #bb0000;">NULL</code> if there were any issues (e.g. the file wasn't found).
 +
 
 +
The returned file object will be passed to other file system related callbacks. (see below)
 +
|<code style="color: #bb0000;">open_cb</code>のプロトタイプは以下のようなものです。
 
  void * (*open_cb)(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode);
 
  void * (*open_cb)(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode);
<code>path</code> is the path after the drive letter (e.g. "S:path/to/file.txt" -> "path/to/file.txt"). <code>mode</code> can be <code>LV_FS_MODE_WR</code> or <code>LV_FS_MODE_RD</code> to open for writes or reads.
+
<code style="color: #bb0000;">path</code> はドライブレターの後のパスです (例: "S:path/to/file.txt" -> "path/to/file.txt").  
 +
 
 +
<code style="color: #bb0000;">mode</code> には <code style="color: #bb0000;">LV_FS_MODE_WR</code> または <code style="color: #bb0000;">LV_FS_MODE_RD</code> を指定し、書き込みまたは読み出し用にオープンすることができます。
 +
 
 +
戻り値は、オープンしたファイルを記述したファイルオブジェクトへのポインタ、または何らかの問題(ファイルが見つからなかったなど)があった場合は<code style="color: #bb0000;">NULL</code> です。
 +
 
 +
返されたファイルオブジェクトは、他のファイルシステム関連のコールバック関数に渡されます。(下記参照)
 +
|}
 +
:[[App:Library:LVGL:docs:Overview#File_system|戻る : Previous]]
  
The return value is a pointer to a ''file object'' that describes the opened file or <code>NULL</code> if there were any issues (e.g. the file wasn't found). The returned file object will be passed to other file system related callbacks. (see below)
 
  
 
=== Other callbacks ===
 
=== Other callbacks ===
The other callbacks are quite similar. For example <code>write_cb</code> looks like this:
+
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 +
The other callbacks are quite similar.  
 +
 
 +
For example looks like this:
 +
<syntaxhighlight lang="C++" style="border:1px dashed gray;">
 
  lv_fs_res_t (*write_cb)(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw);
 
  lv_fs_res_t (*write_cb)(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw);
For <code>file_p</code>, LVGL passes the return value of <code>open_cb</code>, <code>buf</code> is the data to write, <code>btw</code> is the Bytes To Write, <code>bw</code> is the actually written bytes.
+
</syntaxhighlight>
 +
For <code style="color: #bb0000;">file_p</code>, LVGL passes the return value of <code style="color: #bb0000;">open_cb</code>,  
 +
 
 +
<code style="color: #bb0000;">buf</code> is the data to write,  
 +
 
 +
<code style="color: #bb0000;">btw</code> is the Bytes To Write,  
 +
 
 +
<code style="color: #bb0000;">bw</code> is the actually written bytes.
  
 
For a template of these callbacks see lv_fs_template.c.
 
For a template of these callbacks see lv_fs_template.c.
 +
|他のコールバックは非常によく似ています。
 +
例えば<code style="color: #bb0000;">write_cb</code> は以下のような感じです。<syntaxhighlight lang="C++" style="border:1px dashed gray;">
 +
lv_fs_res_t (*write_cb)(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw);
 +
</syntaxhighlight>
 +
<code style="color: #bb0000;">file_p</code>には、LVGLは<code style="color: #bb0000;">open_cb</code>の戻り値を渡し、
 +
 +
<code style="color: #bb0000;">buf</code>は書き込むデータ、
 +
 +
<code style="color: #bb0000;">btw</code> は書き込むバイト数、
 +
 +
<code style="color: #bb0000;">bw</code>は実際に書き込んだバイト数です。
 +
 +
これらのコールバックのテンプレートは,lv_fs_template.cを参照してください.
 +
|}
 +
:[[App:Library:LVGL:docs:Overview#File_system|戻る : Previous]]
 +
  
 
== Usage example ==
 
== Usage example ==
 +
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 
The example below shows how to read from a file:
 
The example below shows how to read from a file:
 +
<syntaxhighlight lang="C++" style="border:1px dashed gray;">
 +
lv_fs_file_t f;
 +
lv_fs_res_t res;
 +
res = lv_fs_open(&f, "S:folder/file.txt", LV_FS_MODE_RD);
 +
if(res != LV_FS_RES_OK) my_error_handling();
 +
 +
uint32_t read_num;
 +
uint8_t buf[8];
 +
res = lv_fs_read(&f, buf, 8, &read_num);
 +
if(res != LV_FS_RES_OK || read_num != 8) my_error_handling();
 +
 +
lv_fs_close(&f);
 +
</syntaxhighlight>
 +
''The mode in <code style="color: #bb0000;">lv_fs_open</code> can be <code style="color: #bb0000;">LV_FS_MODE_WR</code> to open for writes only or <code style="color: #bb0000;">LV_FS_MODE_RD | LV_FS_MODE_WR</code> for both''
 +
 +
This example shows how to read a directory's content.
 +
 +
It's up to the driver how to mark directories in the result but it can be a good practice to insert a <code style="color: #bb0000;">'/'</code> in front of each directory name.
 +
<syntaxhighlight lang="C++" style="border:1px dashed gray;">
 +
lv_fs_dir_t dir;
 +
lv_fs_res_t res;
 +
res = lv_fs_dir_open(&dir, "S:/folder");
 +
if(res != LV_FS_RES_OK) my_error_handling();
 +
 +
char fn[256];
 +
while(1) {
 +
    res = lv_fs_dir_read(&dir, fn);
 +
    if(res != LV_FS_RES_OK) {
 +
        my_error_handling();
 +
        break;
 +
    }
 +
 +
    /*fn is empty, if not more files to read*/
 +
    if(strlen(fn) == 0) {
 +
        break;
 +
    }
 +
 +
    printf("%s\n", fn);
 +
}
 +
 +
lv_fs_dir_close(&dir);
 +
</syntaxhighlight>
 +
|以下の例では、ファイルから読み取る方法を示しています。
 +
<syntaxhighlight lang="C++" style="border:1px dashed gray;">
 
  lv_fs_file_t f;
 
  lv_fs_file_t f;
 
  lv_fs_res_t res;
 
  lv_fs_res_t res;
63行目: 227行目:
 
   
 
   
 
  lv_fs_close(&f);
 
  lv_fs_close(&f);
''The mode in <code>lv_fs_open</code> can be <code>LV_FS_MODE_WR</code> to open for writes only or <code>LV_FS_MODE_RD | LV_FS_MODE_WR</code> for both''
+
</syntaxhighlight>
 +
''<code style="color: #bb0000;">lv_fs_open</code>'' のモードは,書き込み専用なら''<code style="color: #bb0000;">LV_FS_MODE_WR</code>'' ,両方なら''<code style="color: #bb0000;">LV_FS_MODE_RD | LV_FS_MODE_WR</code>''を指定することができます。
 +
 
 +
この例は、ディレクトリの内容を読み取る方法を示しています。
  
This example shows how to read a directory's content. It's up to the driver how to mark directories in the result but it can be a good practice to insert a <code>'/'</code> in front of each directory name.
+
結果の中でディレクトリをどのようにマークするかはドライバ次第ですが、各ディレクトリ名の前に<code style="color: #bb0000;">'/'</code>を挿入するのは良い習慣と言えるでしょう。<syntaxhighlight lang="C++" style="border:1px dashed gray;">
 
  lv_fs_dir_t dir;
 
  lv_fs_dir_t dir;
 
  lv_fs_res_t res;
 
  lv_fs_res_t res;
88行目: 255行目:
 
   
 
   
 
  lv_fs_dir_close(&dir);
 
  lv_fs_dir_close(&dir);
 +
</syntaxhighlight>
 +
|}
 +
:[[App:Library:LVGL:docs:Overview#File_system|戻る : Previous]]
 +
  
 
== Use drives for images ==
 
== Use drives for images ==
 +
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 
Image objects can be opened from files too (besides variables stored in the compiled program).
 
Image objects can be opened from files too (besides variables stored in the compiled program).
  
102行目: 278行目:
 
* seek
 
* seek
 
* tell
 
* tell
 +
|画像オブジェクトはファイルからも開くことができます(コンパイルされたプログラムに格納されている変数を除く)。
 +
 +
 +
 +
 +
画像ウィジェットでファイルを使用するには、次のコールバックが必要です。
 +
 +
* open
 +
* close
 +
* read
 +
* seek
 +
* tell
 +
|}
 +
:[[App:Library:LVGL:docs:Overview#File_system|戻る : Previous]]
 +
  
 
== API ==
 
== API ==
Typedefs
+
{| class="wikitable"
 +
!英文
 +
!自動翻訳
 +
|-
 +
|
 +
'''Typedefs'''
  
; <span id="_CPPv311lv_fs_res_t"></span><span id="_CPPv211lv_fs_res_t"></span><span id="lv_fs_res_t"></span><span id="lv__fs_8h_1a677bb0a100477713ea7bded7e9c47290" class="target"></span>typedef uint8_t lv_fs_res_t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_res_t] <span id="_CPPv311lv_fs_res_t"></span><span id="_CPPv211lv_fs_res_t"></span><span id="lv_fs_res_t"></span><span id="lv__fs_8h_1a677bb0a100477713ea7bded7e9c47290" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">typedef uint8_t lv_fs_res_t </span>
 
:
 
:
  
; <span id="_CPPv312lv_fs_mode_t"></span><span id="_CPPv212lv_fs_mode_t"></span><span id="lv_fs_mode_t"></span><span id="lv__fs_8h_1a7f24c7925b35cd1b9ff251a36ba21c1d" class="target"></span>typedef uint8_t l[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_res_t]v_fs_mode_t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv412lv_fs_mode_t] <span id="_CPPv312lv_fs_mode_t"></span><span id="_CPPv212lv_fs_mode_t"></span><span id="lv_fs_mode_t"></span><span id="lv__fs_8h_1a7f24c7925b35cd1b9ff251a36ba21c1d" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">typedef uint8_t lv_fs_mode_t </span>
 
:
 
:
  
; <span id="_CPPv311lv_fs_drv_t"></span><span id="_CPPv211lv_fs_drv_t"></span><span id="lv_fs_drv_t"></span><span id="lv__fs_8h_1ae4753375c8bf76a1c092017b5f377424" class="target"></span>typedef struct _lv[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv412lv_fs_mode_t]_fs_drv_t lv_fs_drv_t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_drv_t] <span id="_CPPv311lv_fs_drv_t"></span><span id="_CPPv211lv_fs_drv_t"></span><span id="lv_fs_drv_t"></span><span id="lv__fs_8h_1ae4753375c8bf76a1c092017b5f377424" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">typedef struct _lv_fs_drv_t lv_fs_drv_t </span>
 
:
 
:
  
Enums
+
'''Enums'''
  
; <span id="_CPPv3Ut2_55"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294c" class="target"></span>enum [anonymous][https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4Ut2_55] <span id="_CPPv3Ut2_55"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294c" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">enum [anonymous] </span>
: [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_drv_t]Errors in th[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4Ut2_55]e file system module.  ''Values:''
+
: Errors in the file system module.   
:; <span id="_CPPv3NUt2_5512LV_FS_RES_OKE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294cadb83c1c6f46cec603883477779145ae9" class="target"></span>enumerator LV_FS_RES_OK[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5512LV_FS_RES_OKE] <span id="_CPPv3NUt2_5512LV_FS_RES_OKE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294cadb83c1c6f46cec603883477779145ae9" class="target"></span>
+
: '''''Values:'''''
 +
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_OK </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5516LV_FS_RES_HW_ERRE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca77fa4663bf968acb863efb888233f707" class="target"></span>enumerator LV[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5512LV_FS_RES_OKE]_FS_RES_HW_ERR[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_HW_ERRE] <span id="_CPPv3NUt2_5516LV_FS_RES_HW_ERRE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca77fa4663bf968acb863efb888233f707" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_HW_ERR </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5516LV_FS_RES_FS_ERRE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294caa8e8b3feae9ef00e4a410326775c6a11" class="target"></span>enumerator LV_FS_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_HW_ERRE]RES_FS_ERR[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_FS_ERRE] <span id="_CPPv3NUt2_5516LV_FS_RES_FS_ERRE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294caa8e8b3feae9ef00e4a410326775c6a11" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_FS_ERR </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5516LV_FS_RES_NOT_EXE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca90092978c7bbac15595d3c6159d61a5c" class="target"></span>enumerator LV_FS_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_FS_ERRE]RES_NOT_EX[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_NOT_EXE] <span id="_CPPv3NUt2_5516LV_FS_RES_NOT_EXE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca90092978c7bbac15595d3c6159d61a5c" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_NOT_EX </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5514LV_FS_RES_FULLE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294caf5cb935649ee2a9b95782a82bd681550" class="target"></span>enumerator LV_FS_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_NOT_EXE]RES_FULL[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5514LV_FS_RES_FULLE] <span id="_CPPv3NUt2_5514LV_FS_RES_FULLE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294caf5cb935649ee2a9b95782a82bd681550" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_FULL </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5516LV_FS_RES_LOCKEDE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294cad606d18bca0e93e19ecdde780edaac6c" class="target"></span>enumerator LV_F[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5514LV_FS_RES_FULLE]S_RES_LOCKED[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_LOCKEDE] <span id="_CPPv3NUt2_5516LV_FS_RES_LOCKEDE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294cad606d18bca0e93e19ecdde780edaac6c" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_LOCKED </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5516LV_FS_RES_DENIEDE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca187409bac9eb65eb24b57e0b6da1ce6c" class="target"></span>enumerator LV_FS_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_LOCKEDE]RES_DENIED[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_DENIEDE] <span id="_CPPv3NUt2_5516LV_FS_RES_DENIEDE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca187409bac9eb65eb24b57e0b6da1ce6c" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_DENIED </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5514LV_FS_RES_BUSYE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca281318bee6fb440cdf8ad9f1efa7057e" class="target"></span>enumerator LV_FS_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5516LV_FS_RES_DENIEDE]RES_BUSY[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5514LV_FS_RES_BUSYE] <span id="_CPPv3NUt2_5514LV_FS_RES_BUSYE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca281318bee6fb440cdf8ad9f1efa7057e" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_BUSY </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5514LV_FS_RES_TOUTE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294caa0c19b94256b548037505c3d8dcadc75" class="target"></span>enumerator LV_F[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5514LV_FS_RES_BUSYE]S_RES_TOUT[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5514LV_FS_RES_TOUTE] <span id="_CPPv3NUt2_5514LV_FS_RES_TOUTE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294caa0c19b94256b548037505c3d8dcadc75" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_TOUT </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5517LV_FS_RES_NOT_IMPE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca7b6a8483614c8bf0b6c404ae017f8d83" class="target"></span>enumerator LV_F[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5514LV_FS_RES_TOUTE]S_RES_NOT_IMP[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5517LV_FS_RES_NOT_IMPE] <span id="_CPPv3NUt2_5517LV_FS_RES_NOT_IMPE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca7b6a8483614c8bf0b6c404ae017f8d83" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_NOT_IMP </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5520LV_FS_RES_OUT_OF_MEME"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca83dfd99b60dd6daae89e4c7eafcd3452" class="target"></span>enumerator LV_FS_R[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5517LV_FS_RES_NOT_IMPE]ES_OUT_OF_MEM[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5520LV_FS_RES_OUT_OF_MEME] <span id="_CPPv3NUt2_5520LV_FS_RES_OUT_OF_MEME"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca83dfd99b60dd6daae89e4c7eafcd3452" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_OUT_OF_MEM </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5519LV_FS_RES_INV_PARAME"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca528c1c214eaa1dc525d4020989ab9b5e" class="target"></span>enumerator LV_FS_RES_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5520LV_FS_RES_OUT_OF_MEME]INV_PARAM[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5519LV_FS_RES_INV_PARAME] <span id="_CPPv3NUt2_5519LV_FS_RES_INV_PARAME"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294ca528c1c214eaa1dc525d4020989ab9b5e" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_INV_PARAM </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5517LV_FS_RES_UNKNOWNE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294caf03bed259b560859bc21026670ba0283" class="target"></span>enumerator LV_FS_RES[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5519LV_FS_RES_INV_PARAME]_UNKNOWN[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5517LV_FS_RES_UNKNOWNE] <span id="_CPPv3NUt2_5517LV_FS_RES_UNKNOWNE"></span><span id="lv__fs_8h_1a1be3860693af99a6c1da72580097294caf03bed259b560859bc21026670ba0283" class="target"></span>
+
: <span style="background-color: #eeeeee;">enumerator LV_FS_RES_UNKNOWN </span>
 
::
 
::
  
; <span id="_CPPv3Ut2_56"></span><span id="lv__fs_8h_1ac9420823bfeba78fce625fc105e3b01d" class="target"></span>enum [anonymous][https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5517LV_FS_RES_UNKNOWNE][https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4Ut2_56] <span id="_CPPv3Ut2_56"></span><span id="lv__fs_8h_1ac9420823bfeba78fce625fc105e3b01d" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">enum [anonymous] </span>
: File open mo[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4Ut2_56]de.  ''Values:''
+
: File open mode. 
:; <span id="_CPPv3NUt2_5613LV_FS_MODE_WRE"></span><span id="lv__fs_8h_1ac9420823bfeba78fce625fc105e3b01dad2cca4ecbe5348610a336fa2eac561d0" class="target"></span>enumerator LV_FS_MODE_WR[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5613LV_FS_MODE_WRE] <span id="_CPPv3NUt2_5613LV_FS_MODE_WRE"></span><span id="lv__fs_8h_1ac9420823bfeba78fce625fc105e3b01dad2cca4ecbe5348610a336fa2eac561d0" class="target"></span>
+
: '''''Values:'''''
 +
: <span style="background-color: #eeeeee;">enumerator LV_FS_MODE_WR </span>
 +
::
 +
: <span style="background-color: #eeeeee;">enumerator LV_FS_MODE_RD </span>
 +
::
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">enum lv_fs_whence_t </span>
 +
: Seek modes.
 +
: '''''Values:'''''
 +
: <span style="background-color: #eeeeee;">enumerator LV_FS_SEEK_SET </span>
 +
:: Set the position from absolutely (from the start of file)
 +
: <span style="background-color: #eeeeee;">enumerator LV_FS_SEEK_CUR </span>
 +
:: Set the position from the current position
 +
: <span style="background-color: #eeeeee;">enumerator LV_FS_SEEK_END </span>
 +
:: Set the position from the end of the file
 +
|'''Typedefs'''
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">typedef uint8_t lv_fs_res_t </span>
 +
:
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">typedef uint8_t lv_fs_mode_t </span>
 +
:
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">typedef struct _lv_fs_drv_t lv_fs_drv_t </span>
 +
:
 +
 
 +
'''Enums'''
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">enum [anonymous] </span>
 +
: ファイルシステムモジュールのエラー。
 +
:'''''Values:'''''
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_OK </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_HW_ERR </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_FS_ERR </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_NOT_EX </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_FULL </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_LOCKED </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_DENIED </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_BUSY </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_TOUT </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_NOT_IMP </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_OUT_OF_MEM </span>
 +
::
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_INV_PARAM </span>
 
::
 
::
:; <span id="_CPPv3NUt2_5613LV_FS_MODE_RDE"></span><span id="lv__fs_8h_1ac9420823bfeba78fce625fc105e3b01dabb6092a0bb0d3cf8e1d344fcb5320bfd" class="target"></span>enumerator LV_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5613LV_FS_MODE_WRE]FS_MODE_RD[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5613LV_FS_MODE_RDE] <span id="_CPPv3NUt2_5613LV_FS_MODE_RDE"></span><span id="lv__fs_8h_1ac9420823bfeba78fce625fc105e3b01dabb6092a0bb0d3cf8e1d344fcb5320bfd" class="target"></span>
+
:<span style="background-color: #eeeeee;">enumerator LV_FS_RES_UNKNOWN </span>
 
::
 
::
  
; <span id="_CPPv314lv_fs_whence_t"></span><span id="_CPPv214lv_fs_whence_t"></span><span id="lv__fs_8h_1aedf4c57e970342cb1eb2ddaeac93267b" class="target"></span>enum lv_fs_w[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4NUt2_5613LV_FS_MODE_RDE]hence_t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_whence_t] <span id="_CPPv314lv_fs_whence_t"></span><span id="_CPPv214lv_fs_whence_t"></span><span id="lv__fs_8h_1aedf4c57e970342cb1eb2ddaeac93267b" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">enum [anonymous] </span>
: Seek modes. ''Va''[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_whence_t]''lues:''
+
: File open mode.
:; <span id="_CPPv3N14lv_fs_whence_t14LV_FS_SEEK_SETE"></span><span id="_CPPv2N14lv_fs_whence_t14LV_FS_SEEK_SETE"></span><span id="lv__fs_8h_1aedf4c57e970342cb1eb2ddaeac93267baeab4de99544eff8575fed2fee38cd6c5" class="target"></span>enumerator LV_FS_SEEK_SET[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N14lv_fs_whence_t14LV_FS_SEEK_SETE] <span id="_CPPv3N14lv_fs_whence_t14LV_FS_SEEK_SETE"></span><span id="_CPPv2N14lv_fs_whence_t14LV_FS_SEEK_SETE"></span><span id="lv__fs_8h_1aedf4c57e970342cb1eb2ddaeac93267baeab4de99544eff8575fed2fee38cd6c5" class="target"></span>
+
:'''''Values:'''''
:: Set the position from[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N14lv_fs_whence_t14LV_FS_SEEK_SETE] absolutely (from the start of file)
+
:<span style="background-color: #eeeeee;">enumerator LV_FS_MODE_WR </span>
:; <span id="_CPPv3N14lv_fs_whence_t14LV_FS_SEEK_CURE"></span><span id="_CPPv2N14lv_fs_whence_t14LV_FS_SEEK_CURE"></span><span id="lv__fs_8h_1aedf4c57e970342cb1eb2ddaeac93267bae2d8f6afe283d333394a7af28e858196" class="target"></span>enumerator LV_FS_SEEK_CUR[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N14lv_fs_whence_t14LV_FS_SEEK_CURE] <span id="_CPPv3N14lv_fs_whence_t14LV_FS_SEEK_CURE"></span><span id="_CPPv2N14lv_fs_whence_t14LV_FS_SEEK_CURE"></span><span id="lv__fs_8h_1aedf4c57e970342cb1eb2ddaeac93267bae2d8f6afe283d333394a7af28e858196" class="target"></span>
+
::
:: Set the position from[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N14lv_fs_whence_t14LV_FS_SEEK_CURE] the current position
+
:<span style="background-color: #eeeeee;">enumerator LV_FS_MODE_RD </span>
:; <span id="_CPPv3N14lv_fs_whence_t14LV_FS_SEEK_ENDE"></span><span id="_CPPv2N14lv_fs_whence_t14LV_FS_SEEK_ENDE"></span><span id="lv__fs_8h_1aedf4c57e970342cb1eb2ddaeac93267bab0f1a6bb2458d1531627e1be79eb79ac" class="target"></span>enumerator LV_FS_SEEK_END[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N14lv_fs_whence_t14LV_FS_SEEK_ENDE] <span id="_CPPv3N14lv_fs_whence_t14LV_FS_SEEK_ENDE"></span><span id="_CPPv2N14lv_fs_whence_t14LV_FS_SEEK_ENDE"></span><span id="lv__fs_8h_1aedf4c57e970342cb1eb2ddaeac93267bab0f1a6bb2458d1531627e1be79eb79ac" class="target"></span>
+
::
:: Set the position from[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N14lv_fs_whence_t14LV_FS_SEEK_ENDE] the end of the file
 
  
Functions
+
<span style="background-color:#e7f2fa;color:#2980b9;">enum lv_fs_whence_t </span>
 +
: シークモード。
 +
:'''''Values:'''''
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_SEEK_SET </span>
 +
:: 位置を絶対位置 (ファイルの先頭から) から設定
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_SEEK_CUR </span>
 +
:: 現在の位置からの位置を設定します
 +
:<span style="background-color: #eeeeee;">enumerator LV_FS_SEEK_END </span>
 +
:: ファイルの末尾からの位置を設定する
 +
|-
 +
|
 +
'''Functions'''
  
; <span id="_CPPv311_lv_fs_initv"></span><span id="_CPPv211_lv_fs_initv"></span><span id="_lv_fs_init__void"></span><span id="lv__fs_8h_1adc8beccbcb0961436c1680751ef54afc" class="target"></span>void _lv_fs_init(void)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411_lv_fs_initv] <span id="_CPPv311_lv_fs_initv"></span><span id="_CPPv211_lv_fs_initv"></span><span id="_lv_fs_init__void"></span><span id="lv__fs_8h_1adc8beccbcb0961436c1680751ef54afc" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">void _lv_fs_init(void) </span>
: Initialize the Fil[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411_lv_fs_initv]e system interface
+
: Initialize the File system interface
  
; <span id="_CPPv314lv_fs_drv_initP11lv_fs_drv_t"></span><span id="_CPPv214lv_fs_drv_initP11lv_fs_drv_t"></span><span id="lv_fs_drv_init__lv_fs_drv_tP"></span><span id="lv__fs_8h_1a0c8cc12755f7515de54ec9064e83af75" class="target"></span>void lv_fs_drv_init(lv_fs_drv_t *drv)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_drv_initP11lv_fs_drv_t] <span id="_CPPv314lv_fs_drv_initP11lv_fs_drv_t"></span><span id="_CPPv214lv_fs_drv_initP11lv_fs_drv_t"></span><span id="lv_fs_drv_init__lv_fs_drv_tP"></span><span id="lv__fs_8h_1a0c8cc12755f7515de54ec9064e83af75" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_fs_drv_init(lv_fs_drv_t *drv) </span>
: Initialize a file system driver w[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_drv_initP11lv_fs_drv_t]ith default values. It is used to surly have known values in the fields ant not memory junk. After it you can set the fields.
+
: Initialize a file system driver with default values.  
:; Parameters
+
: It is used to surly have known values in the fields ant not memory junk.  
:: drv -- pointer to driver variable to initialize
+
: After it you can set the fields.
 +
:  
 +
:'''Parameters'''
 +
:: '''drv''' -- pointer to driver variable to initialize
  
; <span id="_CPPv318lv_fs_drv_registerP11lv_fs_drv_t"></span><span id="_CPPv218lv_fs_drv_registerP11lv_fs_drv_t"></span><span id="lv_fs_drv_register__lv_fs_drv_tP"></span><span id="lv__fs_8h_1a2540b36d20b26416d944092a818b7be6" class="target"></span>void lv_fs_drv_register(lv_fs_drv_t *drv)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv418lv_fs_drv_registerP11lv_fs_drv_t] <span id="_CPPv318lv_fs_drv_registerP11lv_fs_drv_t"></span><span id="_CPPv218lv_fs_drv_registerP11lv_fs_drv_t"></span><span id="lv_fs_drv_register__lv_fs_drv_tP"></span><span id="lv__fs_8h_1a2540b36d20b26416d944092a818b7be6" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_fs_drv_register(lv_fs_drv_t *drv) </span>
 
: Add a new drive
 
: Add a new drive
:; Parameters
+
: '''Parameters'''
:: drv [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv418lv_fs_drv_registerP11lv_fs_drv_t]-- pointer to an lv_fs_drv_t structure which is inited with the corresponding function pointers. Only pointer is saved, so the driver should be static or dynamically allocated.
+
:: '''drv''' -- pointer to an lv_fs_drv_t structure which is inited with the corresponding function pointers.  
 +
:: Only pointer is saved, so the driver should be static or dynamically allocated.
  
; <span id="_CPPv313lv_fs_get_drvc"></span><span id="_CPPv213lv_fs_get_drvc"></span><span id="lv_fs_get_drv__c"></span><span id="lv__fs_8h_1ae0baa7925cb2524f56035fa46047e769" class="target"></span>lv_fs_drv_t *lv_fs_get_drv(char letter)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv413lv_fs_get_drvc] <span id="_CPPv313lv_fs_get_drvc"></span><span id="_CPPv213lv_fs_get_drvc"></span><span id="lv_fs_get_drv__c"></span><span id="lv__fs_8h_1ae0baa7925cb2524f56035fa46047e769" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_drv_t *lv_fs_get_drv(char letter) </span>
: Give a pointer to a driver from its[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv413lv_fs_get_drvc] letter
+
: Give a pointer to a driver from its letter
:; Parameters
+
: '''Parameters'''
:: letter -- the driver letter
+
:: '''letter''' -- the driver letter
:; Returns
+
: '''Returns'''
 
:: pointer to a driver or NULL if not found
 
:: pointer to a driver or NULL if not found
  
; <span id="_CPPv314lv_fs_is_readyc"></span><span id="_CPPv214lv_fs_is_readyc"></span><span id="lv_fs_is_ready__c"></span><span id="lv__fs_8h_1a4afefd5dbe151665fa2a24ad0a1eeff8" class="target"></span>bool lv_fs_is_ready(char letter)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_is_readyc] <span id="_CPPv314lv_fs_is_readyc"></span><span id="_CPPv214lv_fs_is_readyc"></span><span id="lv_fs_is_ready__c"></span><span id="lv__fs_8h_1a4afefd5dbe151665fa2a24ad0a1eeff8" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">bool lv_fs_is_ready(char letter) </span>
: Test if a drive is ready or [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_is_readyc]not. If the <code>ready</code> function was not initialized <code>true</code> will be returned.
+
: Test if a drive is ready or not. If the <code style="color: #bb0000;">ready</code> function was not initialized <code style="color: #bb0000;">true</code> will be returned.
:; Parameters
+
: '''Parameters'''
:: letter -- letter of the drive
+
:: '''letter''' -- letter of the drive
:; Returns
+
: '''Returns'''
:: true: drive is ready; false: drive is not ready
+
:: '''true''': drive is ready; false: drive is not ready
  
; <span id="_CPPv310lv_fs_openP12lv_fs_file_tPKc12lv_fs_mode_t"></span><span id="_CPPv210lv_fs_openP12lv_fs_file_tPKc12lv_fs_mode_t"></span><span id="lv_fs_open__lv_fs_file_tP.cCP.lv_fs_mode_t"></span><span id="lv__fs_8h_1a339d0b51618dbcec593d0f4081348e5d" class="target"></span>lv_fs_res_t lv_fs_open(lv_fs_file_t *file_p, const char *path, lv_fs_mode_t mode)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv410lv_fs_openP12lv_fs_file_tPKc12lv_fs_mode_t] <span id="_CPPv310lv_fs_openP12lv_fs_file_tPKc12lv_fs_mode_t"></span><span id="_CPPv210lv_fs_openP12lv_fs_file_tPKc12lv_fs_mode_t"></span><span id="lv_fs_open__lv_fs_file_tP.cCP.lv_fs_mode_t"></span><span id="lv__fs_8h_1a339d0b51618dbcec593d0f4081348e5d" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_open(lv_fs_file_t *file_p, const char *path, lv_fs_mode_t mode) </span>
 
: Open a file
 
: Open a file
:; Parameters
+
: '''Parameters'''
::* file_p -- pointer to a lv_fs_file_t variable
+
::* '''file_p''' -- pointer to a lv_fs_file_t variable
[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv410lv_fs_openP12lv_fs_file_tPKc12lv_fs_mode_t]
+
 
::* path -- path to the file beginning with the driver letter (e.g. S:/folder/file.txt)
+
::* '''path''' -- path to the file beginning with the driver letter (e.g. S:/folder/file.txt)
::* mode -- read: FS_MODE_RD, write: FS_MODE_WR, both: FS_MODE_RD | FS_MODE_WR
+
::* '''mode''' -- read: FS_MODE_RD, write: FS_MODE_WR, both: FS_MODE_RD | FS_MODE_WR
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
  
; <span id="_CPPv311lv_fs_closeP12lv_fs_file_t"></span><span id="_CPPv211lv_fs_closeP12lv_fs_file_t"></span><span id="lv_fs_close__lv_fs_file_tP"></span><span id="lv__fs_8h_1a695f81fd4c47d1ace4dce3ebb536e531" class="target"></span>lv_fs_res_t lv_fs_close(lv_fs_file_t *file_p)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_closeP12lv_fs_file_t] <span id="_CPPv311lv_fs_closeP12lv_fs_file_t"></span><span id="_CPPv211lv_fs_closeP12lv_fs_file_t"></span><span id="lv_fs_close__lv_fs_file_tP"></span><span id="lv__fs_8h_1a695f81fd4c47d1ace4dce3ebb536e531" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_close(lv_fs_file_t *file_p) </span>
 
: Close an already opened file
 
: Close an already opened file
:; Parameter[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_closeP12lv_fs_file_t]s
+
: '''Parameters'''
:: file_p -- pointer to a lv_fs_file_t variable
+
:: '''file_p''' -- pointer to a lv_fs_file_t variable
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
  
; <span id="_CPPv310lv_fs_readP12lv_fs_file_tPv8uint32_tP8uint32_t"></span><span id="_CPPv210lv_fs_readP12lv_fs_file_tPv8uint32_tP8uint32_t"></span><span id="lv_fs_read__lv_fs_file_tP.voidP.uint32_t.uint32_tP"></span><span id="lv__fs_8h_1aaeeaf5fdcf642f3d7af4828e1e74fbb7" class="target"></span>lv_fs_res_t lv_fs_read(lv_fs_file_t *file_p, void *buf, uint32_t btr, uint32_t *br)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv410lv_fs_readP12lv_fs_file_tPv8uint32_tP8uint32_t] <span id="_CPPv310lv_fs_readP12lv_fs_file_tPv8uint32_tP8uint32_t"></span><span id="_CPPv210lv_fs_readP12lv_fs_file_tPv8uint32_tP8uint32_t"></span><span id="lv_fs_read__lv_fs_file_tP.voidP.uint32_t.uint32_tP"></span><span id="lv__fs_8h_1aaeeaf5fdcf642f3d7af4828e1e74fbb7" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_read(lv_fs_file_t *file_p, void *buf, uint32_t btr, uint32_t *br) </span>
 
: Read from a file
 
: Read from a file
:; Parameters
+
: '''Parameters'''
::* file_p -- pointer to a lv_fs_file_t variabl[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv410lv_fs_readP12lv_fs_file_tPv8uint32_tP8uint32_t]e
+
::* '''file_p''' -- pointer to a lv_fs_file_t variable
::* buf -- pointer to a buffer where the read bytes are stored
+
::* '''buf''' -- pointer to a buffer where the read bytes are stored
::* btr -- Bytes To Read
+
::* '''btr''' -- Bytes To Read
::* br -- the number of real read bytes (Bytes Read). NULL if unused.
+
::* '''br''' -- the number of real read bytes (Bytes Read). NULL if unused.
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
  
; <span id="_CPPv311lv_fs_writeP12lv_fs_file_tPKv8uint32_tP8uint32_t"></span><span id="_CPPv211lv_fs_writeP12lv_fs_file_tPKv8uint32_tP8uint32_t"></span><span id="lv_fs_write__lv_fs_file_tP.voidCP.uint32_t.uint32_tP"></span><span id="lv__fs_8h_1a924b9bb284d7cf2681bf54851a9e5138" class="target"></span>lv_fs_res_t lv_fs_write(lv_fs_file_t *file_p, const void *buf, uint32_t btw, uint32_t *bw)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_writeP12lv_fs_file_tPKv8uint32_tP8uint32_t] <span id="_CPPv311lv_fs_writeP12lv_fs_file_tPKv8uint32_tP8uint32_t"></span><span id="_CPPv211lv_fs_writeP12lv_fs_file_tPKv8uint32_tP8uint32_t"></span><span id="lv_fs_write__lv_fs_file_tP.voidCP.uint32_t.uint32_tP"></span><span id="lv__fs_8h_1a924b9bb284d7cf2681bf54851a9e5138" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_write(lv_fs_file_t *file_p, const void *buf, uint32_t btw, uint32_t *bw) </span>
 
: Write into a file
 
: Write into a file
:; Parameters
+
: '''Parameters'''
::* file_p -- pointer to a lv_fs_file_t variable
+
::* '''file_p''' -- pointer to a lv_fs_file_t variable
::* b[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_writeP12lv_fs_file_tPKv8uint32_tP8uint32_t]uf -- pointer to a buffer with the bytes to write
+
::* '''buf''' -- pointer to a buffer with the bytes to write
::* btr -- Bytes To Write
+
::* '''btr''' -- Bytes To Write
::* br -- the number of real written bytes (Bytes Written). NULL if unused.
+
::* '''br''' -- the number of real written bytes (Bytes Written). NULL if unused.
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
  
; <span id="_CPPv310lv_fs_seekP12lv_fs_file_t8uint32_t14lv_fs_whence_t"></span><span id="_CPPv210lv_fs_seekP12lv_fs_file_t8uint32_t14lv_fs_whence_t"></span><span id="lv_fs_seek__lv_fs_file_tP.uint32_t.lv_fs_whence_t"></span><span id="lv__fs_8h_1a0bfb4e9168e6d4029713ac8016dbb2a5" class="target"></span>lv_fs_res_t lv_fs_seek(lv_fs_file_t *file_p, uint32_t pos, lv_fs_whence_t whence)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv410lv_fs_seekP12lv_fs_file_t8uint32_t14lv_fs_whence_t] <span id="_CPPv310lv_fs_seekP12lv_fs_file_t8uint32_t14lv_fs_whence_t"></span><span id="_CPPv210lv_fs_seekP12lv_fs_file_t8uint32_t14lv_fs_whence_t"></span><span id="lv_fs_seek__lv_fs_file_tP.uint32_t.lv_fs_whence_t"></span><span id="lv__fs_8h_1a0bfb4e9168e6d4029713ac8016dbb2a5" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_seek(lv_fs_file_t *file_p, uint32_t pos, lv_fs_whence_t whence) </span>
 
: Set the position of the 'cursor' (read write pointer) in a file
 
: Set the position of the 'cursor' (read write pointer) in a file
:; Parameters[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv410lv_fs_seekP12lv_fs_file_t8uint32_t14lv_fs_whence_t]
+
: '''Parameters'''
::* file_p -- pointer to a lv_fs_file_t variable
+
::* '''file_p''' -- pointer to a lv_fs_file_t variable
::* pos -- the new position expressed in bytes index (0: start of file)
+
::* '''pos''' -- the new position expressed in bytes index (0: start of file)
::* whence -- tells from where set the position. See @lv_fs_whence_t
+
::* '''whence''' -- tells from where set the position. See @lv_fs_whence_t
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
  
; <span id="_CPPv310lv_fs_tellP12lv_fs_file_tP8uint32_t"></span><span id="_CPPv210lv_fs_tellP12lv_fs_file_tP8uint32_t"></span><span id="lv_fs_tell__lv_fs_file_tP.uint32_tP"></span><span id="lv__fs_8h_1a0d793e1972228df85d3161556d78cbde" class="target"></span>lv_fs_res_t lv_fs_tell(lv_fs_file_t *file_p, uint32_t *pos)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv410lv_fs_tellP12lv_fs_file_tP8uint32_t] <span id="_CPPv310lv_fs_tellP12lv_fs_file_tP8uint32_t"></span><span id="_CPPv210lv_fs_tellP12lv_fs_file_tP8uint32_t"></span><span id="lv_fs_tell__lv_fs_file_tP.uint32_tP"></span><span id="lv__fs_8h_1a0d793e1972228df85d3161556d78cbde" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_tell(lv_fs_file_t *file_p, uint32_t *pos) </span>
 
: Give the position of the read write pointer
 
: Give the position of the read write pointer
:; Paramete[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv410lv_fs_tellP12lv_fs_file_tP8uint32_t]rs
+
: '''Parameters'''
::* file_p -- pointer to a lv_fs_file_t variable
+
::* '''file_p''' -- pointer to a lv_fs_file_t variable
::* pos_p -- pointer to store the position of the read write pointer
+
::* '''pos_p''' -- pointer to store the position of the read write pointer
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from 'fs_res_t'
 
:: LV_FS_RES_OK or any error from 'fs_res_t'
  
; <span id="_CPPv314lv_fs_dir_openP11lv_fs_dir_tPKc"></span><span id="_CPPv214lv_fs_dir_openP11lv_fs_dir_tPKc"></span><span id="lv_fs_dir_open__lv_fs_dir_tP.cCP"></span><span id="lv__fs_8h_1a6380108bb1bb9c1a614e22563e5b557c" class="target"></span>lv_fs_res_t lv_fs_dir_open(lv_fs_dir_t *rddir_p, const char *path)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_dir_openP11lv_fs_dir_tPKc] <span id="_CPPv314lv_fs_dir_openP11lv_fs_dir_tPKc"></span><span id="_CPPv214lv_fs_dir_openP11lv_fs_dir_tPKc"></span><span id="lv_fs_dir_open__lv_fs_dir_tP.cCP"></span><span id="lv__fs_8h_1a6380108bb1bb9c1a614e22563e5b557c" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_dir_open(lv_fs_dir_t *rddir_p, const char *path) </span>
 
: Initialize a 'fs_dir_t' variable for directory reading
 
: Initialize a 'fs_dir_t' variable for directory reading
:; Para[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_dir_openP11lv_fs_dir_tPKc]meters
+
: '''Parameters'''
::* rddir_p -- pointer to a 'lv_fs_dir_t' variable
+
::* '''rddir_p''' -- pointer to a 'lv_fs_dir_t' variable
::* path -- path to a directory
+
::* '''path''' -- path to a directory
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
  
; <span id="_CPPv314lv_fs_dir_readP11lv_fs_dir_tPc"></span><span id="_CPPv214lv_fs_dir_readP11lv_fs_dir_tPc"></span><span id="lv_fs_dir_read__lv_fs_dir_tP.cP"></span><span id="lv__fs_8h_1ab9c9175c0135f2b0864edd7e30c4f633" class="target"></span>lv_fs_res_t lv_fs_dir_read(lv_fs_dir_t *rddir_p, char *fn)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_dir_readP11lv_fs_dir_tPc] <span id="_CPPv314lv_fs_dir_readP11lv_fs_dir_tPc"></span><span id="_CPPv214lv_fs_dir_readP11lv_fs_dir_tPc"></span><span id="lv_fs_dir_read__lv_fs_dir_tP.cP"></span><span id="lv__fs_8h_1ab9c9175c0135f2b0864edd7e30c4f633" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_dir_read(lv_fs_dir_t *rddir_p, char *fn) </span>
: Read the next filename form a directory. The name of t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_dir_readP11lv_fs_dir_tPc]he directories will begin with '/'
+
: Read the next filename form a directory. The name of the directories will begin with '/'
:; Parameters
+
: '''Parameters'''
::* rddir_p -- pointer to an initialized 'fs_dir_t' variable
+
::* '''rddir_p''' -- pointer to an initialized 'fs_dir_t' variable
::* fn -- pointer to a buffer to store the filename
+
::* '''fn''' -- pointer to a buffer to store the filename
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
  
; <span id="_CPPv315lv_fs_dir_closeP11lv_fs_dir_t"></span><span id="_CPPv215lv_fs_dir_closeP11lv_fs_dir_t"></span><span id="lv_fs_dir_close__lv_fs_dir_tP"></span><span id="lv__fs_8h_1a11baedafbe566704ebcacc272e87e1ba" class="target"></span>lv_fs_res_t lv_fs_dir_close(lv_fs_dir_t *rddir_p)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv415lv_fs_dir_closeP11lv_fs_dir_t] <span id="_CPPv315lv_fs_dir_closeP11lv_fs_dir_t"></span><span id="_CPPv215lv_fs_dir_closeP11lv_fs_dir_t"></span><span id="lv_fs_dir_close__lv_fs_dir_tP"></span><span id="lv__fs_8h_1a11baedafbe566704ebcacc272e87e1ba" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_dir_close(lv_fs_dir_t *rddir_p) </span>
 
: Close the directory reading
 
: Close the directory reading
:; Parameters
+
: '''Parameters'''
:: [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv415lv_fs_dir_closeP11lv_fs_dir_t]rddir_p -- pointer to an initialized 'fs_dir_t' variable
+
:: '''rddir_p''' -- pointer to an initialized 'fs_dir_t' variable
:; Returns
+
: '''Returns'''
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
 
:: LV_FS_RES_OK or any error from lv_fs_res_t enum
  
; <span id="_CPPv317lv_fs_get_lettersPc"></span><span id="_CPPv217lv_fs_get_lettersPc"></span><span id="lv_fs_get_letters__cP"></span><span id="lv__fs_8h_1a221cb867a7811a13803d96296a1d5fdc" class="target"></span>char *lv_fs_get_letters(char *buf)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv417lv_fs_get_lettersPc] <span id="_CPPv317lv_fs_get_lettersPc"></span><span id="_CPPv217lv_fs_get_lettersPc"></span><span id="lv_fs_get_letters__cP"></span><span id="lv__fs_8h_1a221cb867a7811a13803d96296a1d5fdc" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">char *lv_fs_get_letters(char *buf) </span>
: Fill a buffer with the letters[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv417lv_fs_get_lettersPc] of existing drivers
+
: Fill a buffer with the letters of existing drivers
:; Parameters
+
: '''Parameters'''
:: buf -- buffer to store the letters ('\0' added after the last letter)
+
:: '''buf''' -- buffer to store the letters ('\0' added after the last letter)
:; Returns
+
: '''Returns'''
 
:: the buffer
 
:: the buffer
  
; <span id="_CPPv313lv_fs_get_extPKc"></span><span id="_CPPv213lv_fs_get_extPKc"></span><span id="lv_fs_get_ext__cCP"></span><span id="lv__fs_8h_1a9b53b52242405c3e3243f160e024bc64" class="target"></span>const char *lv_fs_get_ext(const char *fn)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv413lv_fs_get_extPKc] <span id="_CPPv313lv_fs_get_extPKc"></span><span id="_CPPv213lv_fs_get_extPKc"></span><span id="lv_fs_get_ext__cCP"></span><span id="lv__fs_8h_1a9b53b52242405c3e3243f160e024bc64" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">const char *lv_fs_get_ext(const char *fn) </span>
: Return with the extension of the file[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv413lv_fs_get_extPKc]name
+
: Return with the extension of the filename
:; Parameters
+
: '''Parameters'''
:: fn -- string with a filename
+
:: '''fn''' -- string with a filename
:; Returns
+
: '''Returns'''
 
:: pointer to the beginning extension or empty string if no extension
 
:: pointer to the beginning extension or empty string if no extension
  
; <span id="_CPPv38lv_fs_upPc"></span><span id="_CPPv28lv_fs_upPc"></span><span id="lv_fs_up__cP"></span><span id="lv__fs_8h_1aac3421e2489105d6d70fb96ea1db37bf" class="target"></span>char *lv_fs_up(char *path)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv48lv_fs_upPc] <span id="_CPPv38lv_fs_upPc"></span><span id="_CPPv28lv_fs_upPc"></span><span id="lv_fs_up__cP"></span><span id="lv__fs_8h_1aac3421e2489105d6d70fb96ea1db37bf" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">char *lv_fs_up(char *path) </span>
 
: Step up one level
 
: Step up one level
:; P[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv48lv_fs_upPc]arameters
+
: '''Parameters'''
:: path -- pointer to a file name
+
:: '''path''' -- pointer to a file name
:; Returns
+
: '''Returns'''
 
:: the truncated file name
 
:: the truncated file name
  
; <span id="_CPPv314lv_fs_get_lastPKc"></span><span id="_CPPv214lv_fs_get_lastPKc"></span><span id="lv_fs_get_last__cCP"></span><span id="lv__fs_8h_1a4da43dd91d14df0d425169d9288892a0" class="target"></span>const char *lv_fs_get_last(const char *path)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_get_lastPKc] <span id="_CPPv314lv_fs_get_lastPKc"></span><span id="_CPPv214lv_fs_get_lastPKc"></span><span id="lv_fs_get_last__cCP"></span><span id="lv__fs_8h_1a4da43dd91d14df0d425169d9288892a0" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">const char *lv_fs_get_last(const char *path) </span>
: Get the last element of a path (e.g. U:/[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv414lv_fs_get_lastPKc]folder/file -> file)
+
: Get the last element of a path (e.g. U:/folder/file -> file)
:; Parameters
+
: '''Parameters'''
:: path -- pointer to a file name
+
:: '''path''' -- pointer to a file name
:; Returns
+
: '''Returns'''
 
:: pointer to the beginning of the last element in the path
 
:: pointer to the beginning of the last element in the path
  
; <span id="_CPPv312_lv_fs_drv_t"></span><span id="_CPPv212_lv_fs_drv_t"></span><span id="_lv_fs_drv_t"></span><span id="struct__lv__fs__drv__t" class="target"></span>struct _lv_fs_drv_t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv412_lv_fs_drv_t] <span id="_CPPv312_lv_fs_drv_t"></span><span id="_CPPv212_lv_fs_drv_t"></span><span id="_lv_fs_drv_t"></span><span id="struct__lv__fs__drv__t" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">struct _lv_fs_drv_t </span>
: Public Members [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv412_lv_fs_drv_t]
+
: '''Public Members'''
:; <span id="_CPPv3N12_lv_fs_drv_t6letterE"></span><span id="_CPPv2N12_lv_fs_drv_t6letterE"></span><span id="_lv_fs_drv_t::letter__c"></span><span id="struct__lv__fs__drv__t_1a1cb5b38d33c75014403bc708c08c15c4" class="target"></span>char letter[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t6letterE] <span id="_CPPv3N12_lv_fs_drv_t6letterE"></span><span id="_CPPv2N12_lv_fs_drv_t6letterE"></span><span id="_lv_fs_drv_t::letter__c"></span><span id="struct__lv__fs__drv__t_1a1cb5b38d33c75014403bc708c08c15c4" class="target"></span>
+
: <span style="background-color: #eeeeee;">char letter </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t10cache_sizeE"></span><span id="_CPPv2N12_lv_fs_drv_t10cache_sizeE"></span><span id="_lv_fs_drv_t::cache_size__uint16_t"></span><span id="struct__lv__fs__drv__t_1a2f1466977df43ca6fc16f62099ce5d73" class="target"></span>u[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t6letterE]int16_t cache_size[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t10cache_sizeE] <span id="_CPPv3N12_lv_fs_drv_t10cache_sizeE"></span><span id="_CPPv2N12_lv_fs_drv_t10cache_sizeE"></span><span id="_lv_fs_drv_t::cache_size__uint16_t"></span><span id="struct__lv__fs__drv__t_1a2f1466977df43ca6fc16f62099ce5d73" class="target"></span>
+
: <span style="background-color: #eeeeee;">uint16_t cache_size </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t8ready_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t8ready_cbE"></span><span id="struct__lv__fs__drv__t_1a1c3a00196857145003768ef69188616f" class="target"></span>bool (*re[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t10cache_sizeE]ady_cb)(struct _lv_fs_drv_t *drv)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t8ready_cbE] <span id="_CPPv3N12_lv_fs_drv_t8ready_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t8ready_cbE"></span><span id="struct__lv__fs__drv__t_1a1c3a00196857145003768ef69188616f" class="target"></span>
+
: <span style="background-color: #eeeeee;">bool (*ready_cb)(struct _lv_fs_drv_t *drv) </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t7open_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t7open_cbE"></span><span id="struct__lv__fs__drv__t_1aa58338252662469f91b402aacf0a5a6f" class="target"></span>void *(*open_cb)(struct _lv_fs_d[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t8ready_cbE]rv_t *drv, const char *path, lv_fs_mode_t mode)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t7open_cbE] <span id="_CPPv3N12_lv_fs_drv_t7open_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t7open_cbE"></span><span id="struct__lv__fs__drv__t_1aa58338252662469f91b402aacf0a5a6f" class="target"></span>
+
: <span style="background-color: #eeeeee;">void *(*open_cb)(struct _lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode) </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t8close_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t8close_cbE"></span><span id="struct__lv__fs__drv__t_1a27063e9b51ed4a4dac74b64a33fa9438" class="target"></span>lv_fs_res_t (*close_cb)(struct _lv_fs_drv_t *drv, void *file_p)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t8close_cbE] <span id="_CPPv3N12_lv_fs_drv_t8close_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t8close_cbE"></span><span id="struct__lv__fs__drv__t_1a27063e9b51ed4a4dac74b64a33fa9438" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_res_t (*close_cb)(struct _lv_fs_drv_t *drv, void *file_p) </span>
:: [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t7open_cbE]
+
::  
:; <span id="_CPPv3N12_lv_fs_drv_t7read_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t7read_cbE"></span><span id="struct__lv__fs__drv__t_1a4c525cb8651b04b451246c05594c8c37" class="target"></span>lv_fs_res_t (*read_cb)(struct _lv_fs_drv_t *drv, void[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t8close_cbE] *file_p, void *buf, uint32_t btr, uint32_t *br)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t7read_cbE] <span id="_CPPv3N12_lv_fs_drv_t7read_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t7read_cbE"></span><span id="struct__lv__fs__drv__t_1a4c525cb8651b04b451246c05594c8c37" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_res_t (*read_cb)(struct _lv_fs_drv_t *drv, void *file_p, void *buf, uint32_t btr, uint32_t *br) </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t8write_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t8write_cbE"></span><span id="struct__lv__fs__drv__t_1ab117ba33c0378b58ca87ec55f88cc555" class="target"></span>lv_fs_res_t (*write_cb)(struct _lv_fs_drv_t *drv, void *file_p, const void *buf, uint32_t b[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t7read_cbE]tw, uint32_t *bw)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t8write_cbE] <span id="_CPPv3N12_lv_fs_drv_t8write_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t8write_cbE"></span><span id="struct__lv__fs__drv__t_1ab117ba33c0378b58ca87ec55f88cc555" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_res_t (*write_cb)(struct _lv_fs_drv_t *drv, void *file_p, const void *buf, uint32_t btw, uint32_t *bw) </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t7seek_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t7seek_cbE"></span><span id="struct__lv__fs__drv__t_1ad13356bd1360f45c0e62d0d3d3ca3bb2" class="target"></span>lv_fs_res_t (*seek_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t pos, lv_fs_whence_t whence[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t8write_cbE])[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t7seek_cbE] <span id="_CPPv3N12_lv_fs_drv_t7seek_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t7seek_cbE"></span><span id="struct__lv__fs__drv__t_1ad13356bd1360f45c0e62d0d3d3ca3bb2" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_res_t (*seek_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t pos, lv_fs_whence_t whence) </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t7tell_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t7tell_cbE"></span><span id="struct__lv__fs__drv__t_1ad11d5b2d3198a1a3f591e282e8c36a35" class="target"></span>lv_fs_res_t (*tell_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t *pos_p)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t7tell_cbE] <span id="_CPPv3N12_lv_fs_drv_t7tell_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t7tell_cbE"></span><span id="struct__lv__fs__drv__t_1ad11d5b2d3198a1a3f591e282e8c36a35" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_res_t (*tell_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t *pos_p) </span>
 
::
 
::
: [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t7seek_cbE]
+
:  
:; <span id="_CPPv3N12_lv_fs_drv_t11dir_open_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t11dir_open_cbE"></span><span id="struct__lv__fs__drv__t_1a728a97d53616b3b50b927e3d3ffb1f53" class="target"></span>void *(*dir_open_cb)(struct _lv_fs_drv_t *drv, const char *path)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t11dir_open_cbE] <span id="_CPPv3N12_lv_fs_drv_t11dir_open_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t11dir_open_cbE"></span><span id="struct__lv__fs__drv__t_1a728a97d53616b3b50b927e3d3ffb1f53" class="target"></span>
+
: <span style="background-color: #eeeeee;">void *(*dir_open_cb)(struct _lv_fs_drv_t *drv, const char *path) </span>
:: [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t7tell_cbE]
+
::  
:; <span id="_CPPv3N12_lv_fs_drv_t11dir_read_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t11dir_read_cbE"></span><span id="struct__lv__fs__drv__t_1a203777fa9172ed9331c5540e8eba2aa2" class="target"></span>lv_fs_res_t (*dir_read_cb)(struct _lv_fs_drv_t *drv, v[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t11dir_open_cbE]oid *rddir_p, char *fn)[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t11dir_read_cbE] <span id="_CPPv3N12_lv_fs_drv_t11dir_read_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t11dir_read_cbE"></span><span id="struct__lv__fs__drv__t_1a203777fa9172ed9331c5540e8eba2aa2" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_res_t (*dir_read_cb)(struct _lv_fs_drv_t *drv, void *rddir_p, char *fn) </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t12dir_close_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t12dir_close_cbE"></span><span id="struct__lv__fs__drv__t_1a630cd3d1cebc5482d94f715838220ca8" class="target"></span>lv_fs_res_t (*dir_close_cb)(struct _lv_fs_drv_t *drv, void *rddir_p[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t11dir_read_cbE])[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t12dir_close_cbE] <span id="_CPPv3N12_lv_fs_drv_t12dir_close_cbE"></span><span id="_CPPv2N12_lv_fs_drv_t12dir_close_cbE"></span><span id="struct__lv__fs__drv__t_1a630cd3d1cebc5482d94f715838220ca8" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_res_t (*dir_close_cb)(struct _lv_fs_drv_t *drv, void *rddir_p) </span>
 
::
 
::
:; <span id="_CPPv3N12_lv_fs_drv_t9user_dataE"></span><span id="_CPPv2N12_lv_fs_drv_t9user_dataE"></span><span id="_lv_fs_drv_t::user_data__voidP"></span><span id="struct__lv__fs__drv__t_1aca4f4bce7a73bebe1095fac20f7f1bd6" class="target"></span>void *user_data[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t9user_dataE] <span id="_CPPv3N12_lv_fs_drv_t9user_dataE"></span><span id="_CPPv2N12_lv_fs_drv_t9user_dataE"></span><span id="_lv_fs_drv_t::user_data__voidP"></span><span id="struct__lv__fs__drv__t_1aca4f4bce7a73bebe1095fac20f7f1bd6" class="target"></span>
+
: <span style="background-color: #eeeeee;">void *user_data </span>
:: Custom file[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t9user_dataE] user data
+
:: Custom file user data
  
; <span id="_CPPv318lv_fs_file_cache_t"></span><span id="_CPPv218lv_fs_file_cache_t"></span><span id="lv_fs_file_cache_t"></span><span id="structlv__fs__file__cache__t" class="target"></span>struct l[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12_lv_fs_drv_t12dir_close_cbE]v_fs_file_cache_t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv418lv_fs_file_cache_t] <span id="_CPPv318lv_fs_file_cache_t"></span><span id="_CPPv218lv_fs_file_cache_t"></span><span id="lv_fs_file_cache_t"></span><span id="structlv__fs__file__cache__t" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">struct lv_fs_file_cache_t </span>
: Public Members
+
: '''Public Members'''
:; <span id="_CPPv3N18lv_fs_file_cache_t5startE"></span><span id="_CPPv2N18lv_fs_file_cache_t5startE"></span><span id="lv_fs_file_cache_t::start__uint32_t"></span><span id="structlv__fs__file__cache__t_1ae9caf2dc86e95f504be0767add2622bd" class="target"></span>uin[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv418lv_fs_file_cache_t]t32_t start[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N18lv_fs_file_cache_t5startE] <span id="_CPPv3N18lv_fs_file_cache_t5startE"></span><span id="_CPPv2N18lv_fs_file_cache_t5startE"></span><span id="lv_fs_file_cache_t::start__uint32_t"></span><span id="structlv__fs__file__cache__t_1ae9caf2dc86e95f504be0767add2622bd" class="target"></span>
+
: <span style="background-color: #eeeeee;">uint32_t start </span>
 
::
 
::
:; <span id="_CPPv3N18lv_fs_file_cache_t3endE"></span><span id="_CPPv2N18lv_fs_file_cache_t3endE"></span><span id="lv_fs_file_cache_t::end__uint32_t"></span><span id="structlv__fs__file__cache__t_1a863e29580bd2b70b04f7006d76337c86" class="target"></span>uint[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N18lv_fs_file_cache_t5startE]32_t end[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N18lv_fs_file_cache_t3endE] <span id="_CPPv3N18lv_fs_file_cache_t3endE"></span><span id="_CPPv2N18lv_fs_file_cache_t3endE"></span><span id="lv_fs_file_cache_t::end__uint32_t"></span><span id="structlv__fs__file__cache__t_1a863e29580bd2b70b04f7006d76337c86" class="target"></span>
+
: <span style="background-color: #eeeeee;">uint32_t end </span>
 
::
 
::
:; <span id="_CPPv3N18lv_fs_file_cache_t13file_positionE"></span><span id="_CPPv2N18lv_fs_file_cache_t13file_positionE"></span><span id="lv_fs_file_cache_t::file_position__uint32_t"></span><span id="structlv__fs__file__cache__t_1ab12ab2582c1fe87e6a23d9edc212e0f6" class="target"></span>ui[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N18lv_fs_file_cache_t3endE]nt32_t file_position[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N18lv_fs_file_cache_t13file_positionE] <span id="_CPPv3N18lv_fs_file_cache_t13file_positionE"></span><span id="_CPPv2N18lv_fs_file_cache_t13file_positionE"></span><span id="lv_fs_file_cache_t::file_position__uint32_t"></span><span id="structlv__fs__file__cache__t_1ab12ab2582c1fe87e6a23d9edc212e0f6" class="target"></span>
+
: <span style="background-color: #eeeeee;">uint32_t file_position </span>
 
::
 
::
:; <span id="_CPPv3N18lv_fs_file_cache_t6bufferE"></span><span id="_CPPv2N18lv_fs_file_cache_t6bufferE"></span><span id="lv_fs_file_cache_t::buffer__voidP"></span><span id="structlv__fs__file__cache__t_1ae1dac22bf59a01c943a532716b5a24ad" class="target"></span>void *buffer[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N18lv_fs_file_cache_t13file_positionE][https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N18lv_fs_file_cache_t6bufferE] <span id="_CPPv3N18lv_fs_file_cache_t6bufferE"></span><span id="_CPPv2N18lv_fs_file_cache_t6bufferE"></span><span id="lv_fs_file_cache_t::buffer__voidP"></span><span id="structlv__fs__file__cache__t_1ae1dac22bf59a01c943a532716b5a24ad" class="target"></span>
+
: <span style="background-color: #eeeeee;">void *buffer </span>
 
::
 
::
  
; [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N18lv_fs_file_cache_t6bufferE]<span id="_CPPv312lv_fs_file_t"></span><span id="_CPPv212lv_fs_file_t"></span><span id="lv_fs_file_t"></span><span id="structlv__fs__file__t" class="target"></span>struct lv_fs_file_t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv412lv_fs_file_t] <span id="_CPPv312lv_fs_file_t"></span><span id="_CPPv212lv_fs_file_t"></span><span id="lv_fs_file_t"></span><span id="structlv__fs__file__t" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">struct lv_fs_file_t </span>
: Public Members [https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv412lv_fs_file_t]
+
: '''Public Members'''
:; <span id="_CPPv3N12lv_fs_file_t6file_dE"></span><span id="_CPPv2N12lv_fs_file_t6file_dE"></span><span id="lv_fs_file_t::file_d__voidP"></span><span id="structlv__fs__file__t_1a64a2b9d00f4851eab29e4c5b4adaa120" class="target"></span>void *file_d[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12lv_fs_file_t6file_dE] <span id="_CPPv3N12lv_fs_file_t6file_dE"></span><span id="_CPPv2N12lv_fs_file_t6file_dE"></span><span id="lv_fs_file_t::file_d__voidP"></span><span id="structlv__fs__file__t_1a64a2b9d00f4851eab29e4c5b4adaa120" class="target"></span>
+
: <span style="background-color: #eeeeee;">void *file_d </span>
 
::
 
::
:; <span id="_CPPv3N12lv_fs_file_t3drvE"></span><span id="_CPPv2N12lv_fs_file_t3drvE"></span><span id="lv_fs_file_t::drv__lv_fs_drv_tP"></span><span id="structlv__fs__file__t_1a976026e76d90eb520d8444d96f759e66" class="target"></span>lv[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12lv_fs_file_t6file_dE]_fs_drv_t *drv[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12lv_fs_file_t3drvE] <span id="_CPPv3N12lv_fs_file_t3drvE"></span><span id="_CPPv2N12lv_fs_file_t3drvE"></span><span id="lv_fs_file_t::drv__lv_fs_drv_tP"></span><span id="structlv__fs__file__t_1a976026e76d90eb520d8444d96f759e66" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_drv_t *drv </span>
 
::
 
::
:; <span id="_CPPv3N12lv_fs_file_t5cacheE"></span><span id="_CPPv2N12lv_fs_file_t5cacheE"></span><span id="lv_fs_file_t::cache__lv_fs_file_cache_tP"></span><span id="structlv__fs__file__t_1ae0054715a28b0888d6016acec2199205" class="target"></span>lv_fs_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12lv_fs_file_t3drvE]file_cache_t *cache[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12lv_fs_file_t5cacheE] <span id="_CPPv3N12lv_fs_file_t5cacheE"></span><span id="_CPPv2N12lv_fs_file_t5cacheE"></span><span id="lv_fs_file_t::cache__lv_fs_file_cache_tP"></span><span id="structlv__fs__file__t_1ae0054715a28b0888d6016acec2199205" class="target"></span>
+
: <span style="background-color: #eeeeee;">lv_fs_file_cache_t *cache </span>
 
::
 
::
  
; <span id="_CPPv311lv_fs_dir_t"></span><span id="_CPPv211lv_fs_dir_t"></span><span id="lv_fs_dir_t"></span><span id="structlv__fs__dir__t" class="target"></span>struct lv_fs_[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N12lv_fs_file_t5cacheE]dir_t[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_dir_t] <span id="_CPPv311lv_fs_dir_t"></span><span id="_CPPv211lv_fs_dir_t"></span><span id="lv_fs_dir_t"></span><span id="structlv__fs__dir__t" class="target"></span>
+
<span style="background-color:#e7f2fa;color:#2980b9;">struct lv_fs_dir_t </span>
: Public Members[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv411lv_fs_dir_t]
+
: '''Public Members'''
:; <span id="_CPPv3N11lv_fs_dir_t5dir_dE"></span><span id="_CPPv2N11lv_fs_dir_t5dir_dE"></span><span id="lv_fs_dir_t::dir_d__voidP"></span><span id="structlv__fs__dir__t_1a3a7d9136a36418cf055534628a078bbc" class="target"></span>void *dir_d[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N11lv_fs_dir_t5dir_dE] <span id="_CPPv3N11lv_fs_dir_t5dir_dE"></span><span id="_CPPv2N11lv_fs_dir_t5dir_dE"></span><span id="lv_fs_dir_t::dir_d__voidP"></span><span id="structlv__fs__dir__t_1a3a7d9136a36418cf055534628a078bbc" class="target"></span>
+
: <span style="background-color: #eeeeee;">void *dir_d </span>
 
::
 
::
:; <span id="_CPPv3N11lv_fs_dir_t3drvE"></span><span id="_CPPv2N11lv_fs_dir_t3drvE"></span><span id="lv_fs_dir_t::drv__lv_fs_drv_tP"></span><span id="structlv__fs__dir__t_1adbd70c1ad4213386dc9c346e42e19583" class="target"></span>l[https://docs.lvgl.io/8.2/overview/file-system.html#_CPPv4N11lv_fs_dir_t5dir_dE]v_fs_drv_t *drv
+
: <span style="background-color: #eeeeee;">lv_fs_drv_t *drv</span>
 +
|'''Functions'''
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">void _lv_fs_init(void) </span>
 +
: ファイル・システム・インタフェースの初期化
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_fs_drv_init(lv_fs_drv_t *drv) </span>
 +
: ファイルシステムドライバーを既定値で初期化します。 これは、メモリのジャンクではなく、フィールドの既知の値を持つために使用されます。  その後、フィールドを設定できます。
 +
:
 +
:'''Parameters'''
 +
::'''drv''' -- 初期化するドライバ変数へのポインタ
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">void lv_fs_drv_register(lv_fs_drv_t *drv) </span>
 +
: 新しいドライブを追加する
 +
:'''Parameters'''
 +
::'''drv''' -- lv_fs_drv_t構造体へのポインタで、対応する関数ポインタで初期化される。 ポインターのみが保存されるため、ドライバーは静的または動的に割り当てられる必要があります。
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_drv_t *lv_fs_get_drv(char letter) </span>
 +
: 文字からドライバーへのポインターを指定します。
 +
:'''Parameters'''
 +
::'''letter''' -- 運転手の手紙
 +
:'''Returns'''
 +
:: ドライバへのポインタ、見つからない場合はNULL
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">bool lv_fs_is_ready(char letter) </span>
 +
: ドライブの準備ができているかどうかをテストします。<code style="color: #bb0000;">ready</code> 関数が初期化されていない場合は、 <code style="color: #bb0000;">true</code> が返されます。
 +
:'''Parameters'''
 +
::'''letter''' -- ドライブの文字
 +
:'''Returns'''
 +
::'''true''':ドライブの準備ができました;false:ドライブの準備ができていません
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_open(lv_fs_file_t *file_p, const char *path, lv_fs_mode_t mode) </span>
 +
: ファイルを開く
 +
:'''Parameters'''
 +
::*'''file_p''' -- lv_fs_file_t変数へのポインタ
 +
 
 +
::*'''path''' -- ドライバー文字で始まるファイルへのパス (例: S:/folder/file.txt)
 +
::*'''mode''' -- read: FS_MODE_RD, write: FS_MODE_WR, both: FS_MODE_RD | FS_MODE_WR
 +
:'''Returns'''
 +
:: LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_close(lv_fs_file_t *file_p) </span>
 +
: 既に開いているファイルを閉じる
 +
:'''Parameters'''
 +
::'''file_p''' -- lv_fs_file_t変数へのポインタ
 +
:'''Returns'''
 +
:: LV_FS_RES_OK または lv_fs_res_t enumからのエラー
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_read(lv_fs_file_t *file_p, void *buf, uint32_t btr, uint32_t *br) </span>
 +
: ファイルから読み取る
 +
:'''Parameters'''
 +
::*'''file_p''' -- lv_fs_file_t変数へのポインタ
 +
::*'''buf''' -- 読み込んだバイトを格納するバッファへのポインタ
 +
::*'''btr''' -- 読み取るバイト数
 +
::*'''br''' -- 実際の読み取りバイト数(Bytes Read)。 未使用の場合はNULL。
 +
:'''Returns'''
 +
:: LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_write(lv_fs_file_t *file_p, const void *buf, uint32_t btw, uint32_t *bw) </span>
 +
: ファイルに書き込む
 +
:'''Parameters'''
 +
::*'''file_p''' -- lv_fs_file_t変数へのポインター
 +
::*'''buf''' -- 書き込むバイトを含むバッファへのポインタ
 +
::* '''btr''' -- 書き込むバイト数
 +
::*'''br''' -- 実際に書き込まれたバイト数(書き込まれたバイト数)。 未使用の場合はNULL。
 +
:'''Returns'''
 +
:: LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_seek(lv_fs_file_t *file_p, uint32_t pos, lv_fs_whence_t whence) </span>
 +
: ファイル内の「カーソル」(読み取り/書き込みポインター)の位置を設定します
 +
:'''Parameters'''
 +
::*'''file_p''' -- lv_fs_file_t変数へのポインター
 +
::*'''pos''' --バイトインデックスで表される新しい位置(0:ファイルの先頭)
 +
::*'''whence''' -- 位置を設定した場所を示します。 @lv_fs_whence_tを参照してください
 +
:'''Returns'''
 +
:: LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー
 +
 
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_tell(lv_fs_file_t *file_p, uint32_t *pos) </span>
 +
: 読み取り/書き込みポインタの位置を指定します
 +
:'''Parameters'''
 +
::*'''file_p''' -- lv_fs_file_t変数へのポインター
 +
::*'''pos_p''' -- 読み取り/書き込みポインタの位置を格納するポインタ
 +
:'''Returns'''
 +
:: LV_FS_RES_OKまたは「fs_res_t」からのエラー
  
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_dir_open(lv_fs_dir_t *rddir_p, const char *path) </span>
 +
: ディレクトリ読み取り用に「fs_dir_t」変数を初期化します
 +
:'''Parameters'''
 +
::*'''rddir_p''' -- 'lv_fs_dir_t'変数へのポインター
 +
::*'''path''' -- ディレクトリへのパス
 +
:'''Returns'''
 +
:: LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー
  
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_dir_read(lv_fs_dir_t *rddir_p, char *fn) </span>
 +
: ディレクトリから次のファイル名を読み取ります。 ディレクトリの名前は「/」で始まります
 +
:'''Parameters'''
 +
::*'''rddir_p''' -- 初期化された'fs_dir_t'変数へのポインタ
 +
::*'''fn''' -- ファイル名を格納するためのバッファへのポインタ
 +
:'''Returns'''
 +
:: LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー
  
 +
<span style="background-color:#e7f2fa;color:#2980b9;">lv_fs_res_t lv_fs_dir_close(lv_fs_dir_t *rddir_p) </span>
 +
: ディレクトリの読み取りを閉じる
 +
:'''Parameters'''
 +
::'''rddir_p''' -- 初期化された'fs_dir_t'変数へのポインタ
 +
:'''Returns'''
 +
:: LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー
  
 +
<span style="background-color:#e7f2fa;color:#2980b9;">char *lv_fs_get_letters(char *buf) </span>
 +
: 既存のドライバーの文字でバッファーを埋めます
 +
:'''Parameters'''
 +
::'''buf''' -- 文字を格納するためのバッファ(最後の文字の後に「\ 0」が追加されます)
 +
:'''Returns'''
 +
:: バッファ
  
 +
<span style="background-color:#e7f2fa;color:#2980b9;">const char *lv_fs_get_ext(const char *fn) </span>
 +
: ファイル名の拡張子を付けて返す
 +
:'''Parameters'''
 +
::'''fn''' -- ファイル名のある文字列
 +
:'''Returns'''
 +
:: 開始拡張子へのポインタ、または拡張子がない場合は空の文字列
  
 +
<span style="background-color:#e7f2fa;color:#2980b9;">char *lv_fs_up(char *path) </span>
 +
: 1レベルステップアップ
 +
:'''Parameters'''
 +
::'''path''' -- ファイル名へのポインタ
 +
:'''Returns'''
 +
:: 切り捨てられたファイル名
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">const char *lv_fs_get_last(const char *path) </span>
 +
: パスの最後の要素を取得します(例: U:/folder/file -> file)
 +
:'''Parameters'''
 +
::'''path''' -- ファイル名へのポインタ
 +
:'''Returns'''
 +
:: パスの最後の要素の先頭へのポインタ
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">struct _lv_fs_drv_t </span>
 +
:'''Public Members'''
 +
:<span style="background-color: #eeeeee;">char letter </span>
 +
::
 +
:<span style="background-color: #eeeeee;">uint16_t cache_size </span>
 +
::
 +
:<span style="background-color: #eeeeee;">bool (*ready_cb)(struct _lv_fs_drv_t *drv) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">void *(*open_cb)(struct _lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_res_t (*close_cb)(struct _lv_fs_drv_t *drv, void *file_p) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_res_t (*read_cb)(struct _lv_fs_drv_t *drv, void *file_p, void *buf, uint32_t btr, uint32_t *br) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_res_t (*write_cb)(struct _lv_fs_drv_t *drv, void *file_p, const void *buf, uint32_t btw, uint32_t *bw) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_res_t (*seek_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t pos, lv_fs_whence_t whence) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_res_t (*tell_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t *pos_p) </span>
 +
::
 +
:
 +
:<span style="background-color: #eeeeee;">void *(*dir_open_cb)(struct _lv_fs_drv_t *drv, const char *path) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_res_t (*dir_read_cb)(struct _lv_fs_drv_t *drv, void *rddir_p, char *fn) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_res_t (*dir_close_cb)(struct _lv_fs_drv_t *drv, void *rddir_p) </span>
 +
::
 +
:<span style="background-color: #eeeeee;">void *user_data </span>
 +
:: カスタムファイルのユーザーデータ
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">struct lv_fs_file_cache_t </span>
 +
:'''Public Members'''
 +
:<span style="background-color: #eeeeee;">uint32_t start </span>
 +
::
 +
:<span style="background-color: #eeeeee;">uint32_t end </span>
 +
::
 +
:<span style="background-color: #eeeeee;">uint32_t file_position </span>
 +
::
 +
:<span style="background-color: #eeeeee;">void *buffer </span>
 +
::
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">struct lv_fs_file_t </span>
 +
:'''Public Members'''
 +
:<span style="background-color: #eeeeee;">void *file_d </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_drv_t *drv </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_file_cache_t *cache </span>
 +
::
 +
 +
<span style="background-color:#e7f2fa;color:#2980b9;">struct lv_fs_dir_t </span>
 +
:'''Public Members'''
 +
:<span style="background-color: #eeeeee;">void *dir_d </span>
 +
::
 +
:<span style="background-color: #eeeeee;">lv_fs_drv_t *drv</span>
 +
|}
  
  
  
:[[App:Library:LVGL#Overview|戻る : Previous]]
+
[[App:Library:LVGL#Overview|戻る : Previous]]

2022年7月2日 (土) 10:53時点における最新版

https://docs.lvgl.io/8.2/overview/file-system.html

File system

英文 自動翻訳

LVGL has a 'File system' abstraction module that enables you to attach any type of file system.

A file system is identified by an assigned drive letter.

For example, if an SD card is associated with the letter 'S', a file can be reached using "S:path/to/file.txt".

LVGLには'File system'抽象化モジュールがあり、任意の種類のファイルシステムをアタッチすることができます。

ファイルシステムは、ドライブレターで識別されます。

例えば、SDカードに'S'という文字が割り当てられている場合、"S:path/to/file.txt"でファイルにアクセスすることができる。

戻る : Previous


Ready to use drivers

英文 自動翻訳

The lv_fs_if repository contains prepared drivers using POSIX, standard C and the FATFS API.

See its README for the details.

lv_fs_ifリポジトリには、POSIX、標準C、FATFS APIを使用したドライバが用意されています。

詳しくはREADMEをご覧ください。

戻る : Previous


Adding a driver

Registering a driver

英文 自動翻訳

To add a driver, a lv_fs_drv_t needs to be initialized like below.

The lv_fs_drv_t needs to be static, global or dynamically allocated and not a local variable.

 static lv_fs_drv_t drv;                   /*Needs to be static or global*/
 lv_fs_drv_init(&drv);                     /*Basic initialization*/
 
 drv.letter = 'S';                         /*An uppercase letter to identify the drive */
 drv.cache_size = my_cahce_size;           /*Cache size for reading in bytes. 0 to not cache.*/
 
 drv.ready_cb = my_ready_cb;               /*Callback to tell if the drive is ready to use */
 drv.open_cb = my_open_cb;                 /*Callback to open a file */
 drv.close_cb = my_close_cb;               /*Callback to close a file */
 drv.read_cb = my_read_cb;                 /*Callback to read a file */
 drv.write_cb = my_write_cb;               /*Callback to write a file */
 drv.seek_cb = my_seek_cb;                 /*Callback to seek in a file (Move cursor) */
 drv.tell_cb = my_tell_cb;                 /*Callback to tell the cursor position  */
 
 drv.dir_open_cb = my_dir_open_cb;         /*Callback to open directory to read its content */
 drv.dir_read_cb = my_dir_read_cb;         /*Callback to read a directory's content */
 drv.dir_close_cb = my_dir_close_cb;       /*Callback to close a directory */
 
 drv.user_data = my_user_data;             /*Any custom data if required*/
 
 lv_fs_drv_register(&drv);                 /*Finally register the drive*/

Any of the callbacks can be NULL to indicate that operation is not supported.

ドライバを追加するには、以下のようにlv_fs_drv_t を初期化する必要があります。 lv_fs_drv_t は、ローカル変数ではなく、スタティック、グローバル、またはダイナミックにアロケートされたものである必要があります。
 static lv_fs_drv_t drv;                   /*Needs to be static or global*/
 lv_fs_drv_init(&drv);                     /*Basic initialization*/
 
 drv.letter = 'S';                         /*An uppercase letter to identify the drive */
 drv.cache_size = my_cahce_size;           /*Cache size for reading in bytes. 0 to not cache.*/
 
 drv.ready_cb = my_ready_cb;               /*Callback to tell if the drive is ready to use */
 drv.open_cb = my_open_cb;                 /*Callback to open a file */
 drv.close_cb = my_close_cb;               /*Callback to close a file */
 drv.read_cb = my_read_cb;                 /*Callback to read a file */
 drv.write_cb = my_write_cb;               /*Callback to write a file */
 drv.seek_cb = my_seek_cb;                 /*Callback to seek in a file (Move cursor) */
 drv.tell_cb = my_tell_cb;                 /*Callback to tell the cursor position  */
 
 drv.dir_open_cb = my_dir_open_cb;         /*Callback to open directory to read its content */
 drv.dir_read_cb = my_dir_read_cb;         /*Callback to read a directory's content */
 drv.dir_close_cb = my_dir_close_cb;       /*Callback to close a directory */
 
 drv.user_data = my_user_data;             /*Any custom data if required*/
 
 lv_fs_drv_register(&drv);                 /*Finally register the drive*/

コールバックのいずれかをNULLにすることで、操作がサポートされていないことを示すことができる。

戻る : Previous


Implementing the callbacks

Open callback

英文 自動翻訳

The prototype of open_cb looks like this:

void * (*open_cb)(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode);

path is the path after the drive letter (e.g. "S:path/to/file.txt" -> "path/to/file.txt").

mode can be LV_FS_MODE_WR or LV_FS_MODE_RD to open for writes or reads.

The return value is a pointer to a file object that describes the opened file or NULL if there were any issues (e.g. the file wasn't found).

The returned file object will be passed to other file system related callbacks. (see below)

open_cbのプロトタイプは以下のようなものです。
void * (*open_cb)(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode);

path はドライブレターの後のパスです (例: "S:path/to/file.txt" -> "path/to/file.txt").

mode には LV_FS_MODE_WR または LV_FS_MODE_RD を指定し、書き込みまたは読み出し用にオープンすることができます。

戻り値は、オープンしたファイルを記述したファイルオブジェクトへのポインタ、または何らかの問題(ファイルが見つからなかったなど)があった場合はNULL です。

返されたファイルオブジェクトは、他のファイルシステム関連のコールバック関数に渡されます。(下記参照)

戻る : Previous


Other callbacks

英文 自動翻訳

The other callbacks are quite similar.

For example looks like this:

 lv_fs_res_t (*write_cb)(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw);

For file_p, LVGL passes the return value of open_cb,

buf is the data to write,

btw is the Bytes To Write,

bw is the actually written bytes.

For a template of these callbacks see lv_fs_template.c.

他のコールバックは非常によく似ています。 例えばwrite_cb は以下のような感じです。
 lv_fs_res_t (*write_cb)(lv_fs_drv_t * drv, void * file_p, const void * buf, uint32_t btw, uint32_t * bw);

file_pには、LVGLはopen_cbの戻り値を渡し、

bufは書き込むデータ、

btw は書き込むバイト数、

bwは実際に書き込んだバイト数です。

これらのコールバックのテンプレートは,lv_fs_template.cを参照してください.

戻る : Previous


Usage example

英文 自動翻訳

The example below shows how to read from a file:

 lv_fs_file_t f;
 lv_fs_res_t res;
 res = lv_fs_open(&f, "S:folder/file.txt", LV_FS_MODE_RD);
 if(res != LV_FS_RES_OK) my_error_handling();
 
 uint32_t read_num;
 uint8_t buf[8];
 res = lv_fs_read(&f, buf, 8, &read_num);
 if(res != LV_FS_RES_OK || read_num != 8) my_error_handling();
 
 lv_fs_close(&f);

The mode in lv_fs_open can be LV_FS_MODE_WR to open for writes only or LV_FS_MODE_RD | LV_FS_MODE_WR for both

This example shows how to read a directory's content.

It's up to the driver how to mark directories in the result but it can be a good practice to insert a '/' in front of each directory name.

 lv_fs_dir_t dir;
 lv_fs_res_t res;
 res = lv_fs_dir_open(&dir, "S:/folder");
 if(res != LV_FS_RES_OK) my_error_handling();
 
 char fn[256];
 while(1) {
     res = lv_fs_dir_read(&dir, fn);
     if(res != LV_FS_RES_OK) {
         my_error_handling();
         break;
     }
 
     /*fn is empty, if not more files to read*/
     if(strlen(fn) == 0) {
         break;
     }
 
     printf("%s\n", fn);
 }
 
 lv_fs_dir_close(&dir);
以下の例では、ファイルから読み取る方法を示しています。
 lv_fs_file_t f;
 lv_fs_res_t res;
 res = lv_fs_open(&f, "S:folder/file.txt", LV_FS_MODE_RD);
 if(res != LV_FS_RES_OK) my_error_handling();
 
 uint32_t read_num;
 uint8_t buf[8];
 res = lv_fs_read(&f, buf, 8, &read_num);
 if(res != LV_FS_RES_OK || read_num != 8) my_error_handling();
 
 lv_fs_close(&f);

lv_fs_open のモードは,書き込み専用ならLV_FS_MODE_WR ,両方ならLV_FS_MODE_RD | LV_FS_MODE_WRを指定することができます。

この例は、ディレクトリの内容を読み取る方法を示しています。

結果の中でディレクトリをどのようにマークするかはドライバ次第ですが、各ディレクトリ名の前に'/'を挿入するのは良い習慣と言えるでしょう。
 lv_fs_dir_t dir;
 lv_fs_res_t res;
 res = lv_fs_dir_open(&dir, "S:/folder");
 if(res != LV_FS_RES_OK) my_error_handling();
 
 char fn[256];
 while(1) {
     res = lv_fs_dir_read(&dir, fn);
     if(res != LV_FS_RES_OK) {
         my_error_handling();
         break;
     }
 
     /*fn is empty, if not more files to read*/
     if(strlen(fn) == 0) {
         break;
     }
 
     printf("%s\n", fn);
 }
 
 lv_fs_dir_close(&dir);
戻る : Previous


Use drives for images

英文 自動翻訳

Image objects can be opened from files too (besides variables stored in the compiled program).



To use files in image widgets the following callbacks are required:

  • open
  • close
  • read
  • seek
  • tell
画像オブジェクトはファイルからも開くことができます(コンパイルされたプログラムに格納されている変数を除く)。



画像ウィジェットでファイルを使用するには、次のコールバックが必要です。

  • open
  • close
  • read
  • seek
  • tell
戻る : Previous


API

英文 自動翻訳

Typedefs

typedef uint8_t lv_fs_res_t

typedef uint8_t lv_fs_mode_t

typedef struct _lv_fs_drv_t lv_fs_drv_t

Enums

enum [anonymous]

Errors in the file system module.
Values:
enumerator LV_FS_RES_OK
enumerator LV_FS_RES_HW_ERR
enumerator LV_FS_RES_FS_ERR
enumerator LV_FS_RES_NOT_EX
enumerator LV_FS_RES_FULL
enumerator LV_FS_RES_LOCKED
enumerator LV_FS_RES_DENIED
enumerator LV_FS_RES_BUSY
enumerator LV_FS_RES_TOUT
enumerator LV_FS_RES_NOT_IMP
enumerator LV_FS_RES_OUT_OF_MEM
enumerator LV_FS_RES_INV_PARAM
enumerator LV_FS_RES_UNKNOWN

enum [anonymous]

File open mode.
Values:
enumerator LV_FS_MODE_WR
enumerator LV_FS_MODE_RD

enum lv_fs_whence_t

Seek modes.
Values:
enumerator LV_FS_SEEK_SET
Set the position from absolutely (from the start of file)
enumerator LV_FS_SEEK_CUR
Set the position from the current position
enumerator LV_FS_SEEK_END
Set the position from the end of the file
Typedefs

typedef uint8_t lv_fs_res_t

typedef uint8_t lv_fs_mode_t

typedef struct _lv_fs_drv_t lv_fs_drv_t

Enums

enum [anonymous]

ファイルシステムモジュールのエラー。
Values:
enumerator LV_FS_RES_OK
enumerator LV_FS_RES_HW_ERR
enumerator LV_FS_RES_FS_ERR
enumerator LV_FS_RES_NOT_EX
enumerator LV_FS_RES_FULL
enumerator LV_FS_RES_LOCKED
enumerator LV_FS_RES_DENIED
enumerator LV_FS_RES_BUSY
enumerator LV_FS_RES_TOUT
enumerator LV_FS_RES_NOT_IMP
enumerator LV_FS_RES_OUT_OF_MEM
enumerator LV_FS_RES_INV_PARAM
enumerator LV_FS_RES_UNKNOWN

enum [anonymous]

File open mode.
Values:
enumerator LV_FS_MODE_WR
enumerator LV_FS_MODE_RD

enum lv_fs_whence_t

シークモード。
Values:
enumerator LV_FS_SEEK_SET
位置を絶対位置 (ファイルの先頭から) から設定
enumerator LV_FS_SEEK_CUR
現在の位置からの位置を設定します
enumerator LV_FS_SEEK_END
ファイルの末尾からの位置を設定する

Functions

void _lv_fs_init(void)

Initialize the File system interface

void lv_fs_drv_init(lv_fs_drv_t *drv)

Initialize a file system driver with default values.
It is used to surly have known values in the fields ant not memory junk.
After it you can set the fields.
Parameters
drv -- pointer to driver variable to initialize

void lv_fs_drv_register(lv_fs_drv_t *drv)

Add a new drive
Parameters
drv -- pointer to an lv_fs_drv_t structure which is inited with the corresponding function pointers.
Only pointer is saved, so the driver should be static or dynamically allocated.

lv_fs_drv_t *lv_fs_get_drv(char letter)

Give a pointer to a driver from its letter
Parameters
letter -- the driver letter
Returns
pointer to a driver or NULL if not found

bool lv_fs_is_ready(char letter)

Test if a drive is ready or not. If the ready function was not initialized true will be returned.
Parameters
letter -- letter of the drive
Returns
true: drive is ready; false: drive is not ready

lv_fs_res_t lv_fs_open(lv_fs_file_t *file_p, const char *path, lv_fs_mode_t mode)

Open a file
Parameters
  • file_p -- pointer to a lv_fs_file_t variable
  • path -- path to the file beginning with the driver letter (e.g. S:/folder/file.txt)
  • mode -- read: FS_MODE_RD, write: FS_MODE_WR, both: FS_MODE_RD | FS_MODE_WR
Returns
LV_FS_RES_OK or any error from lv_fs_res_t enum

lv_fs_res_t lv_fs_close(lv_fs_file_t *file_p)

Close an already opened file
Parameters
file_p -- pointer to a lv_fs_file_t variable
Returns
LV_FS_RES_OK or any error from lv_fs_res_t enum

lv_fs_res_t lv_fs_read(lv_fs_file_t *file_p, void *buf, uint32_t btr, uint32_t *br)

Read from a file
Parameters
  • file_p -- pointer to a lv_fs_file_t variable
  • buf -- pointer to a buffer where the read bytes are stored
  • btr -- Bytes To Read
  • br -- the number of real read bytes (Bytes Read). NULL if unused.
Returns
LV_FS_RES_OK or any error from lv_fs_res_t enum

lv_fs_res_t lv_fs_write(lv_fs_file_t *file_p, const void *buf, uint32_t btw, uint32_t *bw)

Write into a file
Parameters
  • file_p -- pointer to a lv_fs_file_t variable
  • buf -- pointer to a buffer with the bytes to write
  • btr -- Bytes To Write
  • br -- the number of real written bytes (Bytes Written). NULL if unused.
Returns
LV_FS_RES_OK or any error from lv_fs_res_t enum

lv_fs_res_t lv_fs_seek(lv_fs_file_t *file_p, uint32_t pos, lv_fs_whence_t whence)

Set the position of the 'cursor' (read write pointer) in a file
Parameters
  • file_p -- pointer to a lv_fs_file_t variable
  • pos -- the new position expressed in bytes index (0: start of file)
  • whence -- tells from where set the position. See @lv_fs_whence_t
Returns
LV_FS_RES_OK or any error from lv_fs_res_t enum

lv_fs_res_t lv_fs_tell(lv_fs_file_t *file_p, uint32_t *pos)

Give the position of the read write pointer
Parameters
  • file_p -- pointer to a lv_fs_file_t variable
  • pos_p -- pointer to store the position of the read write pointer
Returns
LV_FS_RES_OK or any error from 'fs_res_t'

lv_fs_res_t lv_fs_dir_open(lv_fs_dir_t *rddir_p, const char *path)

Initialize a 'fs_dir_t' variable for directory reading
Parameters
  • rddir_p -- pointer to a 'lv_fs_dir_t' variable
  • path -- path to a directory
Returns
LV_FS_RES_OK or any error from lv_fs_res_t enum

lv_fs_res_t lv_fs_dir_read(lv_fs_dir_t *rddir_p, char *fn)

Read the next filename form a directory. The name of the directories will begin with '/'
Parameters
  • rddir_p -- pointer to an initialized 'fs_dir_t' variable
  • fn -- pointer to a buffer to store the filename
Returns
LV_FS_RES_OK or any error from lv_fs_res_t enum

lv_fs_res_t lv_fs_dir_close(lv_fs_dir_t *rddir_p)

Close the directory reading
Parameters
rddir_p -- pointer to an initialized 'fs_dir_t' variable
Returns
LV_FS_RES_OK or any error from lv_fs_res_t enum

char *lv_fs_get_letters(char *buf)

Fill a buffer with the letters of existing drivers
Parameters
buf -- buffer to store the letters ('\0' added after the last letter)
Returns
the buffer

const char *lv_fs_get_ext(const char *fn)

Return with the extension of the filename
Parameters
fn -- string with a filename
Returns
pointer to the beginning extension or empty string if no extension

char *lv_fs_up(char *path)

Step up one level
Parameters
path -- pointer to a file name
Returns
the truncated file name

const char *lv_fs_get_last(const char *path)

Get the last element of a path (e.g. U:/folder/file -> file)
Parameters
path -- pointer to a file name
Returns
pointer to the beginning of the last element in the path

struct _lv_fs_drv_t

Public Members
char letter
uint16_t cache_size
bool (*ready_cb)(struct _lv_fs_drv_t *drv)
void *(*open_cb)(struct _lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode)
lv_fs_res_t (*close_cb)(struct _lv_fs_drv_t *drv, void *file_p)
lv_fs_res_t (*read_cb)(struct _lv_fs_drv_t *drv, void *file_p, void *buf, uint32_t btr, uint32_t *br)
lv_fs_res_t (*write_cb)(struct _lv_fs_drv_t *drv, void *file_p, const void *buf, uint32_t btw, uint32_t *bw)
lv_fs_res_t (*seek_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t pos, lv_fs_whence_t whence)
lv_fs_res_t (*tell_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t *pos_p)
void *(*dir_open_cb)(struct _lv_fs_drv_t *drv, const char *path)
lv_fs_res_t (*dir_read_cb)(struct _lv_fs_drv_t *drv, void *rddir_p, char *fn)
lv_fs_res_t (*dir_close_cb)(struct _lv_fs_drv_t *drv, void *rddir_p)
void *user_data
Custom file user data

struct lv_fs_file_cache_t

Public Members
uint32_t start
uint32_t end
uint32_t file_position
void *buffer

struct lv_fs_file_t

Public Members
void *file_d
lv_fs_drv_t *drv
lv_fs_file_cache_t *cache

struct lv_fs_dir_t

Public Members
void *dir_d
lv_fs_drv_t *drv
Functions

void _lv_fs_init(void)

ファイル・システム・インタフェースの初期化

void lv_fs_drv_init(lv_fs_drv_t *drv)

ファイルシステムドライバーを既定値で初期化します。 これは、メモリのジャンクではなく、フィールドの既知の値を持つために使用されます。 その後、フィールドを設定できます。
Parameters
drv -- 初期化するドライバ変数へのポインタ

void lv_fs_drv_register(lv_fs_drv_t *drv)

新しいドライブを追加する
Parameters
drv -- lv_fs_drv_t構造体へのポインタで、対応する関数ポインタで初期化される。 ポインターのみが保存されるため、ドライバーは静的または動的に割り当てられる必要があります。

lv_fs_drv_t *lv_fs_get_drv(char letter)

文字からドライバーへのポインターを指定します。
Parameters
letter -- 運転手の手紙
Returns
ドライバへのポインタ、見つからない場合はNULL

bool lv_fs_is_ready(char letter)

ドライブの準備ができているかどうかをテストします。ready 関数が初期化されていない場合は、 true が返されます。
Parameters
letter -- ドライブの文字
Returns
true:ドライブの準備ができました;false:ドライブの準備ができていません

lv_fs_res_t lv_fs_open(lv_fs_file_t *file_p, const char *path, lv_fs_mode_t mode)

ファイルを開く
Parameters
  • file_p -- lv_fs_file_t変数へのポインタ
  • path -- ドライバー文字で始まるファイルへのパス (例: S:/folder/file.txt)
  • mode -- read: FS_MODE_RD, write: FS_MODE_WR, both: FS_MODE_RD | FS_MODE_WR
Returns
LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー

lv_fs_res_t lv_fs_close(lv_fs_file_t *file_p)

既に開いているファイルを閉じる
Parameters
file_p -- lv_fs_file_t変数へのポインタ
Returns
LV_FS_RES_OK または lv_fs_res_t enumからのエラー

lv_fs_res_t lv_fs_read(lv_fs_file_t *file_p, void *buf, uint32_t btr, uint32_t *br)

ファイルから読み取る
Parameters
  • file_p -- lv_fs_file_t変数へのポインタ
  • buf -- 読み込んだバイトを格納するバッファへのポインタ
  • btr -- 読み取るバイト数
  • br -- 実際の読み取りバイト数(Bytes Read)。 未使用の場合はNULL。
Returns
LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー

lv_fs_res_t lv_fs_write(lv_fs_file_t *file_p, const void *buf, uint32_t btw, uint32_t *bw)

ファイルに書き込む
Parameters
  • file_p -- lv_fs_file_t変数へのポインター
  • buf -- 書き込むバイトを含むバッファへのポインタ
  • btr -- 書き込むバイト数
  • br -- 実際に書き込まれたバイト数(書き込まれたバイト数)。 未使用の場合はNULL。
Returns
LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー

lv_fs_res_t lv_fs_seek(lv_fs_file_t *file_p, uint32_t pos, lv_fs_whence_t whence)

ファイル内の「カーソル」(読み取り/書き込みポインター)の位置を設定します
Parameters
  • file_p -- lv_fs_file_t変数へのポインター
  • pos --バイトインデックスで表される新しい位置(0:ファイルの先頭)
  • whence -- 位置を設定した場所を示します。 @lv_fs_whence_tを参照してください
Returns
LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー

lv_fs_res_t lv_fs_tell(lv_fs_file_t *file_p, uint32_t *pos)

読み取り/書き込みポインタの位置を指定します
Parameters
  • file_p -- lv_fs_file_t変数へのポインター
  • pos_p -- 読み取り/書き込みポインタの位置を格納するポインタ
Returns
LV_FS_RES_OKまたは「fs_res_t」からのエラー

lv_fs_res_t lv_fs_dir_open(lv_fs_dir_t *rddir_p, const char *path)

ディレクトリ読み取り用に「fs_dir_t」変数を初期化します
Parameters
  • rddir_p -- 'lv_fs_dir_t'変数へのポインター
  • path -- ディレクトリへのパス
Returns
LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー

lv_fs_res_t lv_fs_dir_read(lv_fs_dir_t *rddir_p, char *fn)

ディレクトリから次のファイル名を読み取ります。 ディレクトリの名前は「/」で始まります
Parameters
  • rddir_p -- 初期化された'fs_dir_t'変数へのポインタ
  • fn -- ファイル名を格納するためのバッファへのポインタ
Returns
LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー

lv_fs_res_t lv_fs_dir_close(lv_fs_dir_t *rddir_p)

ディレクトリの読み取りを閉じる
Parameters
rddir_p -- 初期化された'fs_dir_t'変数へのポインタ
Returns
LV_FS_RES_OKまたはlv_fs_res_tenumからのエラー

char *lv_fs_get_letters(char *buf)

既存のドライバーの文字でバッファーを埋めます
Parameters
buf -- 文字を格納するためのバッファ(最後の文字の後に「\ 0」が追加されます)
Returns
バッファ

const char *lv_fs_get_ext(const char *fn)

ファイル名の拡張子を付けて返す
Parameters
fn -- ファイル名のある文字列
Returns
開始拡張子へのポインタ、または拡張子がない場合は空の文字列

char *lv_fs_up(char *path)

1レベルステップアップ
Parameters
path -- ファイル名へのポインタ
Returns
切り捨てられたファイル名

const char *lv_fs_get_last(const char *path)

パスの最後の要素を取得します(例: U:/folder/file -> file)
Parameters
path -- ファイル名へのポインタ
Returns
パスの最後の要素の先頭へのポインタ

struct _lv_fs_drv_t

Public Members
char letter
uint16_t cache_size
bool (*ready_cb)(struct _lv_fs_drv_t *drv)
void *(*open_cb)(struct _lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode)
lv_fs_res_t (*close_cb)(struct _lv_fs_drv_t *drv, void *file_p)
lv_fs_res_t (*read_cb)(struct _lv_fs_drv_t *drv, void *file_p, void *buf, uint32_t btr, uint32_t *br)
lv_fs_res_t (*write_cb)(struct _lv_fs_drv_t *drv, void *file_p, const void *buf, uint32_t btw, uint32_t *bw)
lv_fs_res_t (*seek_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t pos, lv_fs_whence_t whence)
lv_fs_res_t (*tell_cb)(struct _lv_fs_drv_t *drv, void *file_p, uint32_t *pos_p)
void *(*dir_open_cb)(struct _lv_fs_drv_t *drv, const char *path)
lv_fs_res_t (*dir_read_cb)(struct _lv_fs_drv_t *drv, void *rddir_p, char *fn)
lv_fs_res_t (*dir_close_cb)(struct _lv_fs_drv_t *drv, void *rddir_p)
void *user_data
カスタムファイルのユーザーデータ

struct lv_fs_file_cache_t

Public Members
uint32_t start
uint32_t end
uint32_t file_position
void *buffer

struct lv_fs_file_t

Public Members
void *file_d
lv_fs_drv_t *drv
lv_fs_file_cache_t *cache

struct lv_fs_dir_t

Public Members
void *dir_d
lv_fs_drv_t *drv


戻る : Previous