Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
#include <string.h>
#include <stdlib.h>
#include <ch.h>
#include <hal.h>
#include <ff.h>
#include "modules/loggers/sdlog_chibios/sdLog.h"
#include "printf.h"
#include "mcu_periph/sdio.h"
#include <ctype.h>
Go to the source code of this file.
Macros | |
#define | MIN(x, y) (((x) < (y)) ? (x) : (y)) |
#define | MAX(x, y) (((x) > (y)) ? (x) : (y)) |
#define | IS_POWER_OF_TWO(s) ((s) && !((s) & ((s) - 1))) |
#define | FFCONF_DEF _FATFS |
#define | SDLOG_WRITE_BUFFER_SIZE (SDLOG_ALL_BUFFERS_SIZE/SDLOG_NUM_FILES) |
Functions | |
static | IN_SDMMC_DMA_SECTION (FATFS fatfs) |
static int32_t | uiGetIndexOfLogFile (const char *prefix, const char *fileName) |
static SdioError | flushWriteByteBuffer (const FileDes fd) |
SdioError | sdLogInit (uint32_t *freeSpaceInKo) |
initialise sdLog More... | |
SdioError | sdLogFinish (void) |
unmount filesystem More... | |
SdioError | getFileName (const char *prefix, const char *directoryName, char *nextFileName, const size_t nameLength, const int indexOffset) |
get last used name for a pattern, then add offset and return valid filename More... | |
SdioError | removeEmptyLogs (const char *directoryName, const char *prefix, const size_t sizeConsideredEmpty) |
remove spurious log file left on sd More... | |
#define SDLOG_WRITE_BUFFER_SIZE (SDLOG_ALL_BUFFERS_SIZE/SDLOG_NUM_FILES) |
SdioError getFileName | ( | const char * | prefix, |
const char * | directoryName, | ||
char * | nextFileName, | ||
const size_t | nameLength, | ||
const int | indexOffset | ||
) |
get last used name for a pattern, then add offset and return valid filename
for log file, you often have a pattern and a version. To retreive last file for reading, call function with indexOffset=0. To get next available file for writing, call function with indexOffset=1 This function is available even without thread login facility : even if SDLOG_XXX macro are zeroed
[in] | prefix | : the pattern for the file : example LOG_ |
[in] | directoryName | : root directory where to find file |
[out] | nextFileName | : file with path ready to be used for f_open system call |
[in] | nameLength | : length of previous buffer |
[in] | indexOffset | : use 0 to retrieve last existent filename, 1 for next filename |
Definition at line 754 of file sdLog.c.
References chsnprintf(), dir, MAX, MIN, NUMBERFMF, NUMBERMAX, SDLOG_FATFS_ERROR, SDLOG_LOGNUM_ERROR, SDLOG_OK, and uiGetIndexOfLogFile().
|
static |
SdioError removeEmptyLogs | ( | const char * | directoryName, |
const char * | prefix, | ||
const size_t | sizeConsideredEmpty | ||
) |
remove spurious log file left on sd
when tuning firmware, log files are created at each tries, and we consider that empty or nearly empty log are of no value this function remove log file whose size is less than a given value
[in] | prefix | : the pattern for the file : example LOG_ |
[in] | directoryName | : root directory where to find file |
[in] | sizeConsideredEmpty | : file whose size is less or equal to that value will be removed |
Definition at line 815 of file sdLog.c.
References dir, SDLOG_FATFS_ERROR, SDLOG_FATFS_NOENT, and SDLOG_OK.
Referenced by thd_startlog().
SdioError sdLogFinish | ( | void | ) |
unmount filesystem
unmount filesystem, free sdio peripheral This function is available even without thread login facility : even if SDLOG_XXX macro are zeroed
Definition at line 285 of file sdLog.c.
References SDLOG_FATFS_ERROR, and SDLOG_OK.
Referenced by sdlog_chibios_finish().
initialise sdLog
init sdio peripheral, verify sdCard is inserted, check and mount filesystem, launch worker thread This function is available even without thread login facility : even if SDLOG_XXX macro are zeroed
[out] | freeSpaceInKo | : if pointer in nonnull, return free space on filesystem |
Definition at line 225 of file sdLog.c.
References FALSE, HEAP_DEFAULT, msgqueue_init(), sdio_connect(), sdio_disconnect(), SDLOG_FATFS_ERROR, SDLOG_NOCARD, SDLOG_NUM_FILES, SDLOG_OK, SDLOG_QUEUE_BUCKETS, and SDLOG_WAS_LAUNCHED.
Referenced by thd_startlog().
|
static |
Definition at line 875 of file sdLog.c.
Referenced by getFileName().