Add a demo for GFILE
This commit is contained in:
parent
8561671cb8
commit
d6c31f404b
3
demos/modules/gfile/fatfs/demo.mk
Normal file
3
demos/modules/gfile/fatfs/demo.mk
Normal file
@ -0,0 +1,3 @@
|
||||
DEMODIR = $(GFXLIB)/demos/modules/gfile/fatfs
|
||||
GFXINC += $(DEMODIR)
|
||||
GFXSRC += $(DEMODIR)/main.c
|
10
demos/modules/gfile/fatfs/gfxconf.h
Normal file
10
demos/modules/gfile/fatfs/gfxconf.h
Normal file
@ -0,0 +1,10 @@
|
||||
#ifndef _GFXCONF_H
|
||||
#define _GFXCONF_H
|
||||
|
||||
#define GFX_USE_GFILE TRUE
|
||||
|
||||
#define GFILE_NEED_FATFS TRUE
|
||||
#define GFILE_NEED_NOAUTOMOUNT TRUE
|
||||
#define GFILE_NEED_PRINTG TRUE
|
||||
|
||||
#endif /* _GFXCONF_H */
|
60
demos/modules/gfile/fatfs/main.c
Normal file
60
demos/modules/gfile/fatfs/main.c
Normal file
@ -0,0 +1,60 @@
|
||||
#include "gfx.h"
|
||||
#include <string.h>
|
||||
|
||||
/* Function to log messages to a file. */
|
||||
void LogInfo(const char* msg) {
|
||||
GFILE* logFile;
|
||||
|
||||
logFile = gfileOpen("info.txt", "a"); // Open the file for append
|
||||
if (logfile) {
|
||||
gfileWrite(logFile, msg, strlen(msg));
|
||||
gfileClose(logFile); // Close the file again
|
||||
}
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
GFILE* file; // GFILE variable to store file info.
|
||||
const char msg[] = "Hello file!"; // String to write to a file.
|
||||
|
||||
/* Call the µGFX init routine. */
|
||||
gfxInit();
|
||||
|
||||
/* Mount the file system. */
|
||||
if (gfileMount('F', "/"))
|
||||
gfxHalt("Can't mount the FAT file system");
|
||||
|
||||
/* Check if a file exists. */
|
||||
if (gfileExists("file.txt"))
|
||||
LogInfo("[Info]: File exists already!");
|
||||
else
|
||||
LogInfo("[Info]: The file does not exist yet!");
|
||||
|
||||
/* Write a string to the file. */
|
||||
file = gfileOpen("file.txt", "wx");
|
||||
if(!file) {
|
||||
LogInfo("[Error]: Something went wrong opening the file.");
|
||||
gfxHalt("Can't open the file file.txt");;
|
||||
}
|
||||
|
||||
/* A normal write */
|
||||
gfileWrite(file, msg, strlen(msg));
|
||||
|
||||
/* Write the file size in the file using the uGFX equivalent of fprintf(). */
|
||||
fnprintg(file, 30, "The file is currently %dkB", gfileGetSize(file));
|
||||
|
||||
/* Close the file */
|
||||
gfileClose(file);
|
||||
|
||||
/* Rename te file. */
|
||||
gfileRename("file.txt", "renamedFile.txt");
|
||||
|
||||
/* Unmount the file system again */
|
||||
gfileUnmount('F', "/");
|
||||
|
||||
/* This line should not work as the file system is now unmounted */
|
||||
LogInfo("[Info]: Entering enldess while loop.");
|
||||
|
||||
/* The program ends here. */
|
||||
while(1)
|
||||
gfxSleepMilliseconds(200);
|
||||
}
|
Loading…
Reference in New Issue
Block a user