Add a demo for GFILE
This commit is contained in:
parent
8561671cb8
commit
d6c31f404b
3 changed files with 73 additions and 0 deletions
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…
Add table
Reference in a new issue