Add a demo for GFILE

This commit is contained in:
inmarket 2017-06-24 16:35:50 +10:00
parent 8561671cb8
commit d6c31f404b
3 changed files with 73 additions and 0 deletions

View File

@ -0,0 +1,3 @@
DEMODIR = $(GFXLIB)/demos/modules/gfile/fatfs
GFXINC += $(DEMODIR)
GFXSRC += $(DEMODIR)/main.c

View 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 */

View 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);
}