QMK/lib/ugfx/demos/modules/gfile/fatfs/main.c

61 lines
1.5 KiB
C
Raw Normal View History

2020-03-23 10:48:11 +01:00
#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);
}