lv_fs.h¶
Typedefs
-
typedef struct _lv_fs_drv_t lv_fs_drv_t¶
Enums
-
enum lv_fs_res_t¶
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¶
-
enumerator LV_FS_RES_OK¶
Functions
-
void lv_fs_drv_init(lv_fs_drv_t *drv)¶
Initialize a file system driver with default values. It is used to ensure all fields have known values and 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-identifier 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 initializedtrue
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
-
void lv_fs_make_path_from_buffer(lv_fs_path_ex_t *path, char letter, const void *buf, uint32_t size)¶
Make a path object for the memory-mapped file compatible with the file system interface
- Parameters:
path – path to a lv_fs_path_ex object
letter – the identifier letter of the driver. E.g.
LV_FS_MEMFS_LETTER
buf – address of the memory buffer
size – size of the memory buffer in bytes
-
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
btw – Bytes To Write
bw – 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 to set 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 – 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, uint32_t fn_len)¶
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
fn_len – length of the 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¶
-
uint32_t cache_size¶
-
bool (*ready_cb)(lv_fs_drv_t *drv)¶
-
void *(*open_cb)(lv_fs_drv_t *drv, const char *path, lv_fs_mode_t mode)¶
-
lv_fs_res_t (*close_cb)(lv_fs_drv_t *drv, void *file_p)¶
-
lv_fs_res_t (*read_cb)(lv_fs_drv_t *drv, void *file_p, void *buf, uint32_t btr, uint32_t *br)¶
-
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 (*seek_cb)(lv_fs_drv_t *drv, void *file_p, uint32_t pos, lv_fs_whence_t whence)¶
-
lv_fs_res_t (*tell_cb)(lv_fs_drv_t *drv, void *file_p, uint32_t *pos_p)¶
-
void *(*dir_open_cb)(lv_fs_drv_t *drv, const char *path)¶
-
lv_fs_res_t (*dir_read_cb)(lv_fs_drv_t *drv, void *rddir_p, char *fn, uint32_t fn_len)¶
-
lv_fs_res_t (*dir_close_cb)(lv_fs_drv_t *drv, void *rddir_p)¶
-
void *user_data¶
Custom file user data
-
char letter¶
-
struct lv_fs_file_t¶
-
struct lv_fs_dir_t¶