diff options
author | inmarket <inmarket@ugfx.io> | 2017-06-24 16:35:50 +1000 |
---|---|---|
committer | inmarket <inmarket@ugfx.io> | 2017-06-24 16:35:50 +1000 |
commit | d6c31f404bf2d6b2520b42717072ad2d22a7ff87 (patch) | |
tree | 1529cb1876076580ea5d9c9eb53836c90a7a1e09 /demos/modules/gfile/fatfs/main.c | |
parent | 8561671cb8c8c81cca6407d47437a7238b111ada (diff) | |
download | uGFX-d6c31f404bf2d6b2520b42717072ad2d22a7ff87.tar.gz uGFX-d6c31f404bf2d6b2520b42717072ad2d22a7ff87.tar.bz2 uGFX-d6c31f404bf2d6b2520b42717072ad2d22a7ff87.zip |
Add a demo for GFILE
Diffstat (limited to 'demos/modules/gfile/fatfs/main.c')
-rw-r--r-- | demos/modules/gfile/fatfs/main.c | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/demos/modules/gfile/fatfs/main.c b/demos/modules/gfile/fatfs/main.c new file mode 100644 index 00000000..c5b43927 --- /dev/null +++ b/demos/modules/gfile/fatfs/main.c @@ -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); +} |